Parallelism and Abstraction in Java
Here's an interesting parallel programming interview with Intel's Paul Guermonprez covering threads, JSR166y, and Hadoop. I particularly enjoyed the Hadoop discussion at the end.
The discussion focused on efforts to separate Java programming from the nitty gritty details of threads. This separation allows a greater number of developers to successfully program for parallel environment by removing focus on the technical details, and thus reducing the knowledge required to write the code. There's also some coverage of the benefits of the higher level of abstraction of functional programming and how the functional programming style is being incorporated into the Java concurrency model. The text has this:
The future will be functional programming or won't be at all.
Intellectually, I applaud these efforts. Emotionally, I feel some loss.
My first introduction to threads was in a systems programming class, using the C language and Pthreads library. Pthreads blew my mind, or maybe it was lack of quality in the lectures. Either way, determined not to be defeated by Pthreads, I went out and bought a stack of books on Pthreads and threads in general and set out to wrap my mind around threads. It worked, but along the way, I learned that I loved the challenge and so I embraced concurrency and parallelism with much enthusiasm. This knowledge that I've accumulated will always be of great value, but as I move toward programming threads at further and further abstractions, I'll lose that close connection to the internals, and I'm a little saddened by that.


March 6th, 2010 - 10:13
True parallelism means taking advantage of the multi core based machines these available these days. I have never seen the possibility for a ‘true’ parallelism in Java… or Scala… concurrency only… ??
The C# 4.0 new spec does allow having a true parallelism… you can find more info at http://www.lifemichael.com/en/?p=1168.
Best,
Haim.