Thinking Parallel

A Blog on Parallel Programming and Concurrency by Michael Suess

NewsOnce again, it is time for a short newscast. Notable this time is the fact, that more and more stuff seems to be written about
multi-cores, threading and parallelism in general. It feels like people do start realizing that the concurrent era is here and that they need to improve their knowledge in this field. A very encouraging sign! Or maybe its just because of Supercomputing and the recent coverage will die down again. Anyways, without further ado, here are some of the articles I found interesting lately: (more…)

JumpIn 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, because there is not really much you can do (or if there is, I am too dumb to find out). ๐Ÿ˜‰ (more…)

Red LightI always like it, when my readers contact me directly. Thats why I have put up a whole page for that reason alone: to make it easy for you to get in touch with me, to share your thoughts and to tell me what you liked or where I have screwed up. Therefore, it was a happy day for me when one of my readers (I care about privacy, therefore let’s just call him/her Hans) wrote me this nice request:

hellow michael
i have a c++ program about matrix, which has to be written in openmp.
is there any time for you to write that.
thank you

When my readers inquire so nicely (thanks again, Hans!) and even send me a more detailed description of the assignment in a second mail before I even get the chance to answer, I have no choice but to obey. So here it is, the one and only (TM) true solution (patent pending) to this extraordinarily well written and precise specification: (more…)

GamesA 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 you. ๐Ÿ™‚

Anyways, they have invited a couple of tech-journalists to tell them how they have parallelized their game-engine. And while I wasn’t invited (now who would have guessed :P), I have stumbled across two articles covering the event: one from and one from ArsTechnica. Reading through both of these articles, I could not resist the urge to comment on some of the points they made (need some practice in the self-control department, I guess). ๐Ÿ˜‰ (more…)

Michael SuessI just wanted to make anyone interested aware that I have finally gotten around to updating my About-Page. It was in a sorry state before and now that I have refactored (sweet, this works for text just as well as for code ;)) and extended my introductory article into it, I am much happier.

So if you always wanted to know who is talking to you here each and every week, now is the time to find out! It even provides the answers to the question some of my friends have been asking me, which is “Why the heck are you writing a blog??”.

NewsThere 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:): (more…)

The Guiding LightThis 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 some focus during the lifetime of the project. Second, it is an exercise on how to write a good vision document. I don’t get to employ my project management skills too often while at the university and I am eager to practice some of the things I have learned from the literature (in this case: from Scott Berkuns excellent book The Art of Project Management). Since I don’t do this often, this is also a great chance for me to gather some feedback from more experienced people, be that project managers or developers or whoever feels like commenting (so if you have anything to criticize in this document, I encourage you to do so!). The third role of this post is to let you participate in some of the ideas I am working on at the moment. (more…)

News and CoffeeBefore I start, let me say a warm thank you to all the people who have read this blog over the past few month, have left their comments, dropped me encouraging notes or mentioned me in their blogs: I really appreciate your support, thank you!

Getting back to the subject of this post, I have read some interesting articles this week that I would like to share with you, some related to parallel programming, some not so much: (more…)

RevolverWhen 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 expecting everyone to know what you know (at least to a certain extent), because the knowledge is so essential for what you do every day. The concept of Thread-Safety definitely belongs into this category for me, as I usually have to force myself to explain it and its implications to my students new to parallel programming, because it seems so trivial. Unfortunately, it is not. Therefore, I will spend the rest of this article trying to explain what Thread-Safety means, why it is important and also highlight some ways to achieve it without throwing your performance out of the window. I would also like to issue the usual warning to my more advanced readers: the beginning of this article is most definitely not for you, the end may be worth checking out as well :P. (more…)

ExitAs 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 OpenMP. In a followup article, I will sketch some limited ways to make exceptions work with certain OpenMP-constructs and further comment on why these ways will only take you this far. (more…)