Spring 2015 EE599-001 Cluster/Multi-Core Computing
Spring 2015 EE699-001 Cluster/Multi-Core Computing

Time & Place: TR 9:30-10:45 PM; meeting in 243 MMRB
Instructor: Professor Hank Dietz
Instructor URL: http://aggregate.org/hankd/
Course URL: http://aggregate.org/MIMDCOURSE/
ABET-style Syllabus: Combined Undergraduate (EE599) and Graduate (EE699)

Cluster/Multi-Core Computing is about the many flavors of MIMD-parallel computing architectures that now dominate high-performance computing. It used to be that 4 processors were taken seriously as a parallel supercomputer. Now, there are cell phones with 4 cores. Sequoia, and the IBM BlueGene/Q system that was at the top of the Top500 supercomputers list in June 2012 was the first machine listed with over a million cores: it has 1,572,864 cores! Tianhe-2 (MilkyWay-2), the top machine as of November 2014, has 3,120,000 cores.

I'm going to run this course backwards from how I used to. Instead of starting with architecture, we're going to start with user-level programming and do the architecture stuff while you're working on projects. Why? Unlike GPUs and most other parallel computers, MIMDs sort-of just work and code is actually portable. What's more, that wasn't the case two decades ago. We'll still cover architecture issues and perfromance tuning, but towards the end of the course.

UK closed February 17 and 19, and March 5, due to weather. The classes missed those days and February 10 will be made-up later in the semester by extending the remaining Tuesday classes, starting on March 31, to begin at 8:15AM and meet in 108 Marksbury.

Course Materials

All course materials will be linked here. I said will be... as in more is being added.

Shared Nothing

Shared Memory

Project Stuff

One of the nicest things about MIMDs is that they behave a lot like lots of processes running timeshared -- so you can develop and test just about everything in this course even on a single-core system. However, you'll be running code on at least one shared-memory multi-core system and you'll be running on at least one cluster. Those systems are housed in 108A Marksbury, but will be accessible via remote login (ssh). Those systems all run Linux, and everything submitted must work in that environment, although you can develop things under windows or OSX.

Course Staff

Professor Hank Dietz is usually in his office, 203 Davis Marksbury Building, and has an "open-door" policy that whenever his door is open and he's not busy with someone else, he's available. However, there are quite a few other places he might be around campus. His schedule is at http://aggregate.org/hankd/cal.html, which also shows live sensor info about his availability. Alternatively, you also can email hankd@engr.uky.edu to make an appointment.

About The Graphic

About the graphic: It's NAK, a 64-node cluster with a GPU in every node, but dressed-up as the machine that runs everything in the movie Metropolis. There's a lot to program in there, and the huge set of independent workers is a pretty good model for how that's done. Fortunately, the machine here also carries a useful message written in friendly big red letters.


EE599/699 Cluster/Multi-Core Computing