Thinking Parallel

A Blog on Parallel Programming and Concurrency by Michael Suess

About

Michael SuessMy name is Michael Suess and this is my blog (you already guessed that, right? ;)). Most of the usual About-pages in blogs are just a tiny bit boring, therefore I will try to be different and present the information in a little Q&A-session, or phrased differently: I will do an interview with myself. Will see if it helps to keep you awake and reading further…

Q: Who are you?

A: My name is Michael Suess, I am 28 years old and currently located in a mid-sized city called Kassel in Germany (no, you don’t have to know where that is, let’s just say it is about in the middle of Germany). For work, I am currently doing my PhD on parallel programming at the Programming Languages / Methodologies research group at the University of Kassel. The topic of my thesis can be summarized shortly as: exploring ways to make parallel programming easier and you can see some of my work (especially my publications) at my small work-homepage. My current contract runs until November 2007 and therefore I will be looking for work starting spring 2007, preferably in the area around Leipzig / Germany (you don’t have to know where this is either, although it is more well known and more than double the size of Kassel [about half a million people live in Leipzig]. Why am I telling you this? Because this is where I was born and raised and it is still my favorite city in the world, although of course I am biased :P).

Q: There must be more to you than just a location and a thesis, right?

A: Of course there is. I am married to my beautiful wife Claudia and have a cute little son called David. I have hobbies (e.g. jogging, fantasy- and scifi-literature, soccer, roleplaying and from time to time I also play a computer game), friends and even a life (now who would have known :P). But since this blog is about neither of these, I will stop telling you about them now.

Q: If this is not a personal blog, what’s it about then and why are you writing it?

A: This blog is about parallel/concurrent programming. Since I am also interested in more general software development issues, program optimization and project management, I might also occasionally write a post about them. Parallel programming is what I know about most, though, and therefore this will be the main part.

Q: This answers the first part of the question, but you left out the why-part!

A: I left that part out, because there are a multitude of reasons and I did not want to bother you with them. But now that you are so persistent I will at least sketch some of them:

  • It all started, because from time to time I encounter questions that I cannot find an answer for on the Internet. I usually do some experimenting around and find an answer that obviously not many people have known or at least written about before. Often, the initial question is too minor or not scientific enough for a publication but I still want to share the answer, because I suspect other people may be interested as well. A blog is a great way to share these little insights and experiments (e.g. my article about Opteron NUMA-effects falls into that category)
  • I am also using this blog as a way to make sure I write things down early. From time to time I am blogging about work-related topics and writing them down makes sure I don’t forget about them in my dissertation. Also, it is a way for me to bring more order into my thoughts and challenge my assumptions, because when I see things written down, it is easier for me to make sure there are no holes in my arguments. Of course, I am also hoping for feedback from other people and a blog is a good way to get some of my ideas out into the open.
  • I have a similar motivation for writing my introductory articles (e.g. the one about thread-safety) – although I am working with and teaching these basic topics often, putting them down in articles allows me to make sure I have thoroughly understood a topic and all its consequences. It also allows me to give something back to the community on the Internet.
  • This blog is also a tool for self-marketing. When I will be looking for a job (as I already mentioned, sometime in 2007 for the next time), I can point any potential employer to it and let them get a first impression about me, my writing, knowledge or even some of my personality from here.
  • I wanted to see if I can do it. One of my hobbies is web-programming and setting up and customizing this blog was a fun exercise.

These are just the main reasons, but since you seem to be regretting to have even asked already, I will stop now.

Q: I am not regretting anything, I always look like I am going to fall asleep any minute now, but thanks for asking! Anyways, back to the original topic: Why should I care what you have to say about parallel programming? Are you some kind of world-class expert in the field?

A: No, I am sure not. I have been doing parallel programming since about 2002, mostly in C / C++ using OpenMP, POSIX Threads and MPI. I have also evaluated and tried some other parallel programming systems (e.g. Java threads, Cilk, BSP, Perl Threads, Erlang) and will continue to do so in the future to broaden my view (and because I am always eager to explore new things). Since I have been doing this full time as a part of my work at the Programming Languages / Methodologies research group, I have gained a lot of experience in the field, especially with my favorite parallel programming system, OpenMP and C/C++. My work has also enabled me to join the OpenMP Language-Committee, where I can participate in developing the next OpenMP-specification, which is a very challenging and educational experience for me.

Of course, there are people with more experience in parallel programming than I have. But aren’t there always? For example, I have more than ten years experience developing in C++, and I can still find books and papers about the subject that make my head spin and make me feel like an absolute beginner. If I waited to start blogging until I felt like an expert in my field, I would probably never start, because there is something new to learn every day. And if only the most well known leaders in a field were allowed to voice their opinions, the world (and especially the blogsphere) would be a really quiet place, don’t you think? ;)

I also do have one advantage over many experts: I am frequently teaching classes on parallel programming at our university and paying close attention to the problems my student have and the mistakes they make. I do try to incorporate the valuable feedback they provide into at least some of my posts (e.g. the article on high-level optimization was basically written, because I noticed that not many of my students had a sound idea about how to approach an optimization problem at all).

Q: I think I have heard enough for now (*yawn*), thanks for answering my questions!

A: You are welcome!

This closes my little self-interview-episode, hope I could tell you a little more about me and how I see myself :-). If you are interested in even more (and possibly even more boring) details of my career, you can always take a look at my personal homepage.