Thinking Parallel

A Blog on Parallel Programming and Concurrency by Michael Suess

Archive for the 'Parallel Programming' Category

Exceptions in OpenMP and C++ – what’s the state of affairs today?

As you may know from reading one of my last posts (e.g. the one regarding Scoped Locking in OpenMP), I am interested in issues regarding C++ and OpenMP. One of these is how to make exceptions work with OpenMP. In this article I am going to highlight the present state of affairs regarding exceptions in […]

Recursive locks – a blessing or a curse?

Christopher Smith has tried very hard to come up with a case where a recursive lock is a good thing (TM). And while the article is very well thought out and presented, apparently David Butenhof (the creator of my favorite book on POSIX Threads) disagrees. Actually, it was the other way around, as Butenhofs article […]

Stream processing for the Masses? I don’t think so!

Joe from points to an interesting article. Apparently, ATI is moving into the field of stream processing. In this post, I will tell you a little about what stream processing is, what your graphics processor has to do with it and also what problems I see with it. But let me start by having […]

How to do it ONCE in OpenMP…

Time to write about some of the things I am doing at work again. As you may remember from my last article related to work, I am presently toying around with OpenMP and C++, trying to implement commonly used patterns there. What I want to write about today is not exactly a pattern, but rather […]

Mutual Exclusion with Locks – an Introduction

Do you know the difference between a mutex and a spinlock? You know exactly what kind of locks are employed in e.g. OpenMP? You find hierarchical locks boring and recursive spinlocks only make you yawn? Then you will most likely NOT enjoy reading this article, and I encourage you to stop reading now, as it […]

Language Discussions

There have been various articles on the merits of different programming languages, both parallel and sequential, during the last week (notice how elegantly I have avoided the term language wars 😉 ): Joel has written about which (sequential) programming language to use for web-programming. He primarily compares Java and .NET, along with a little bit […]

Thoughts on Larry O’Briens article at

Larry O’Brien has written an introductory article on parallel programming with OpenMP on Windows and announced it in his blog. I enjoyed reading the article and think it is a really nice resource for people new to parallel programming. I would like to comment some parts of his article and since it does not have […]

Scoped locking vs. critical in OpenMP – a personal shootout

When reading any recent book about using C++ and parallel programming, you will probably be told that scoped locking is the greatest way to handle mutual exclusion and is in general the greatest invention since hot water. Yet, most of these writers are not talking about OpenMP, but about lower level threading systems. OpenMP has […]

More information on pthread_setaffinity_np and sched_setaffinity

Skimming through the activity logs of this blog, I can see that many people come here looking for information about pthread_setaffinity_np. I mentioned it briefly in my article about Opteron NUMA-effects, but barely touched it because I had found a more satisfying solution for my personal use (taskset). And while I do not have in […]

More reasons why OpenMP is the way to go for parallel programming

Expanding on my earlier article about Why OpenMP is the way to go for parallel programming, I would like to point out a couple more strengths of OpenMP. And the best thing about this is: I do not have to do it myself this time, because OpenMP evangelist Ruud van der Pas has already done […]