My PhD is in parallelizing compilers, back in the 1990's when supercomputers were hot. Then the field cooled off, as the machines were too costly, the programming models were too difficult, and the auto-parallelizing compilers failed to live up to (unrealistic) expectations. But the field has come roaring back to life the last couple years, especially with cheap high-speed interconnects and multi-core CPUs. Microsoft has a number of technologies in the HPC (high performance computing) arena: Parallel LINQ, Task Parallel Library, F#, and Compute Cluster Server.
Microsoft Compute Cluster Server, or CCS, is Microsoft's foray into the HPC cluster arena --- imagine a rack of blades with quad-core CPUs and a high-speed interconnect. CCS was released in 2006, runs on Windows Server 2003 64-bit, and is currently at v1.0 with SP1; v2 was just announced at Supercomputing this week in Reno, and will run on Windows Server 2008 64-bit.
I'm really excited to be working in the field again, finally putting all that PhD work to use :-) Right now I'm part of a team here at Pluralsight developing a 5-day course on CCS: what it offers, how it works, and its supported programming models (basically OpenMP and MPI). Our first course offering is slated for the last week of November, 26-30. For more info on the course, click here .
Surprisingly, it doesn't take that much hardware to get into CCS and experiment. A CCS cluster consists of a head node (that manages the cluster and schedules jobs) and compute nodes (which do the actual work). Since a head node can also server as a compute node, you can build a cluster with one computer --- any computer capable of running Windows Server 2003 64-bit. Of course, life is more interesting if you have 2 or more compute nodes, which forces you into the world of distributed programming and MPI.
In fact, take a peek at my portable cluster --- I'm using 2 Mac Minis as compute nodes and a Thinkpad as the head node (the other thinkpad is my normal working machine, and acts as a client to the cluster):
The mac minis make excellent portable Windows servers. I booted to the mac os, ran bootcamp, inserted the Windows 20003 CD, wiped the disk clean when it rebooted, and installed. Some of the drivers are missing (e.g. bluetooth and wireless), but the server hardware I needed --- monitor, hard disk and ethernet --- were found and installed fine. Once installed, I run them headless (you have to boot with a dvi to s-video adapter attached because the mini is looking for a monitor, but once booted you can remove the adapter and remote into the machine).
Right now I'm attending the annual Supercomputing conference, which is a great conference and getting better every year. 9,000 attendees, 87 miles of fiber optic cable, and more computing power than most countries. Tomorrow I'll blog about one of the things I learned that blew me away: the cost of executing an instruction is essentially 0, so optimization now is all about data locality and caching. The optimizing compiler world has been turned on its head.
Posted
Nov 15 2007, 02:36 AM
by
joe-hummel