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

2012-02-22 Thread xiaoyuanbo at yeah dot net
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=27541

xiaoyuanbo xiaoyuanbo at yeah dot net changed:

   What|Removed |Added

 CC||xiaoyuanbo at yeah dot net

--- Comment #3 from xiaoyuanbo xiaoyuanbo at yeah dot net 2012-02-22 13:02:32 
UTC ---
from sql selector


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

2006-05-10 Thread pinskia at gcc dot gnu dot org


--- Comment #1 from pinskia at gcc dot gnu dot org  2006-05-10 22:09 ---
Is there really a standard for this or just an extension of OpenMP?
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.


-- 

pinskia at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|UNCONFIRMED |NEW
 Ever Confirmed|0   |1
   Last reconfirmed|-00-00 00:00:00 |2006-05-10 22:09:40
   date||


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



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

2006-05-10 Thread tobias dot burnus at physik dot fu-berlin dot de


--- 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