Originally posted by: Michael_Wong
In late January, I hosted the OpenMP January 2012 Face-2-Face (F2F) meeting in San Francisco at the Serrano hotel attended by 24 experts.
In the words of one expert, it was one of the most productive meeting we have had in a long time. In this meeting, we increased
the urgency to drive towards OpenMP 4.0 with subgroups to discuss affinity, taskgroups, accelerators and high level vector language, Fortran 2003 integration, and error model.
Currently, the Affinity subgroup is lead by Christian Terboven, Task subgroup is lead by Federico Massaioli, Accelerators is lead jointly by Eric Stotzer and James Beyer, Fortran 2003 integration is lead by Kelvin Li, and Error model is lead by Michael Klemm.
For each group, the urgency was driven by a need to provide some kind of completed feature by a projected date of Nov 2012, for a public comment release during SC 12. As a result, we were driven to make a great deal of progress during the meeting, as well as in between F2F weekly telecons.
We have already had a few not so small features approved in the draft specification. We have approved user-defined
reductions, and adding a swap atomic instruction. Some of these work items have already been worked on last year during OpenMP 3.1, but were deemed not quite ready for one reason or another. In fact OpenMP is also adapting a bus/train model where each subgroup will continue work on many items and whenever the bus for a new release leaves, whatever makes sense will get picked up.
OpenMP will likely issue a direct press release summarizing the technical progress of each group.
I also gave a session talking about the Future of OpenMP, describing the need for an Interim Draft Specification similar to an ISO Technical Report process.
This is a way to showcase what OpenMP has been working on, shows an intended direction as well as give implementers a chance to offer an early implementation.
In addition, we discussed various options to hold extensions for OpenMP which will allow OpenMP to grow without sacrificing the
core constituent users.
More important, for the future, we argued strongly that OpenMP is well suited as a high level language for parallelism.
One that can be faster moving then ISO, and more ubiquitous, being on 3 General purpose languages, then what can be offered by
a proprietary language from any single vendor. Proprietary languages are great experimental grounds for new ideas, changing rapidly
as the original designer needs supporting the specific target users on that platform. But high adaption usually demand that it be moved into a more open environment, commonly
supported by many vendors, where there is an open forum to discuss the various needs of each vendor hopefully without
sacrificing many of the advantages of the proprietary language. Our view is that OpenMP can fill in such as role. There is
in fact little-else better on the horizon that can serve that need although even that landscape is arguably changing rapidly. However, we are keenly aware that for OpenMP to fill in that role, it will need to make some changes. One key change is a broad change of perception. OpenMP is not merely just that HPC thing. OpenMP can be suitable to many domains, anywhere from:
- Graphics and visualization
- Embedded and Real-time system
- Communications and networking
- General data analysis
- Automation and robotics
- System and development tools
- Trading and financial analysis
- Database and Middleware
- Medical and Biotech
- Speech and audio processing
We will need to take that message to many potential users requiring high-level parallel language support and will see that in the upcoming years.