Thinking Parallel

A Blog on Parallel Programming and Concurrency by Michael Suess

Joe ArmstrongThis is the first post in my Interviewing the Parallel Programming Idols-Series. My interview partner today is Joe Armstrong, one of the founding fathers of the Erlang programming language. He presently works for Ericsson, where he designed the very first version of Erlang (that was a long time ago in 1986). He is also co-author of the book on Erlang to date: Concurrent Programming in Erlang. And soon, we will have the pleasure of having another book from him in association with the Pragmatic Programmers (this time with him as the main author) – Programming Erlang: Software for a Concurrent World. Besides writing books and inventing programming languages, he teaches courses on Erlang, pursued his PhD in computer science, founded one of the first Erlang startups and enjoys his motorcycle. I wonder where he finds the time to do all that. 😀 (more…)

A MicrophoneI have stated in the past that I don’t consider myself an expert when it comes to parallel programming. There are always so many things left to learn, paths to travel and exciting new technologies to try out. Yet, there are people working in this field that have done so way longer than me – in some cases even way longer than I am alive :P. Talking and learning from them is always a very rewarding experience for me. Therefore I have tried to get in touch by email with some of the people I would consider the Parallel Programming Gods. Personal Heros. Founding Fathers. Idols. Whatever you want to call them. And luckily for me, some of them responded. I have asked them all the same ten questions: five about parallel programming in general, five about their parallel programming system. Starting next week, I will publish one of the interviews each week. (more…)

The NetI realize for most of you this is probably old news. I have been taking a first look at C# a little while ago, because I wanted to know if it is worth looking into, and because I am thinking about polishing up my class on Parallel Programming here at the university with a little language diversification. I have taught it using POSIX Threads before, but since everyone and their grandmother seems to use Java or C# these days, throwing in a couple of examples in these languages won’t hurt. And besides, I was curious ;). Without having written a single line of code and just by reading the various guides available, I have come up with a list of differences between C# and C++ and thought you might enjoy reading it here. (more…)

An ExceptionI have blogged about OpenMP and exceptions in the past. I have shown you what the OpenMP-specification has to say about exceptions. I have also shown you some (tiny) workarounds for the limitations regarding exceptions sketched in the spec. Unfortunately, this is only one side of the medal. When you actually try to use exceptions and OpenMP together, you may get a different picture today. This article is about my recent experiences in this regard. (more…)

This article is different. If you have read my post on new years resolutions, you know why. In Germany, we have a saying that (roughly translated) says: “to look over the edge of your plate”. My dictionary tells me to translate it into: “to think out of the box” – which basically means to look beyond your usual horizon and think about different fields than you usually do. I want to do just that by talking about a book I recently read here. It has nothing to do with parallelism, optimization or even software development. But before I try convincing you that it’s topic is important anyways, I will try to let it’s author, Dale Carnegie, speak for himself:

These investigations revealed that even in such technical lines as engineering, about 15 percent of one’s financial success is due to one’s technical knowledge and about 85 percent is due to skill in human engineering – to personality and the ability to lead people.

The book I would like to talk about today is about just that – human interactions and how to master them. It is called How to Win Friends & Influence People. (more…)

sullivan.jpgBryan O’Sullivan has a beautiful summary of the present state of NVIDIA’s CUDA. He explains the programming model, along with the many different levels of memory and their restrictions (there are many 🙂 ). I had been quite optimistic in my last post about CUDA (just from taking a quick glance at their source code), but Bryan’s very educated opinion brought me back to earth, as they say. Just a small quote so you can see what I mean exactly: (more…)

A FenceI 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 why you please should not use the techniques described there, unless you really, really know what you are doing! (more…)

So it looks like CUDA was released. I will let their marketing department have their two minutes of fame:

NVIDIA® CUDA™ technology is a fundamentally new computing architecture that enables the GPU to solve complex computational problems in consumer, business, and technical applications. CUDA (Compute Unified Device Architecture) technology gives computationally intensive applications access to the tremendous processing power of NVIDIA graphics processing units (GPUs) through a revolutionary new programming interface. Providing orders of magnitude more performance and simplifying software development by using the standard C language, CUDA technology enables developers to create innovative solutions for data-intensive problems. For advanced research and language development, CUDA includes a low level assembly language layer and driver interface.


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 would bring out a new edition soon (and because I was cheap 😀 at that time). Turns out I was right, and they did bring out a new edition. But thats not the topic of the interview. It’s in large parts about parallelism and the changes in todays computer architecture related to it. (more…)

A CameraIt’s this time of the month again when I am posting stuff I found interesting. I thought this was the most boring part of my blog, but my colleagues have told me that they liked these newsposts a lot, so I am keeping them up. Of course, I am also interesting in hearing what you think about the issue, would you like more news from other sites quoted here? Or less? Or none at all? Please let me know and leave a comment! Or write me personally, I always enjoy reading mail from my readers! But now without further ado, here is my list of newsworthy resources on the net: (more…)