Friday, June 29, 2012

Ordering MS SCEP licenses in uShop

The UofT Licensed Software Office lets department staff place electronic orders for software licenses for a number of products through the central uShop procurement system. ECE faculty who need to order licenses for Microsoft System Center Endpoint Protection (to replace expired Symantec licenses) can have their admin assistant order these through uShop at the very affordable price of $3.25 per licensed PC per year. Simply count up the number of Windows PCs you need to protect with SCEP, and order that many licenses. These are good for one year and you will need to reorder annually. If you acquire more PCs during the year (without retiring an equal number) and thus need more licenses, simply place another order for the net number of additional licenses needed.

Let your admin know which FIS numbers to charge, and refer him or her to these steps. Here are screen shots of the steps to follow (steps for each screen are in the caption below the image):

Log in to uShop and click on "shop" to begin the order

In "step 1" click on 'Licensed Software Office'
(you may have to tell your browser to allow the 'pop-up' window)

At the top left, click on 'Software'

Click on 'Microsoft' (text below the MS logo)

Click on 'Servers' (text below the logo)

click on System Center 2012 Endpoint Protection (text below logo)

In the Qty: box below SC2012EP, type in the number of licenses you are ordering;
if you don't already have the installer, also fill in Qty: 1 under "CD..." to get a CD for $4.
Then click 'Add to Cart.'

Review your order details, then click 'Checkout'

After you click Checkout you will go to screens for filling in the FIS account numbers (screenshots omitted).

UofT Twitter accounts

 I noticed that some UofT peeps doing campus life promotion are using Twitter accounts with something followed by 'UofT' or '_UofT' in their twitter account name. So I tried a search of usernames containing "UofT' -- wow, there are a lot!

This link shows you a current list: Twitter accounts with 'UofT' in the name

ECE has a twitter account: @eceuoft

The IBBME (which includes some ECE profs) has one as well: @IBBME_UofT

Besides these I'll leave you to find more that interest you. There are some 'official' feeds from units within UofT such as libraries, departments, campus papers, etc. There are feeds for many student associations including the GSU, ASSU, etc., departmental student groups, charity and service groups, and for groups for students from many countries and regions.

Wednesday, February 22, 2012

network simulation in Matlab

Today at lunch Prof. Valaee asked if there are any Matlab toolboxes or packages for modeling computer network activity, comparable to the ns-2 and OPNET packages.

Here are a few links I found that offer various approaches to this in Matlab. There seem to be several for wireless but not so many for wired. I have no info on the quality or usefulness of these, but I've linked them here for ease of reference if anyone wants to explore this. (When searching, a lot more matches come up talking about "neural network" simulation - for this purpose, those are false positives. You could try adding "-neural" to the query to exclude these.)

The Mathworks, Inc. has a series of instructional videos covering Matlab features and their applications. Here's a brief one on using SimEvents and StateFlow (both included in our R2011 and newer) to model ethernet traffic in an event-based format. This may be the closest to what Prof. Valaee had in mind.

Wireless Matlab is an open-source project from 2006 hosted at sourceforge. The blurb specifically compares this effort to ns-2 and OPNET.

10Base-T Ethernet is a user-contributed model of four NICs using CSMA/CD on a segment.

LTE Simulators (for non-commercial academic use) simulates an LTE wireless network in Matlab.

Prowler attempts to simulate distributed embedded systems and sensors, and the impact of wireless channel congestion on their performance. Probably more specialised than what we'd use in ECE.

This paper covers simulating network congestion and its impact on real-time systems control, using an additional toolbox called TrueTime.

This 2004 IEEE paper covers linking together multiple simulators, using ModelSim, Matlab, and ns-2 together Using ModelSim, Matlab/Simulink and NS for Simulation of Distributed Systems

Thursday, February 16, 2012

GPU computing in Matlab

February, 2012

We're in the process of putting together a group order for many more licenses for Matlab's Parallel Computing Toolbox (so far we have just two.) This is useful to get Matlab making much more effective use of multi-core CPUs, including systems with dual CPUs as well as CPUs with 2, 4 or more cores. One Matlab session using one PCT license can initiate up to twelve parallel "worker" processes to handle concurrent tasks. We're seeing more and more multi-core systems in mainstream PC configurations.

One particular feature of PCT is its support for direct access to CUDA-capable GPUs. Many nVidia display adapters (video cards) include CUDA capability to one degree or other. This page explains what this enables:

Matlab GPU computing via PCT

The GPU must meet a minimum requirement of Compute Capability v.1.3 or higher. Most current nVidia cards that are CUDA-capable now offer CC v.2.1. Note that not every nVidia card is CUDA-capable even today; the lowest-priced cards omit this, and lower-mid price range cards may include some CUDA support, but with fewer GPU multiprocessors (and thus fewer total GPU cores - there are 8 cores per MP).

I gathered info on the GPUs in any nVidia cards in our Tier 1 linux workstations. Unfortunately the great majority of these are a bit older and most only offer CC v. 1.1, so they can't be accessed by PCT at least via the easiest route. It looks to me like there are other things you can do with building CUDA kernels (e.g. in C, compiling with the 'nvcc' compiler) and then calling those kernels from Matlab. I haven't gone into the details of those methods to see whether / how Matlab would support that. I also have surveyed only a small proportion of Tier 1 Windows PCs so far, and I have no way to check what  GPUs may be in any Tier 2 and Tier 3 PCs. That's up to you; here's how to check.

Testing if your system has a CUDA-enabled GPU

You can get the make and model of your video card without opening the case as follows:

  • In Windows, open Device Manager (right-click on "My Computer", choose "manage") then look at the Display Adapters section. It will list make and model.
  • In Linux, at a shell prompt, type: lspci | grep VGA

You can also ask Matlab to tell you if it has detected a CUDA-capable GPU in your PC. For this to work, you need up-to-date nVidia video drivers installed. The commands are:


{should return 0, 1 or 2 if you have a dual-GPU setup!}


This displays a block of info about your GPU, including what ComputeCapability ver.# it has.

Here is Matlab's page on Identifying and Selecting a GPU in Matlab

If your system doesn't have a GPU
  ... or yours GPU's CC version is too old for Matlab PCT

If you want to take advantage of CUDA from Matlab, the best route (once our big order of more PCT licenses arrives) would likely be to buy a newer nVidia card, taking care to select one with enough GPU cores for what you want it to do.

Overall 'you get what you pay for'; card prices tend to work out to about $0.40 to $0.85 per GPU core. While there are a very few under-$80 cards with CC 2.1 (and at 50-65W, no PCI-power cable needed, see below), these have only 6 or 12 GPU MPs (48 or 96 cores). You need to spend at least $90-100 to get a mid-range CUDA GPU unit with 24 or 30 GPU MPs (192 or 240 cores; e.g. GeForce GTX 260, 275, 280, 285) and you'll need PCI-power cabling to supply their power draws of 200+W.

One thing to watch out for is that the more powerful CUDA-enabled cards are both larger and have much higher power draw than a typical video card. So you need to ensure first that there is room in your PC case for the card, positioned in the correct type of PCI slot (typically PCI-express x16). Next, you need to see if your PC's power supply has enough spare power to drive such a large card, and whether it has the required PCI-power connectors. These are either 6- or 8-pin plugs with yellow and black wires (for 12v and ground). Different GPU cards require either one or two 6-pin PCI-power connectors, or on the largest cards, a 6-pin plus an 8-pin or two 8-pin ones. The spec calls for 6-pin plugs to deliver 75W, and 8-pin plugs 150W. Only very specialized and high-output power supplies have any 8-pin connectors, and small to mid-size power supplies often don't even offer any 6-pin ones.

You also need to consider cooling and airflow for these. Perhaps plan to include a good GPU card in your next new system purchase, and have your PC supplier ensure the case and power supply are up to the heat and power loads.

Which boards?
Here is a link to a list of all of nVidia's CUDA-capable GTX video cards. (I haven't listed the Quadro or Telsa boards.) Each name links to the info page for that model, where you can find the specs including # of cores, Compute Capability level, power draw and power connector requirements.

I've compiled a summary of that info for several models currently for sale plus a few of the ones we have in place. I don't think this blog software does tables, so here is a table of nVidia GPU cards with CCC >= v.1.3, showing number of cores, power draw and PCI-power connector counts, and links back to nVidia's product page for each item.