Sea of cores: Updates from the Beagle's journey

We just had our IDF panel a few hours ago, as promised in the earlier blog post.  I made a comparison of our current state of the art in parallel computing to a quote that I got out of Charles Darwin's Origin of Species, and it led to some interesting ripples in the subsequent discussion that I thought I'd share.

First, the quote I was referencing from Darwin was the following: "A part developed in any species in an extraordinary degree or manner ... tends to be highly variable."  If you replaces species with computer language, operating system, library, etc., I think that you get a very apt statement of what we see going on in the educational and developer communities today with respect to parallelism.

First, what did Darwin mean?  It took me quite a while the first time I read that section of the book to puzzle through it.  In effect, what it is saying is that if there has been a substantial development to take advantage of some new niche, that that act of change and development will inevitably result in a lot of variations and choices that take advantage of that niche.  It takes a long time for the dust to settle after that big effort so that there are distinct winners and losers.

This is where we come back to parallelism.  Although parallel computing has been around for a long time, it was a very limited (ecological) niche.  Now that there's a big market for growth in it, we see a lot of innovation and variations, and from an educational perspective that's very hard.  We can't just teach our students pthreads, or MPI, or OpenMP, or TBB, or CUDA, or any of the other "old" models.  There are many languages, libraries, OSes, application frameworks, and so on that have made it across the 'parallel' threshold.  Sorting out what's "good" in some absolute or even relative sense is going to take some time... more time than we have to wait before adapting our curricula.

So we need to write the curricula to acknowledge that lack of a single known "best way", even to embrace it.  Our students are the ones that will be making the decisions in the years to come as to what types of parallel architectures and languages make the most sense in industry and academia -- we need to focus on giving them the tools to make those decisions, rather than the tools to just program them.  Diversity is good -- it means this parallel thing is something big and important.  And we can have impact.
Пожалуйста, обратитесь к странице Уведомление об оптимизации для более подробной информации относительно производительности и оптимизации в программных продуктах компании Intel.