Benno OVEREINDER:

What tools are needed?

Well, it a kind of coming out: I do not use any tools. Most elaborate tool I use for debugging is fprintf. It is flexible, generic, and can be configured to generate tailor made output.

I know there are good tools around, and many researchers put lot of creativity and effort in designing these tools, but why are these tools not used by me? What is the reason that a vast amount of computer scientists do not use these tools? What is the psychology of a typical computer scientists or engineer?

Computer scientists stick to known methods, languages, etc. In essence, they are conservative to the skill they have acquired. Here is a summary of the psychology of the computer scientists (at least at my department):

Development of tools is technology driven, but maybe the development should be psychology driven.

What is the future of PVM/MPI?

"The nice things about standards is that there are so many of them."

I believe there will be an MPI-3 or something similar to PVM 4.0. But besides that, I hope and expect that researchers still constructs their own message passing interface; this is the only way new concepts can be born, grow, and mature. For example, MPI has adopted concepts from PVM, p4, Zipcode, Parmacs, etc.

There is an analogy here with Biology, the so-called survival of the fittest: one needs diversity for evolution to adapt to the needs. The "fittest" new concepts will probably its way into the MPI standard.

What is your vision of the programming environment 5 years from today?

Although I am not a user of tools, still I am positive about the potential of tools. For example, I see possibilities to guide a programmer during parallel program design and implementation. During program prototyping, partial programs should be compiled/simulated, and early performance figures could give feedback to the programmer. During the desing there are choices in parallelizatin strategies and the aimed underlying platform specifics, which can be general (i.e. COW/NOW) or specific (i.e. IBM SP2, Cray T3E). The programming environment should provide both efficient support for generic parallel strategies, and, if desired, efficient machine specific implementations.

Next, I expect a tighter interaction between message passing interface and resource manager. They are both different (actually have complementary functionality) and should therefore use each others facilities and services via an interface. The message passing interface use the resource managemant system for all dynamic process creation, or addition and deleltion of resources. The resource management system uses the message passing interface to coordinate its work with the application and message passing interface.