Parallel programming is fundamental, High School here we come

Teaching programming and teaching parallel programming - should they be different?

I don't think so.

We've always had many elements to teach when we teach programming - data structures, algorithms, databases, parsing, scheduling, etc. Parallelism is yet-another item to throw on the list of things to teach as part of programming.

With the introduction of multicore processors, it was obvious to me that parallelism would soon be a part of every system. We're pretty much there now.

However - parallel programming remains an advanced topic in graduate studies and notably absent from too many undergraduate courses.  Yes - we are making progress, and Intel's academic program is a major contributor to helping professors with material, ideas and sharing with like-minded professors.  But, it seems all too slow for me.

Actions speak louder than words.

Next week, I'll be at Brooklyn Technical High School helping teach parallelism to top notch high school students and some of their high school teachers. The learning will be both directions.

If parallel programming is fundamental to programming, then we need to figure out what aspects of it belong in high school. I'm confident we will figure it out, and this is an important step.

I plan to write some follow-ups based on the experiences as they happen. For now, I want to thank Randy Asher + Brooklyn Technical High School, Jeff Birnbaum + Bank of America, IBM (a 48-core system!!!), Blade Network Technologies and Intel for underwriting this effort and having the faith that 'parallel programming is fundamental.'

I'll also do an interview and discuss the experience afterwards with the Intel program 'Teach Parallel'  - although probably not on July 28 as currently scheduled. Before then, you can catch Jeff and Randy on July 21 talking about our plans.

Wish us luck, and stay tuned for our notes on what works and what does not.

For more complete information about compiler optimizations, see our Optimization Notice.