I 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.
Here is a little teaser, with my list of interview partners (ordered alphabetically by the name of their parallel programming system):
- Joe Armstrong for Erlang
- William Gropp for MPI
- Sanjiv Shah for OpenMP
- David Butenhof for POSIX Threads
- and a little late to the game, but nevertheless very appreciated: Joe Duffy for .NET-Threads
I have also tried to get an interview with William Pugh and Doug Lea on Java Threads, but have not gotten a response until now. Maybe some of you know whom I should be interviewing for these systems? If yes, please leave a comment!
Oh yes, and before I forget, here are the ten questions (substitute PPS with their Parallel Programming System):
- As we are entering the many-core era, do you think parallel computing is finally going to be embraced by the mainstream? Or is this just another phase and soon the only people interested in parallel programming will be the members of the high performance community (once again) ?
- From time to time a heated discussion evolves on the net regarding the issue of whether shared-memory programming or message passing is the superior way to do parallel programming. What is your opinion on this?
- From your point of view, what are the most exciting developments/ innovations regarding parallel programming going on presently or during the last few years?
- Where do you see the future of parallel programming? Are there any “silver bullets” on the horizon?
- One of the most pressing issues presently appears to be that parallel programming is still harder and less productive than its sequential counterpart. Is there any way to change this in your opinion?
- What are the specific strengths and weaknesses of PPS as compared to other parallel programming systems? Where would you like it to improve?
- If you could start again from scratch in designing PPS, what would you do differently?
- Are there any specific tools you would like to recommend to people who want to program in PPS? IDEs? Editors? Debuggers? Profilers? Correctness Tools? Any others?
- Please share a little advice on how to get started for programmers new to PPS! How would you start? Any books? Tutorials? Resources on the internet? And where is the best place to ask questions about it?
- What is the worst mistake you have ever encountered in a PPS program?
Thanks to all parallel programming idols who responded to my humble request! 😀