Thinking Parallel

A Blog on Parallel Programming and Concurrency by Michael Suess

Parallel Programming News for Week 29/2007

NewsIt’s time again for a short survey of what has been going on lately on the net with regards to parallel programming. Actually, I wanted to post something different this week, but since this list has been growing so fast and I was not quite satisfied with my other article anyways, I decided to launch this one early. I hope you enjoy what I have dug up for you. And if not, be sure to leave a comment or leave me a note! Also, in case I have forgotten / not found an interesting article, feel free to add it for my benefit and that of your fellow readers. Thanks for caring!

  • Lawrence Crawl can be seen and heard talking about the future of C++ and Threads in this Google Talk. Beware that this is 90min long and if you are a regular reader of this site, some of the content is probably well known to you. But I bet other parts are not…
  • A guy who is calling himself MenTaLguY (for whatever reason) has an article called “Spin Buffers”: DO NOT USE, where he rightfully advises to stay away from spin buffers as introduced here. I could not agree more. For some reason, people are always trying to be smart and optimize away locks, without having even heard that there is such a thing called memory model that will screw you badly if you don’t really know what you are doing. Another example of this phenomenon is this thread on Joel on Software.
  • Christian Terboven takes a first look at tasking in OpenMP in his weblog. He uses the simple C++-example of iterator-loops to show some of the power of the new constructs. Recommended Reading for anyone interested in the future of OpenMP.
  • Tim Mattson has started blogging with this article describing the state of parallel programming in hardware and software. I have never met Tim in person, but know him from his work on the OpenMP language committee and through his book on Patterns for Parallel Programming. He promises to start blogging regularly in this article and I am looking forward to that.
  • Geoffrey Wiseman has a preview about what’s in store concurrency-wise in Java SE 7. As I understand it, he describes a very early preview. The Fork/Join stuff he mentions certainly looks interesting, especially for Divide-and-Conquer type algorithms. The TransferQueue on the other hand did not excite me too much, maybe because it looks a bit like MPI_Ssend and I know I am not using that too often. But maybe thats just me 🙄
  • There is a nice overview available about the parallel programming systems available based on Haskell. And boy, that list is impressive! Transactional Memory, systems based on parallelism hints, MPI, data parallel stuff, events – you name it, Haskell appears to have it. If only I had more time to look into all this stuff…
  • Sean Koehl is asking the question What would you do with 80 cores? He highlights the field of model-based computing as a possibility to put your cores to good use. I have speculated about using that many cores myself in the past.

That’s it, folks, happy reading!

6 Responses to Parallel Programming News for Week 29/2007 »»


Comments

  1. Comment by Saurabh | 2007/07/19 at 19:37:42

    Could you elaborate about memory model and memory barriers (re the spin buffer article)? I admit that the DDJ article example is a very special-scenario one (only two threads, one must remain consumer all the time, the other must remain producer all the time), but didnt see anything wrong with it per se. Thanks.

  2. Comment by Wes Felter | 2007/07/20 at 00:14:23

    Stanford just released the Sequoia compiler.

  3. Comment by Michael Suess | 2007/07/21 at 21:38:32

    Saurabh: I am afraid I need more than a couple of lines in a comment for that. But I have already started an article on memory models and will post it in a not so distant future (notice how I avoided any specific timeframe – this stuff is complicated, even more since every parallel programming system has a different memory model)…

  4. Comment by ARI ZILKA | 2007/07/23 at 11:11:38

    Michael,

    Have you played with Terracotta for thread-level coordination across JVMs using pure Java constructs like wait() / notify(), etc. java.util.concurrent (or OSWEGO) work on top of the stuff. Take a look. tell me what you think.

    I will definitely keep an eye out for your ideas on this blog. Concurrency is VERY important, IMHO.

    –Ari

  5. Comment by bing | 2007/07/23 at 20:38:49

    A good explanation of Java memory model (and memory models in general) : http://java.sun.com/docs/books/jls/download/langspec-3.0.pdf
    Chapter 17 (section 2)

  6. Comment by Michael Suess | 2007/07/25 at 17:22:45

    @bing: thanks for the link, I will check it out soon.

    @ARI: no, I have not played with Terracotta, as my playtime is seriously limited at the moment. I have at least 10 systems that I would like to play with (including Erlang, Intels TBB and others), but unfortunately, nobody pays me to do these things and I have many other things to do in my (few and precious) spare time…


Leave a Reply

HTML allowed: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>