I am a Chemical Engineering Undergraduate at Rutgers University, New Brunswick. I am working on my honors thesis and I am parallelizing a simulation I wrote in FORTRAN.
Background:
I will be breif. I have code using MPICH which runs excellently but as my system scales up some of the arrays are 8+GB which exceeds my per core RAM. Since MPI requires each core makes its own copy of all of the data there are a lots of copies of the same information on the same NODE, as I am sure you all know. So I need to run my MPI code on many nodes and have each node operate like it was using OMP.
I have read there are two options to do this. One using
MPI-OMP hybrid programs and the other using MPI3.0's RMA window calls. However
most of the material I have found on the internet are brief overviews from
conferences and short comments here and there on stack exchange which don't
quite give me enough to know how to proceed.
Question:
Is it possible to use the MPI3.0 RMA calls to make all of the cores on a node operate in a shared-memory mode? Or is the hybrid MPI-OMP method still the best way to go about my problem? Do you know any good resources for learning about these functions in particular or were I may find some FORTRAN based source code demonstrating usage of some of these shared-memory methods?
Any help would be immensely appreciated. I can attach the resources I have found if you all would like to see them.
best regards,
Franklin Bettencourt