Currently, GCC only supports OpenMP on shared-memory systems. It would be nice if it could be extended to support OpenMP via the ethernet, infiniband etc. (distributed-memory systems). There exists (at least) one implementation of distributed-memory OpenMP: The Intel Compilers 9.1's Cluster OpenMP. Intel's Whitepaper: http://www.intel.com/cd/software/products/asmo-na/eng/compilers/285865.htm Intel's Cluster OpenMP User manual: http://softwareforums.intel.com/attachments/ids/11/3796/1/UsersGuide.pdf Intel's Extentions to OpenMP: "– the sharable directive. The sharable directive identifies variables that are referenced by more than one thread. These variables are the ones that are managed by the DSM system." (Some are automatically marked shareable, see whitepaper, p. 5) The whitepaper also describes some implemenation details to deal with global memory. Running such a Intel-Cluster-OpenMP program: ./a.out, which first reads the config file then starts the program on the remote computer via rsh or ssh. The data transfer via TCP or Direct Access Provider Library (DAPL.sf.net). * * * Besides OpenMP there exists another multi-processor extention which works at compile time: Cray's co-arrays, scheduled (in modified form) to be included into the Fortran 2008 standard (see http://www.co-array.org/). Having a look at the co-array specs shouldn't harm, when implementing this. Maybe some different or further things should be considered. -- Summary: Support Cluster OpenMP (distributed-memory OpenMP) Product: gcc Version: 4.2.0 Status: UNCONFIRMED Severity: enhancement Priority: P3 Component: other AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: tobias dot burnus at physik dot fu-berlin dot de http://gcc.gnu.org/bugzilla/show_bug.cgi?id=27541