"The manycore shift is coming!" my colleague Jos Bredek keeps telling (harassing?) me about every other day. "What are you going to do about it?"
Even if you take into account that the journals and bloggers are hyping each other up, it is an important development which is coming nearer everyday. The fact that multi/manycore systems are becoming prominent cries for programmers who have the skills to take advantage of them. And these programmers need to have programming languages and tools to work with.
What does a bachelor student need to know about parallel programming? How would we teach them this subject? I don't have definite answers yet, but it's got my attention.
So in the past weeks I've seen some interesting material passing by. I'll share the best with you:
* The manycore shift, a general white paper by microsoft.
* Microsofts parallel extensions are something a developer can sink his teeth in. This blog post by Daniel Moth shows the concrete usage in .Net. Daniel Moth? Yes, he's the guy from the QCon ("I speak so fast, just download the video and play it at half speed.")
* So what's the Java world up to then? Under JSR166 mr Doug Lea is working on a parallel "fork-join" framework which might be included in Java 7. Some interesting links: an InfoQ article, a in-depth pdf and the homepage including the API.
My first impression is that .Nets Parallel.for(...) and Parallel.do(...) are really simple and concise compared to the Java stuff? I could teach that in about 5 minutes. But then again, I might not yet know enough about this material to make a real comparison...