open-mpi / ompi

Open MPI main development repository
https://www.open-mpi.org
Other
2.14k stars 858 forks source link

shmem_align argument ordering #1360

Open paboyle opened 8 years ago

paboyle commented 8 years ago

https://github.com/open-mpi/ompi/blob/master/oshmem/shmem/c/shmem_align.c

static inline void* _shmemalign(size_t align, size_t size);

void* shmem_align(size_t align, size_t size) { return _shmemalign(align, size); }

void* shmemalign(size_t align, size_t size) { return _shmemalign(align, size); }

Cray XT series (BlueWaters):

emacs -nw ../../../lib/AlignedAllocator.h
boyle1@h2ologin1:~/Grid/Grid/build/icpc/benchmarks> grep align /opt/cray/mpt/7.3.0/gni/sma/include/shmem.h extern void * shmem_align(_SIZ_T size, _SIZ_T alignment); extern void *pshmem_align(_SIZ_T size, _SIZ_T alignment);

Reversal of SIZE and ALIGN parameters is a bit of a disaster (?)

bosilca commented 8 years ago

It's indiscutable who is diverging from mainstream. The Open SHMEM standard is clear about the order (Section 8.2.1). Moreover, there are precedences for this particular argument ordering, at least with the SHMEM implementation from IBM shmemalign and SGI shmemalign

paboyle commented 8 years ago

I’m not passing judgement on who is to blame; just pointing out the inconsistency which sucks.

(cost me a few hours… plus build configuration code needs to detect cray vs non-cray implementation, which is ugly as sin!)

There is presumably a standard process and (at least!) one implementation isn’t following it?

Peter

On 14 Feb 2016, at 16:51, bosilca notifications@github.com wrote:

It's indiscutable who is diverging from mainstream. The Open SHMEM standard http://openshmem.org/site/sites/default/site_files/openshmem-specification-1.2.pdf is clear about the order (Section 8.2.1). Moreover, there are precedences for this particular argument ordering, at least with the SHMEM implementation from IBM shmemalign http://www-01.ibm.com/support/knowledgecenter/SSFK3V_1.3.0/com.ibm.cluster.protocols.v1r3.pp300.doc/bl511_shmemalign.htm and SGI shmemalign http://techpubs.sgi.com/library/tpl/cgi-bin/getdoc.cgi?coll=0650&db=man&raw=1&fname=/usr/share/catman/p_man/cat3/shmalloc.z — Reply to this email directly or view it on GitHub https://github.com/open-mpi/ompi/issues/1360#issuecomment-183922490.

The University of Edinburgh is a charitable body, registered in Scotland, with registration number SC005336.