[MPICH] Can I ask MPI to not copy the data to shared-mem ?

chong tan chong_guan_tan at yahoo.com
Tue Oct 9 16:50:30 CDT 2007


I do run into situation that I exchange few hundred K bytes of data between processes each time they exchange data. WIth sharedmem or nemesis, these means 2 copy operations, from sender to sharedmem to reciever.  The idea solution is to have, say, sender being sharedmem, and MPICH use it directly, saving 1 copy operation.
   
  having both sender and reciever being the same shared memory may require Barriers to be placed to block writing to the mem before it is completed consumed.  That may actually slow done the run.
   
  tan
   
  
Darius Buntinas <buntinas at mcs.anl.gov> wrote:
  
Yeah, interesting. But you have to read the maps file every time you do 
a send or receive. You can't just read the maps file once at init and 
cache it, because the user could change the mapping after init.

I guess for sufficiently large messages the benefit of not having to 
copy would outweigh the cost of reading the maps file.

It may be an interesting study.

-d

On 10/09/2007 02:54 PM, Jean-Marc Saffroy wrote:
> On Tue, 9 Oct 2007, Darius Buntinas wrote:
> 
>> Hmm. I can't see a way that an MPI implementation could (efficiently 
>> and reliably) check that two virtual addresses from different 
>> processes point to the same location in a shared memory region. An 
>> MPI implementation wouldn't have enough information to do what you're 
>> asking.
> 
> It could very well have this information from the operating system.
> On Linux, /proc/self/maps has all the required details.
> 
> 



       
---------------------------------
 Check out  the hottest 2008 models today at Yahoo! Autos.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.mcs.anl.gov/pipermail/mpich-discuss/attachments/20071009/795f31ba/attachment.htm>


More information about the mpich-discuss mailing list