Sequential programming is dead. So stop teaching it!
This teasing diktat points out an important truth – All major manufactures of CPUs, GPUs and ASICs have moved to a many core design, yet universities and colleges are not training engineers in the parallel and concurrent disciplines needed to efficiently program on such systems. To make matters worse, many of the computer science and engineering faculty are often not yet informed enough to effectively teach the subject, even were it to be offered. The sad fact is that unless a more vigorous program of parallel computing is inserted into the curriculum, most engineering and computer science graduates will not have the skills to provide competitive advantage on multicore and many core platforms.
So start teaching parallelism!
Undergraduates need to be exposed to parallel programming techniques starting in CS1 and then need to build on the skill in every (relevant) course. This is not the case at most institutions; when they teach parallel computing at all, they often relegate it to advanced topics or elective courses. That said, there are a number of colleges and universities that have found that it is not all that difficult to incorporate it into their existing curriculum.
Intel Software College course architect Michael Wrinn spoke with Professor Daniel Ernst ,University of Wisconsin – Eau Claire, on the topic recently at ITiCSE in Spain where Professor Ernst delivered his paper Concurrent CS: Preparing Students for a Multicore World . Professor Ernst employs what he calls an integrated approach wherein he mixes concurrency in the already established curriculum. This lightweight tactic is readily comprehended by the students and does not entail a wholesale rewrite of existing course material. For an in depth discussion with many examples, view the webinar Daniel led on the subject last month.
Professors Matt Wolfe and Ada Gavrilovska of Georgia Tech will be leading (or have led, depending on when you read this) a webinar on this topic as well Thursday, October 30, 9:00 AM PST. It is titled Multi-core in Classroom, the view from Georgia Tech. Register for this webinar and join in the conversation. The same link will bring up the archive webcast as well.
Ride! Ride, ride! Wait not for the dawn! Let not the swift wait for the slow! Ride!
All right, the Nazgul are not coming, but we are facing a sea change in computing. Single core is gone and will not return. Scaling will be based on our ability to efficiently program for many (and then many many) compute cores. We have to train the next gen of engineers to think parallel or we will not have done our jobs. Join in the discussion by attending joining the Intel Academic Community, attending our webinars, contributing to parallel course development on the Academic Community Wiki or even hosting a webinar of your own. Contact me and I’ll see what we can do.
We are not all mouth, we actually do things
Just a teaser for my next blog entry on our plans for a cross indutry and academia working group on curriculum developement for concurrency and parallelism. We will be kicking off at Super Computing 08 in Novemeber. More soon.