This is the mail archive of the gcc-help@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: OpenMP 4.0


José Luis García Pallero wrote:
I don't know if this is the correct place for this question, but I
haven't found any mailing list on the GOMP webpage.
The OpenMP 4.0 specifications were launched ten days ago. This new
standard includes several interesting characteristics as SIMD and
accelerators directives and error handling facilities. Is planned to
add this new version of OpenMP to libgomp and, then, to GCC 4.9?

Well, it takes a while until features are implemented - and the implementation work can only start after a specification/standard is sufficiently finished to not change in a major way.

Having said that, there is a GCC branch called gomp-4_0-branch (see
http://gcc.gnu.org/svn.html), which is used for the on-going implementation. I think SIMD already partially works (with C/C++, not yet with Fortran).

I believe that it is planed to support OpenMP 4 in GCC 4.9.


Tim Prince wrote
OpenMP 4.0 simd facilities are related to Cilk(tm) Plus pragmas, for which there is a gcc branch on git (although I haven't figured out that stuff).

As far as I gathered, Cilk+'s pragmas and OpenMP'pragmas are supposed to be handled identically. (I think there were some differences but they got resolved by changing Cilk+.) There are some Cilk+ branches, which aim at consolidating the effort with OpenMP. Actually, some Cilk+ patches has been submitted for inclusion - thus, expect more for this. (The submitted patches do not include SIMD as far as I know. The branches do support it.)


For example, I know of no one planning to implement user defined reduction. Some talk about proposing a specific standard on indexed min/max before deciding about user defined reductions.

I think the gomp-4_0-branch already supports min/max since quite some time. (For C/C++; Fortran supports it already since older OpenMP specs.) Additionally, I believe that Jakub intents to implement user-defined reductions (UDR) and that he has already done some prep work on the branch. Ignoring "omp target", UDR seems to be the biggest new feature.

(Regarding "omp target" and other accelerator/GPU/hybrid-system support: I think there is quite some interest to get it working with GCC, however, it probably will take until 4.10 or longer.)


Among my ulterior motives for asking is my attempt to write a book centered on HPC development topics.

That sounds interesting!


Tobias

PS: Regarding SIMD, in GCC 4.9 itself, some basic support has already been merged a few days ago. However, it is not yet accessible from user code (no front-end support) and I have the impression the information is not yet used for optimization. But expect soon some support (possibly something like #pragma simd, #pragma vector for C/C++ and usage for DO CONCURRENT in Fortran) - but I don't know which pragma and when the support will be added.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]