<html><head></head><body><div class="yahoo-style-wrap" style="font-family:Helvetica Neue, Helvetica, Arial, sans-serif;font-size:16px;"><div><div><div>Hello all</div><div><br></div><div>my name is Arash Hajisharifi and I am a phd student in computational fluid dynamics, Iam working on a code which has been parallelizaed with MPI.</div><div><p style="margin: 0px 0px 1em; padding: 0px; border: 0px; font-family: Arial, Helvetica, sans-serif; font-stretch: inherit; line-height: inherit; font-size: 15px; vertical-align: baseline; clear: both; color: rgb(36, 39, 41);"> I need to improve the parallelisation to reach better performance.<br>I have a 3D domain which has decomposed as 2D domain decomposition and each rank has a stencil of the domain.<br></p><div>In my case I have a large 3D array for example Array_total(nx,ny,nz), after decomposition each rank has a part this array:</div><div>#0 : array_partial(nx,ny/4,nz/4) in rank 0</div><div>#1 :array_partial(nx,ny/4,nz/4) in rank 1<br></div><div>.</div><div>.</div><div>.</div><p></p><div>#15 :array_partial(nx,ny/4,nz/4) in rank 15<br></div><div><br></div><div>After some operation, each rank should see Array_partial of every rank, I could not use allgather for each rank because Array_total is so large (about 10 GIG) to gather it inside the local buffer of each rank and can not fit inside and the only way is mpi_shared memory by which each rank shared its part .</div><p style="margin: 0px 0px 1em; padding: 0px; border: 0px; font-family: Arial, Helvetica, sans-serif; font-stretch: inherit; line-height: inherit; font-size: 15px; vertical-align: baseline; clear: both; color: rgb(36, 39, 41);">I know the idea of mpi_shared memory to creat a window among the processes, this idea could be feasible for the processes in one node which the ranks have a shared memory, but it is also possible to creat a window for the processes between 2 nodes? I mean creating one window among all the processes in node 1 and node 2?</p><div>Unfortunately I am searching for an easy example or a good documentation specially in Fortran for 2 weeks but there is nothing,i don't know how is it possible to not find any thing for one mpi functinlaity which has released 3 years ago and it is not new anymore.</div><div><br></div><div><br></div><div>May I ask you kindly to guid me or send me some simple example to understand the idea?</div></div><div><br></div><div>looking forward to hearing from you,</div><div><br></div><div>Best Regards,</div><div>Arash Hajisharifi</div></div></div></div></body></html>