This is the mail archive of the gcc-bugs@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]

[Bug other/27541] Support Cluster OpenMP (distributed-memory OpenMP)



------- Comment #2 from tobias dot burnus at physik dot fu-berlin dot de  2006-05-10 22:46 -------
> Is there really a standard for this or just an extension of OpenMP?
I'm not sure whether I understand the question.
Directive wise it is OpenMP augmented by a single directive: "shareable".
This seems to be a single-vendor extension by Intel.

I think they simply took the OpenMP standard and looked how to implement it for
distributed memory.
The problem in inplementing is, as far as I understood, that plainly speaking
OpenMP assumes everything is global whereas distributed programs want to
minimize 'global' (better: shared) variables as they have to be synchronized
and are thus expensive.
Intel added "sharable" to denote explictly such a variable; however, some
variables are automatically marked as shareable.

Thus: Syntaxwise it is a rather small change quickly to be implemented in GOMP.
But the library system behind is a bigger task:
- wrapper main() which initializes helper library, finds settings and starts
the program on m computers (incl. forking of n threads) via rsh/ssh.
- provides synchronization (barrier, data exchange, collection of data etc.)
via
TCP or DAPL, especially for global variables


> Though this is useful a little bit for the Cell where you don't
> really have a distrubuted machine but the memory will be distributed though.

Well, I'm primarily interested to run a number-crunching program
(exciting.sf.net) on more nodes. As it is only parallized using OpenMP (and not
e.g. via MPI), I'm currently limited to 2 CPUs (or one dualcore) on our
cluster. Using Cluster OpenMP with infiniband I could use 2*120 CPUs.


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=27541


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