[Omp] Directive 'sharable' or inclusion of Cluster OpenMP?

Tobias Burnus burnus at gmx.de
Wed May 10 17:08:17 PDT 2006


Hello,

Intel's new compiler supports something they call "Cluster OpenMP". This
allows to run OpenMP programs on distributed-memory systems.

When implementing OpenMP for distributed-memory systems, one encounters
the problem (if I understood it correctly) that in OpenMP almost
everything is shared between threads, except for local variables whereas
for programs running on distributed memory almost all variables are
local - except those that are synchronized. Intel introduced a new
directive 'shareable', which denotes variables that are
shared/synchronized by the "Distributed Shared-Memory manager". Some
variables are, however, automatically marked as shareable.
(Actually, 'shareable' is not the only new item; the _CLUSTER_OPENMP
macro and kmp_shareable_malloc etc. also exists.)

I do like it a lot that I can now run (in principle) my OpenMP program
instead of on 2 cores (or 4 cores) on 2*124 cores, but I'd like to see
this enhancement to be standardized so I have the chance that an other
compiler vendor will follow suit.
The OpenMP standard seems to be the right place for that :-)

Intel's Whitepaper can be found at
  
http://www.intel.com/cd/software/products/asmo-na/eng/compilers/285865.htm

Intel's user manual at
  http://softwareforums.intel.com/attachments/ids/11/3796/1/UsersGuide.pdf

Tobias


More information about the Omp mailing list