The data are read from a file and processed before calculations begin, so I think that mapping will not work in our case.

Global Arrays look promising indeed. As I said, we need to put just a part of data to the shared section. John, do you (or may be other users) have an experience of working with GA?

When GA runs with MPI:

MPI_Init(..)      ! start MPI 
GA_Initialize()   ! start global arrays 
MA_Init(..)       ! start memory allocator

   .... do work

GA_Terminate()    ! tidy up global arrays 
MPI_Finalize()    ! tidy up MPI 
                  ! exit program



On Fri, Sep 24, 2010 at 13:44, Reuti <reuti@staff.uni-marburg.de> wrote:
Am 24.09.2010 um 13:26 schrieb John Hearns:

> On 24 September 2010 08:46, Andrei Fokau <andrei.fokau@neutron.kth.se> wrote:
>> We use a C-program which consumes a lot of memory per process (up to few
>> GB), 99% of the data being the same for each process. So for us it would be
>> quite reasonable to put that part of data in a shared memory.
>
> http://www.emsl.pnl.gov/docs/global/
>
> Is this eny help? Apologies if I'm talking through my hat.

I was also thinking of this when I read "data in a shared memory" (besides approaches like http://www.kerrighed.org/wiki/index.php/Main_Page). Wasn't this also one idea behind "High Performance Fortran" - running in parallel across nodes even without knowing that it's across nodes at all while programming and access all data like it's being local.

-- Reuti