MPI International Survey
This survey focuses specifically on the communication aspect of the MPI standard and its impact on users and applications. It has been designed to stay away from implementory details, and instead address high-level concepts to understand the challenges of using MPI, both in a High Performance Computing and in a more industry-driven setting. It is complementary with other MPI surveys (OMPI-X ECP MPI survey,, and all non-communication oriented parts of the MPI standard (such as file I/O, job scheduling, tools, etc.) are out of scope of this survey.
What is your main occupation?
Select main country or region of your workplace in past 5 years. [among the countries in Top500 list as of Nov. 2018. If you cannot find your country or region, please specify.] *
Rate your overall programming skill (non-MPI programs):
Rate your MPI programming skill:
What programming language(s) do you use most often?
How long have you been writing computer programs (incl. non-MPI programs)?
How long have you been writing MPI programs?
Which fields are you mostly working in?
What is your major role at your place of work?
Have you ever read the MPI standard specification document?
How did you learn MPI?
Which MPI book(s) have you read?
Which MPI implementations do you use?
Why did you choose the MPI implementation(s)? [Select most suitable one]
How do you check MPI specifications when you are writing MPI programs?
What is the most difficult part of writing an MPI program?
Which MPI features have you never heard of?
What aspects of the MPI standard do you use in your program in its current form?
Which MPI thread support are you using?
What are your obstacles to mastering MPI?
When you call an MPI routine, how often do you check the error code of the MPI routine (excepting MPI-IO)?
In most of your programs, do you pack MPI function calls into their own file or files to have your own abstraction layer for communication?
Have you ever written MPI+”X” programs? If so, select all that apply.
Is there any room for performance tuning in your MPI programs? Select most suitable one.
What, if any, alternatives are you investigating to indirectly call MPI or another communication layer by using another parallel language/library?
If there were one communication aspect which is not enough in the current MPI could improve the performance of your application, what would you prioritize? Or is MPI providing all the communication semantics required by your application? If not, what is missing?
Is MPI providing all the communication semantics required by your application? If not, what is missing?
What MPI feature(s) are NOT useful for you application?
Do you think the MPI standard should maintain backward compatibility?
In the tradeoff between code portability and performance, which is more or less important for you to write MPI programs? ["1" means portability is the most important and "3" means both are equally important.]
Never submit passwords through Google Forms.
This content is neither created nor endorsed by Google. Report Abuse - Terms of Service