[mpich-discuss] Memory alignment with MPI_Alloc_mem
Atchley, Scott
atchleyes at ornl.gov
Mon Feb 16 06:53:55 CST 2015
Jeff,
I expect that he is concerned with GNI's 4-byte alignment requirement for both the address and length for RDMA Reads and the 8-byte alignment for atomics.
Scott
On Feb 16, 2015, at 1:42 AM, Jeff Hammond <jeff.science at gmail.com> wrote:
> If you are going to suballocate from a slab yourself, you can handle
> alignment yourself easy enough, no? Do I not understand what you mean
> here. And what sort of alignment do you want? Are you trying to
> align to 32/64 bytes because of AVX or some other x86 feature on Cray
> XC30 or do you want page alignment?
>
> But what do you really want to achieve? While it is usually
> beneficial to use pre-registered buffers on RDMA networks, good MPI
> implementations have a page-registration cache. If, as you say, you
> are suballocating from a slab, Cray MPI should have the backing pages
> in the registration cache after you use them as MPI buffers.
>
> You can maximize the efficiency of the page registration cache by
> using large pages. Search for intro_hugepages using 'man' or on the
> Internet to learn the specifics of this. I suspect that using large
> pages will induce much of the benefit you hoped to achieve with an
> explicitly-registering MPI_Alloc_mem.
>
> If you really want to max out RDMA on Cray networks, you need to use
> DMAPP. I have some simple examples and pointers to docs here:
> https://github.com/jeffhammond/HPCInfo/tree/master/dmapp. I have more
> examples other places that I'll migrate to that location if requested.
>
> If you're interested in portability, MPI-3 RMA is a good abstraction
> for RDMA networks. Some implementations do a better job than others
> at exposing this relationship. Cray MPI has a DMAPP back-end for RMA
> now, although it is not active by default. You could also try Torsten
> Hoefler's foMPI
> [http://spcl.inf.ethz.ch/Research/Parallel_Programming/foMPI/].
>
> Best,
>
> Jeff
>
> On Sat, Feb 14, 2015 at 2:37 PM, Marcin Zalewski
> <marcin.zalewski at gmail.com> wrote:
>> I am using Cray MPT, and I would like to allocate a large region of
>> memory from which, in turn, I will allocate buffers to be used with
>> MPI. I am wondering if there is any benefit from allocating that heap
>> with MPI_Alloc_mem. I would hope that it could be pre-registered for
>> RDMA, speeding things up. However, I need this memory to have a
>> specific alignment. Is there a general way in MPICH or maybe a
>> specific way for MPT to request alignment with MPI_Alloc_mem?
>>
>> Thanks,
>> Marcin
>> _______________________________________________
>> discuss mailing list discuss at mpich.org
>> To manage subscription options or unsubscribe:
>> https://lists.mpich.org/mailman/listinfo/discuss
>
>
>
> --
> Jeff Hammond
> jeff.science at gmail.com
> http://jeffhammond.github.io/
> _______________________________________________
> discuss mailing list discuss at mpich.org
> To manage subscription options or unsubscribe:
> https://lists.mpich.org/mailman/listinfo/discuss
_______________________________________________
discuss mailing list discuss at mpich.org
To manage subscription options or unsubscribe:
https://lists.mpich.org/mailman/listinfo/discuss
More information about the discuss
mailing list