Open paboyle opened 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
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.
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 (?)