Intel® Fortran Compiler
Build applications that can scale for the future with optimized code designed for Intel® Xeon® and compatible processors.
Announcements
Welcome to the Intel Community. If you get an answer you like, please mark it as an Accepted Solution to help others. Thank you!

Co-arrays versus OpenMP

joseph-krahn
New Contributor I
383 Views
Is there an actual advantage to Co-arrays versus OpenMP?

My initial impression is that it does the same as OpenMP, but using a Fortran syntax as opposed to OpenMP directives. In other words, it sounds like a lot of work for compiler developers, and for users to learn a new parallel syntax, just to avoid the "hack" of using directives.

I always thought OpenMP was a good idea because the same paralle system is applicable to multiple programming languages. With native parallel, there will probably be more obstacles to mixed-language programming.

Thanks,
Joe Krahn
0 Kudos
1 Solution
Steven_L_Intel1
Employee
383 Views
Coarrays and OpenMP have very different programming models. One big difference is that coarrays are scalable, at least by design, to distributed systems, whereas OpenMP is primarily a shared-memory model. (Intel did experiment with a "Cluster OpenMP" feature but that was killed.)

OpenMP is mainly concerned with loops - coarrays are much more broadly integrated into the Fortran language and don't require extensive directives to specify what is private and public, etc.

I think time will tell if coarrays are successful, but today's HPC needs have far outstripped what OpenMP can provide. You might better compare to MPI.

View solution in original post

3 Replies
Steven_L_Intel1
Employee
384 Views
Coarrays and OpenMP have very different programming models. One big difference is that coarrays are scalable, at least by design, to distributed systems, whereas OpenMP is primarily a shared-memory model. (Intel did experiment with a "Cluster OpenMP" feature but that was killed.)

OpenMP is mainly concerned with loops - coarrays are much more broadly integrated into the Fortran language and don't require extensive directives to specify what is private and public, etc.

I think time will tell if coarrays are successful, but today's HPC needs have far outstripped what OpenMP can provide. You might better compare to MPI.

View solution in original post

joseph-krahn
New Contributor I
383 Views
I didn't realize that Cluster OpenMP was dead. Obviously, there are reasons why the OpenMP model does not extend well to clusters. So, one significant benefit will be that it will work well for both shared-memory and distributed systems.

Fortunately, Cray already has co-arrays for a while, so the specs should be in good shape. (Unlike many new Fortran features that defined by a purely theoretical design.)
Steven_L_Intel1
Employee
383 Views
Indeed, Cray has had an implementation of coarrays for a decade. While the F2008 syntax has slight variations from what Cray supports, that isn't a serious problem. That coarrays are part of a Fortran standard and integrated into the language is a big plus.
Reply