Thinking Parallel

A Blog on Parallel Programming and Concurrency by Michael Suess

Archive for the 'Parallel Programming' Category

Please Don’t Rely on Memory Barriers for Synchronization!

I was innocently browsing the net, when I found this on reddit. It’s an article about synchronization using memory barriers. And it made me sad (I was going to write: it almost made me cry, but I figured that would be a little exaggerated). This article is a warning and it tells you the reasons […]

A Conversation with Hennessy and Patterson

The ACM Queue has an interview with two of my absolute computer architecture heroes – John Hennessy and David Patterson. I have dug my way through their famous book Computer Architecture: A Quantitative Approach right before my diploma thesis and the only reason I did not buy it back then was, because I feared they […]

Update: A Smart Way to Send a std::vector with MPI – and why it Fails

As many of you know, I always like learning from mistakes. From my own ones, as well as from other people’s. A couple of students of mine tried to send a C++ std::vector using MPI and I was skeptical if their way of doing things was correct. I am now convinced that although it probably […]

Parallel Programming is Entering the Mainstream – or isn’t it?

Alan Zeichick is convinced that parallel programming (threading in this case) is conquering the desktop. To measure how far this adaption goes in a specific organization, he proposes a Threading Maturity Model (ThMM). But I would not have formulated the headline of this article like I did, if I did not see question marks still […]

Multi-Threaded Challenges in the Game Space – a Conversation with Tom Leonard of Valve Fame

A while ago I posted some comments on the press coverage of an event by Valve, where they explained threading in the Source Engine to a couple of tech-journalists. Unfortunately, the coverage left many open questions and some things even appeared to be wrong. Fortunately, Tom Leonard, the threading guru from Valve is a nice […]

Making Exceptions Work with OpenMP – Some Tiny Workarounds

In one of my last articles, I have told you about the state of affairs regarding exceptions and OpenMP. I also promised you a follow up-post that highlights some limited ways to work around some of these problems from a user perspective. This is it. Be warned: it is going to be short and sweet, […]

Thoughts on “Valve goes Multicore”

A little while ago, an event was held by Valve Software, Inc. at their headquarters in Bellevue, Washington. If you don’t know Valve, it is the company behind the Source Engine, which powers Half Life 2. If you still don’t know what I am talking about, this short article is probably of no interest to […]

News for Weeks 43 and 44 / 2006

There were some interesting articles during the last two weeks, which I would like to share with you (also, I have to compensate for not posting for two whole weeks – my target rate is one post per week and I do want to make up for missing that target for the first time :roll:):

A Vision for an OpenMP Pattern Library in C++

This post serves a triple-role: First of all, it is a vision document for the project I am doing at work right now. It describes the high-level goals for me and the people that will be working on the project with me – saving me from having to explain them multiple times and also providing […]

A Short Guide to Mastering Thread-Safety

When I am talking on forums or to some of my students, from time to time I realize that I have gotten so used to expecting a certain vocabulary and certain concepts to be known to others that it isn’t even funny. In German we call this being betriebsblind, which basically means nothing more than […]