OSHMEM: refactor to fully comply to the OpenSHMEM spec and fix some proto
fixed by Roman, reviewed by Miked cmr=v1.8.2:reviewer=ompi-rm1.8 This commit was SVN r31808.
Этот коммит содержится в:
родитель
61fba04a0c
Коммит
747ad77a97
@ -22,18 +22,18 @@ mppinclude_HEADERS = mpp/shmem.h \
|
||||
# Always install these in $(pkgincludedir)
|
||||
pkginclude_HEADERS =
|
||||
|
||||
include_HEADERS += shmem.fh
|
||||
include_HEADERS += shmem.fh \
|
||||
shmemx.h \
|
||||
shmem-compat.h
|
||||
|
||||
# These files are always installed in $(includedir), but shouldn't be
|
||||
# shipped since they are generated by configure from their .in
|
||||
# counterparts (which AM automatically ships).
|
||||
nodist_include_HEADERS = \
|
||||
shmem.h
|
||||
nodist_include_HEADERS = shmem.h
|
||||
|
||||
if OSHMEM_PROFILING
|
||||
nodist_include_HEADERS += pshmem.h
|
||||
else
|
||||
headers += pshmem.h
|
||||
include_HEADERS += pshmem.h \
|
||||
pshmemx.h
|
||||
endif
|
||||
|
||||
nobase_dist_noinst_HEADERS = $(headers)
|
||||
|
@ -40,6 +40,7 @@
|
||||
# endif
|
||||
#endif
|
||||
|
||||
#include <pshmemx.h>
|
||||
|
||||
#if defined(c_plusplus) || defined(__cplusplus)
|
||||
extern "C" {
|
||||
@ -88,7 +89,6 @@ OSHMEM_DECLSPEC void *pshmem_ptr(void *ptr, int pe);
|
||||
/*
|
||||
* Elemental put routines
|
||||
*/
|
||||
OSHMEM_DECLSPEC void pshmem_char_p(char* addr, char value, int pe);
|
||||
OSHMEM_DECLSPEC void pshmem_short_p(short* addr, short value, int pe);
|
||||
OSHMEM_DECLSPEC void pshmem_int_p(int* addr, int value, int pe);
|
||||
OSHMEM_DECLSPEC void pshmem_long_p(long* addr, long value, int pe);
|
||||
@ -96,9 +96,6 @@ OSHMEM_DECLSPEC void pshmem_float_p(float* addr, float value, int pe);
|
||||
OSHMEM_DECLSPEC void pshmem_double_p(double* addr, double value, int pe);
|
||||
OSHMEM_DECLSPEC void pshmem_longlong_p(long long* addr, long long value, int pe);
|
||||
OSHMEM_DECLSPEC void pshmem_longdouble_p(long double* addr, long double value, int pe);
|
||||
OSHMEM_DECLSPEC void pshmem_int16_p(int16_t* addr, int16_t value, int pe);
|
||||
OSHMEM_DECLSPEC void pshmem_int32_p(int32_t* addr, int32_t value, int pe);
|
||||
OSHMEM_DECLSPEC void pshmem_int64_p(int64_t* addr, int64_t value, int pe);
|
||||
|
||||
/*
|
||||
* Block data put routines
|
||||
@ -111,7 +108,6 @@ OSHMEM_DECLSPEC void pshmem_float_put(float *target, const float *source, size_
|
||||
OSHMEM_DECLSPEC void pshmem_double_put(double *target, const double *source, size_t len, int pe);
|
||||
OSHMEM_DECLSPEC void pshmem_longlong_put(long long *target, const long long *source, size_t len, int pe);
|
||||
OSHMEM_DECLSPEC void pshmem_longdouble_put(long double *target, const long double *source, size_t len, int pe);
|
||||
OSHMEM_DECLSPEC void pshmem_put16(void *target, const void *source, size_t len, int pe);
|
||||
OSHMEM_DECLSPEC void pshmem_put32(void *target, const void *source, size_t len, int pe);
|
||||
OSHMEM_DECLSPEC void pshmem_put64(void *target, const void *source, size_t len, int pe);
|
||||
OSHMEM_DECLSPEC void pshmem_put128(void *target, const void *source, size_t len, int pe);
|
||||
@ -127,7 +123,6 @@ OSHMEM_DECLSPEC void pshmem_double_iput(double* target, const double* source, pt
|
||||
OSHMEM_DECLSPEC void pshmem_longlong_iput(long long* target, const long long* source, ptrdiff_t tst, ptrdiff_t sst,size_t len, int pe);
|
||||
OSHMEM_DECLSPEC void pshmem_longdouble_iput(long double* target, const long double* source, ptrdiff_t tst, ptrdiff_t sst,size_t len, int pe);
|
||||
OSHMEM_DECLSPEC void pshmem_long_iput(long* target, const long* source, ptrdiff_t tst, ptrdiff_t sst,size_t len, int pe);
|
||||
OSHMEM_DECLSPEC void pshmem_iput16(void* target, const void* source, ptrdiff_t tst, ptrdiff_t sst,size_t len, int pe);
|
||||
OSHMEM_DECLSPEC void pshmem_iput32(void* target, const void* source, ptrdiff_t tst, ptrdiff_t sst,size_t len, int pe);
|
||||
OSHMEM_DECLSPEC void pshmem_iput64(void* target, const void* source, ptrdiff_t tst, ptrdiff_t sst,size_t len, int pe);
|
||||
OSHMEM_DECLSPEC void pshmem_iput128(void* target, const void* source, ptrdiff_t tst, ptrdiff_t sst,size_t len, int pe);
|
||||
@ -135,7 +130,6 @@ OSHMEM_DECLSPEC void pshmem_iput128(void* target, const void* source, ptrdiff_t
|
||||
/*
|
||||
* Elemental get routines
|
||||
*/
|
||||
OSHMEM_DECLSPEC char pshmem_char_g(char* addr, int pe);
|
||||
OSHMEM_DECLSPEC short pshmem_short_g(short* addr, int pe);
|
||||
OSHMEM_DECLSPEC int pshmem_int_g(int* addr, int pe);
|
||||
OSHMEM_DECLSPEC long pshmem_long_g(long* addr, int pe);
|
||||
@ -143,9 +137,6 @@ OSHMEM_DECLSPEC float pshmem_float_g(float* addr, int pe);
|
||||
OSHMEM_DECLSPEC double pshmem_double_g(double* addr, int pe);
|
||||
OSHMEM_DECLSPEC long long pshmem_longlong_g(long long* addr, int pe);
|
||||
OSHMEM_DECLSPEC long double pshmem_longdouble_g(long double* addr, int pe);
|
||||
OSHMEM_DECLSPEC int16_t pshmem_int16_g(int16_t* addr, int pe);
|
||||
OSHMEM_DECLSPEC int32_t pshmem_int32_g(int32_t* addr, int pe);
|
||||
OSHMEM_DECLSPEC int64_t pshmem_int64_g(int64_t* addr, int pe);
|
||||
|
||||
/*
|
||||
* Block data get routines
|
||||
@ -158,7 +149,6 @@ OSHMEM_DECLSPEC void pshmem_float_get(float *target, const float *source, size_
|
||||
OSHMEM_DECLSPEC void pshmem_double_get(double *target, const double *source, size_t len, int pe);
|
||||
OSHMEM_DECLSPEC void pshmem_longlong_get(long long *target, const long long *source, size_t len, int pe);
|
||||
OSHMEM_DECLSPEC void pshmem_longdouble_get(long double *target, const long double *source, size_t len, int pe);
|
||||
OSHMEM_DECLSPEC void pshmem_get16(void *target, const void *source, size_t len, int pe);
|
||||
OSHMEM_DECLSPEC void pshmem_get32(void *target, const void *source, size_t len, int pe);
|
||||
OSHMEM_DECLSPEC void pshmem_get64(void *target, const void *source, size_t len, int pe);
|
||||
OSHMEM_DECLSPEC void pshmem_get128(void *target, const void *source, size_t len, int pe);
|
||||
@ -174,7 +164,6 @@ OSHMEM_DECLSPEC void pshmem_double_iget(double* target, const double* source, pt
|
||||
OSHMEM_DECLSPEC void pshmem_longlong_iget(long long* target, const long long* source, ptrdiff_t tst, ptrdiff_t sst,size_t len, int pe);
|
||||
OSHMEM_DECLSPEC void pshmem_longdouble_iget(long double* target, const long double* source, ptrdiff_t tst, ptrdiff_t sst,size_t len, int pe);
|
||||
OSHMEM_DECLSPEC void pshmem_long_iget(long* target, const long* source, ptrdiff_t tst, ptrdiff_t sst,size_t len, int pe);
|
||||
OSHMEM_DECLSPEC void pshmem_iget16(void* target, const void* source, ptrdiff_t tst, ptrdiff_t sst,size_t len, int pe);
|
||||
OSHMEM_DECLSPEC void pshmem_iget32(void* target, const void* source, ptrdiff_t tst, ptrdiff_t sst,size_t len, int pe);
|
||||
OSHMEM_DECLSPEC void pshmem_iget64(void* target, const void* source, ptrdiff_t tst, ptrdiff_t sst,size_t len, int pe);
|
||||
OSHMEM_DECLSPEC void pshmem_iget128(void* target, const void* source, ptrdiff_t tst, ptrdiff_t sst,size_t len, int pe);
|
||||
@ -189,43 +178,31 @@ OSHMEM_DECLSPEC float pshmem_float_swap(float *target, float value, int pe);
|
||||
OSHMEM_DECLSPEC int pshmem_int_swap(int *target, int value, int pe);
|
||||
OSHMEM_DECLSPEC long pshmem_long_swap(long *target, long value, int pe);
|
||||
OSHMEM_DECLSPEC long long pshmem_longlong_swap(long long*target, long long value, int pe);
|
||||
OSHMEM_DECLSPEC int32_t pshmem_int32_swap(int32_t *target, int32_t value, int pe);
|
||||
OSHMEM_DECLSPEC int64_t pshmem_int64_swap(int64_t *target, int64_t value, int pe);
|
||||
|
||||
/* Atomic conditional swap */
|
||||
OSHMEM_DECLSPEC int pshmem_int_cswap(int *target, int cond, int value, int pe);
|
||||
OSHMEM_DECLSPEC long pshmem_long_cswap(long *target, long cond, long value, int pe);
|
||||
OSHMEM_DECLSPEC long long pshmem_longlong_cswap(long long *target, long long cond, long long value, int pe);
|
||||
OSHMEM_DECLSPEC int32_t pshmem_int32_cswap(int32_t *target, int32_t cond, int32_t value, int pe);
|
||||
OSHMEM_DECLSPEC int64_t pshmem_int64_cswap(int64_t *target, int64_t cond, int64_t value, int pe);
|
||||
|
||||
/* Atomic Fetch&Add */
|
||||
OSHMEM_DECLSPEC int pshmem_int_fadd(int *target, int value, int pe);
|
||||
OSHMEM_DECLSPEC long pshmem_long_fadd(long *target, long value, int pe);
|
||||
OSHMEM_DECLSPEC long long pshmem_longlong_fadd(long long *target, long long value, int pe);
|
||||
OSHMEM_DECLSPEC int32_t pshmem_int32_fadd(int32_t *target, int32_t value, int pe);
|
||||
OSHMEM_DECLSPEC int64_t pshmem_int64_fadd(int64_t *target, int64_t value, int pe);
|
||||
|
||||
/* Atomic Fetch&Inc */
|
||||
OSHMEM_DECLSPEC int pshmem_int_finc(int *target, int pe);
|
||||
OSHMEM_DECLSPEC long pshmem_long_finc(long *target, int pe);
|
||||
OSHMEM_DECLSPEC long long pshmem_longlong_finc(long long *target, int pe);
|
||||
OSHMEM_DECLSPEC int32_t pshmem_int32_finc(int32_t *target, int pe);
|
||||
OSHMEM_DECLSPEC int64_t pshmem_int64_finc(int64_t *target, int pe);
|
||||
|
||||
/* Atomic Add*/
|
||||
OSHMEM_DECLSPEC void pshmem_int_add(int *target, int value, int pe);
|
||||
OSHMEM_DECLSPEC void pshmem_long_add(long *target, long value, int pe);
|
||||
OSHMEM_DECLSPEC void pshmem_longlong_add(long long *target, long long value, int pe);
|
||||
OSHMEM_DECLSPEC void pshmem_int32_add(int32_t *target, int32_t value, int pe);
|
||||
OSHMEM_DECLSPEC void pshmem_int64_add(int64_t *target, int64_t value, int pe);
|
||||
|
||||
/* Atomic Inc */
|
||||
OSHMEM_DECLSPEC void pshmem_int_inc(int *target, int pe);
|
||||
OSHMEM_DECLSPEC void pshmem_long_inc(long *target, int pe);
|
||||
OSHMEM_DECLSPEC void pshmem_longlong_inc(long long *target, int pe);
|
||||
OSHMEM_DECLSPEC void pshmem_int32_inc(int32_t *target, int pe);
|
||||
OSHMEM_DECLSPEC void pshmem_int64_inc(int64_t *target, int pe);
|
||||
|
||||
/*
|
||||
* Lock functions
|
||||
@ -242,18 +219,12 @@ OSHMEM_DECLSPEC void pshmem_int_wait(int *addr, int value);
|
||||
OSHMEM_DECLSPEC void pshmem_long_wait(long *addr, long value);
|
||||
OSHMEM_DECLSPEC void pshmem_longlong_wait(long long *addr, long long value);
|
||||
OSHMEM_DECLSPEC void pshmem_wait(long *addr, long value);
|
||||
OSHMEM_DECLSPEC void pshmem_int16_wait(int16_t *addr, int16_t value);
|
||||
OSHMEM_DECLSPEC void pshmem_int32_wait(int32_t *addr, int32_t value);
|
||||
OSHMEM_DECLSPEC void pshmem_int64_wait(int64_t *addr, int64_t value);
|
||||
|
||||
OSHMEM_DECLSPEC void pshmem_short_wait_until(short *addr, int cmp, short value);
|
||||
OSHMEM_DECLSPEC void pshmem_int_wait_until(int *addr, int cmp, int value);
|
||||
OSHMEM_DECLSPEC void pshmem_long_wait_until(long *addr, int cmp, long value);
|
||||
OSHMEM_DECLSPEC void pshmem_longlong_wait_until(long long *addr, int cmp, long long value);
|
||||
OSHMEM_DECLSPEC void pshmem_wait_until(long *addr, int cmp, long value);
|
||||
OSHMEM_DECLSPEC void pshmem_int16_wait_until(int16_t *addr, int cmp, int16_t value);
|
||||
OSHMEM_DECLSPEC void pshmem_int32_wait_until(int32_t *addr, int cmp, int32_t value);
|
||||
OSHMEM_DECLSPEC void pshmem_int64_wait_until(int64_t *addr, int cmp, int64_t value);
|
||||
|
||||
/*
|
||||
* Barrier sync routines
|
||||
@ -281,25 +252,16 @@ OSHMEM_DECLSPEC void pshmem_short_and_to_all(short *target, short *source, int n
|
||||
OSHMEM_DECLSPEC void pshmem_int_and_to_all(int *target, int *source, int nreduce, int PE_start, int logPE_stride, int PE_size, int *pWrk, long *pSync);
|
||||
OSHMEM_DECLSPEC void pshmem_long_and_to_all(long *target, long *source, int nreduce, int PE_start, int logPE_stride, int PE_size, long *pWrk, long *pSync);
|
||||
OSHMEM_DECLSPEC void pshmem_longlong_and_to_all(long long *target, long long *source, int nreduce, int PE_start, int logPE_stride, int PE_size, long long *pWrk, long *pSync);
|
||||
OSHMEM_DECLSPEC void pshmem_int16_and_to_all(int16_t *target, int16_t *source, int nreduce, int PE_start, int logPE_stride, int PE_size, int16_t *pWrk, long *pSync);
|
||||
OSHMEM_DECLSPEC void pshmem_int32_and_to_all(int32_t *target, int32_t *source, int nreduce, int PE_start, int logPE_stride, int PE_size, int32_t *pWrk, long *pSync);
|
||||
OSHMEM_DECLSPEC void pshmem_int64_and_to_all(int64_t *target, int64_t *source, int nreduce, int PE_start, int logPE_stride, int PE_size, int64_t *pWrk, long *pSync);
|
||||
|
||||
OSHMEM_DECLSPEC void pshmem_short_or_to_all(short *target, short *source, int nreduce, int PE_start, int logPE_stride, int PE_size, short *pWrk, long *pSync);
|
||||
OSHMEM_DECLSPEC void pshmem_int_or_to_all(int *target, int *source, int nreduce, int PE_start, int logPE_stride, int PE_size, int *pWrk, long *pSync);
|
||||
OSHMEM_DECLSPEC void pshmem_long_or_to_all(long *target, long *source, int nreduce, int PE_start, int logPE_stride, int PE_size, long *pWrk, long *pSync);
|
||||
OSHMEM_DECLSPEC void pshmem_longlong_or_to_all(long long *target, long long *source, int nreduce, int PE_start, int logPE_stride, int PE_size, long long *pWrk, long *pSync);
|
||||
OSHMEM_DECLSPEC void pshmem_int16_or_to_all(int16_t *target, int16_t *source, int nreduce, int PE_start, int logPE_stride, int PE_size, int16_t *pWrk, long *pSync);
|
||||
OSHMEM_DECLSPEC void pshmem_int32_or_to_all(int32_t *target, int32_t *source, int nreduce, int PE_start, int logPE_stride, int PE_size, int32_t *pWrk, long *pSync);
|
||||
OSHMEM_DECLSPEC void pshmem_int64_or_to_all(int64_t *target, int64_t *source, int nreduce, int PE_start, int logPE_stride, int PE_size, int64_t *pWrk, long *pSync);
|
||||
|
||||
OSHMEM_DECLSPEC void pshmem_short_xor_to_all(short *target, short *source, int nreduce, int PE_start, int logPE_stride, int PE_size, short *pWrk, long *pSync);
|
||||
OSHMEM_DECLSPEC void pshmem_int_xor_to_all(int *target, int *source, int nreduce, int PE_start, int logPE_stride, int PE_size, int *pWrk, long *pSync);
|
||||
OSHMEM_DECLSPEC void pshmem_long_xor_to_all(long *target, long *source, int nreduce, int PE_start, int logPE_stride, int PE_size, long *pWrk, long *pSync);
|
||||
OSHMEM_DECLSPEC void pshmem_longlong_xor_to_all(long long *target, long long *source, int nreduce, int PE_start, int logPE_stride, int PE_size, long long *pWrk, long *pSync);
|
||||
OSHMEM_DECLSPEC void pshmem_int16_xor_to_all(int16_t *target, int16_t *source, int nreduce, int PE_start, int logPE_stride, int PE_size, int16_t *pWrk, long *pSync);
|
||||
OSHMEM_DECLSPEC void pshmem_int32_xor_to_all(int32_t *target, int32_t *source, int nreduce, int PE_start, int logPE_stride, int PE_size, int32_t *pWrk, long *pSync);
|
||||
OSHMEM_DECLSPEC void pshmem_int64_xor_to_all(int64_t *target, int64_t *source, int nreduce, int PE_start, int logPE_stride, int PE_size, int64_t *pWrk, long *pSync);
|
||||
|
||||
OSHMEM_DECLSPEC void pshmem_short_max_to_all(short *target, short *source, int nreduce, int PE_start, int logPE_stride, int PE_size, short *pWrk, long *pSync);
|
||||
OSHMEM_DECLSPEC void pshmem_int_max_to_all(int *target, int *source, int nreduce, int PE_start, int logPE_stride, int PE_size, int *pWrk, long *pSync);
|
||||
@ -308,9 +270,6 @@ OSHMEM_DECLSPEC void pshmem_longlong_max_to_all(long long *target, long long *so
|
||||
OSHMEM_DECLSPEC void pshmem_float_max_to_all(float *target, float *source, int nreduce, int PE_start, int logPE_stride, int PE_size, float *pWrk, long *pSync);
|
||||
OSHMEM_DECLSPEC void pshmem_double_max_to_all(double *target, double *source, int nreduce, int PE_start, int logPE_stride, int PE_size, double *pWrk, long *pSync);
|
||||
OSHMEM_DECLSPEC void pshmem_longdouble_max_to_all(long double *target, long double *source, int nreduce, int PE_start, int logPE_stride, int PE_size, long double *pWrk, long *pSync);
|
||||
OSHMEM_DECLSPEC void pshmem_int16_max_to_all(int16_t *target, int16_t *source, int nreduce, int PE_start, int logPE_stride, int PE_size, int16_t *pWrk, long *pSync);
|
||||
OSHMEM_DECLSPEC void pshmem_int32_max_to_all(int32_t *target, int32_t *source, int nreduce, int PE_start, int logPE_stride, int PE_size, int32_t *pWrk, long *pSync);
|
||||
OSHMEM_DECLSPEC void pshmem_int64_max_to_all(int64_t *target, int64_t *source, int nreduce, int PE_start, int logPE_stride, int PE_size, int64_t *pWrk, long *pSync);
|
||||
|
||||
OSHMEM_DECLSPEC void pshmem_short_min_to_all(short *target, short *source, int nreduce, int PE_start, int logPE_stride, int PE_size, short *pWrk, long *pSync);
|
||||
OSHMEM_DECLSPEC void pshmem_int_min_to_all(int *target, int *source, int nreduce, int PE_start, int logPE_stride, int PE_size, int *pWrk, long *pSync);
|
||||
@ -319,9 +278,6 @@ OSHMEM_DECLSPEC void pshmem_longlong_min_to_all(long long *target, long long *so
|
||||
OSHMEM_DECLSPEC void pshmem_float_min_to_all(float *target, float *source, int nreduce, int PE_start, int logPE_stride, int PE_size, float *pWrk, long *pSync);
|
||||
OSHMEM_DECLSPEC void pshmem_double_min_to_all(double *target, double *source, int nreduce, int PE_start, int logPE_stride, int PE_size, double *pWrk, long *pSync);
|
||||
OSHMEM_DECLSPEC void pshmem_longdouble_min_to_all(long double *target, long double *source, int nreduce, int PE_start, int logPE_stride, int PE_size, long double *pWrk, long *pSync);
|
||||
OSHMEM_DECLSPEC void pshmem_int16_min_to_all(int16_t *target, int16_t *source, int nreduce, int PE_start, int logPE_stride, int PE_size, int16_t *pWrk, long *pSync);
|
||||
OSHMEM_DECLSPEC void pshmem_int32_min_to_all(int32_t *target, int32_t *source, int nreduce, int PE_start, int logPE_stride, int PE_size, int32_t *pWrk, long *pSync);
|
||||
OSHMEM_DECLSPEC void pshmem_int64_min_to_all(int64_t *target, int64_t *source, int nreduce, int PE_start, int logPE_stride, int PE_size, int64_t *pWrk, long *pSync);
|
||||
|
||||
OSHMEM_DECLSPEC void pshmem_short_sum_to_all(short *target, short *source, int nreduce, int PE_start, int logPE_stride, int PE_size, short *pWrk, long *pSync);
|
||||
OSHMEM_DECLSPEC void pshmem_int_sum_to_all(int *target, int *source, int nreduce, int PE_start, int logPE_stride, int PE_size, int *pWrk, long *pSync);
|
||||
@ -332,9 +288,6 @@ OSHMEM_DECLSPEC void pshmem_double_sum_to_all(double *target, double *source, in
|
||||
OSHMEM_DECLSPEC void pshmem_longdouble_sum_to_all(long double *target, long double *source, int nreduce, int PE_start, int logPE_stride, int PE_size, long double *pWrk, long *pSync);
|
||||
OSHMEM_DECLSPEC void pshmem_complexf_sum_to_all(OSHMEM_COMPLEX_TYPE(float) *target, OSHMEM_COMPLEX_TYPE(float) *source, int nreduce, int PE_start, int logPE_stride, int PE_size, OSHMEM_COMPLEX_TYPE(float) *pWrk, long *pSync);
|
||||
OSHMEM_DECLSPEC void pshmem_complexd_sum_to_all(OSHMEM_COMPLEX_TYPE(double) *target, OSHMEM_COMPLEX_TYPE(double) *source, int nreduce, int PE_start, int logPE_stride, int PE_size, OSHMEM_COMPLEX_TYPE(double) *pWrk, long *pSync);
|
||||
OSHMEM_DECLSPEC void pshmem_int16_sum_to_all(int16_t *target, int16_t *source, int nreduce, int PE_start, int logPE_stride, int PE_size, int16_t *pWrk, long *pSync);
|
||||
OSHMEM_DECLSPEC void pshmem_int32_sum_to_all(int32_t *target, int32_t *source, int nreduce, int PE_start, int logPE_stride, int PE_size, int32_t *pWrk, long *pSync);
|
||||
OSHMEM_DECLSPEC void pshmem_int64_sum_to_all(int64_t *target, int64_t *source, int nreduce, int PE_start, int logPE_stride, int PE_size, int64_t *pWrk, long *pSync);
|
||||
|
||||
OSHMEM_DECLSPEC void pshmem_short_prod_to_all(short *target, short *source, int nreduce, int PE_start, int logPE_stride, int PE_size, short *pWrk, long *pSync);
|
||||
OSHMEM_DECLSPEC void pshmem_int_prod_to_all(int *target, int *source, int nreduce, int PE_start, int logPE_stride, int PE_size, int *pWrk, long *pSync);
|
||||
@ -345,9 +298,6 @@ OSHMEM_DECLSPEC void pshmem_double_prod_to_all(double *target, double *source, i
|
||||
OSHMEM_DECLSPEC void pshmem_longdouble_prod_to_all(long double *target, long double *source, int nreduce, int PE_start, int logPE_stride, int PE_size, long double *pWrk, long *pSync);
|
||||
OSHMEM_DECLSPEC void pshmem_complexf_prod_to_all(OSHMEM_COMPLEX_TYPE(float) *target, OSHMEM_COMPLEX_TYPE(float) *source, int nreduce, int PE_start, int logPE_stride, int PE_size, OSHMEM_COMPLEX_TYPE(float) *pWrk, long *pSync);
|
||||
OSHMEM_DECLSPEC void pshmem_complexd_prod_to_all(OSHMEM_COMPLEX_TYPE(double) *target, OSHMEM_COMPLEX_TYPE(double) *source, int nreduce, int PE_start, int logPE_stride, int PE_size, OSHMEM_COMPLEX_TYPE(double) *pWrk, long *pSync);
|
||||
OSHMEM_DECLSPEC void pshmem_int16_prod_to_all(int16_t *target, int16_t *source, int nreduce, int PE_start, int logPE_stride, int PE_size, int16_t *pWrk, long *pSync);
|
||||
OSHMEM_DECLSPEC void pshmem_int32_prod_to_all(int32_t *target, int32_t *source, int nreduce, int PE_start, int logPE_stride, int PE_size, int32_t *pWrk, long *pSync);
|
||||
OSHMEM_DECLSPEC void pshmem_int64_prod_to_all(int64_t *target, int64_t *source, int nreduce, int PE_start, int logPE_stride, int PE_size, int64_t *pWrk, long *pSync);
|
||||
|
||||
/*
|
||||
* Platform specific cache management routines
|
||||
|
128
oshmem/include/pshmemx.h
Обычный файл
128
oshmem/include/pshmemx.h
Обычный файл
@ -0,0 +1,128 @@
|
||||
/*
|
||||
* Copyright (c) 2014 Mellanox Technologies, Inc.
|
||||
* All rights reserved.
|
||||
* Copyright (c) 2014 Intel, Inc. All rights reserved
|
||||
* $COPYRIGHT$
|
||||
*
|
||||
* Additional copyrights may follow
|
||||
*
|
||||
* $HEADER$
|
||||
*/
|
||||
|
||||
#ifndef PSHMEM_SHMEMX_H
|
||||
#define PSHMEM_SHMEMX_H
|
||||
|
||||
#if defined(c_plusplus) || defined(__cplusplus)
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
/*
|
||||
* Elemental put routines
|
||||
*/
|
||||
OSHMEM_DECLSPEC void pshmem_char_p(char* addr, char value, int pe);
|
||||
OSHMEM_DECLSPEC void pshmem_int16_p(int16_t* addr, int16_t value, int pe);
|
||||
OSHMEM_DECLSPEC void pshmem_int32_p(int32_t* addr, int32_t value, int pe);
|
||||
OSHMEM_DECLSPEC void pshmem_int64_p(int64_t* addr, int64_t value, int pe);
|
||||
|
||||
/*
|
||||
* Block data put routines
|
||||
*/
|
||||
OSHMEM_DECLSPEC void pshmem_put16(void *target, const void *source, size_t len, int pe);
|
||||
|
||||
/*
|
||||
* Strided put routines
|
||||
*/
|
||||
OSHMEM_DECLSPEC void pshmem_iput16(void* target, const void* source, ptrdiff_t tst, ptrdiff_t sst,size_t len, int pe);
|
||||
|
||||
/*
|
||||
* Elemental get routines
|
||||
*/
|
||||
OSHMEM_DECLSPEC char pshmem_char_g(char* addr, int pe);
|
||||
OSHMEM_DECLSPEC int16_t pshmem_int16_g(int16_t* addr, int pe);
|
||||
OSHMEM_DECLSPEC int32_t pshmem_int32_g(int32_t* addr, int pe);
|
||||
OSHMEM_DECLSPEC int64_t pshmem_int64_g(int64_t* addr, int pe);
|
||||
|
||||
/*
|
||||
* Block data get routines
|
||||
*/
|
||||
OSHMEM_DECLSPEC void pshmem_get16(void *target, const void *source, size_t len, int pe);
|
||||
|
||||
/*
|
||||
* Strided get routines
|
||||
*/
|
||||
OSHMEM_DECLSPEC void pshmem_iget16(void* target, const void* source, ptrdiff_t tst, ptrdiff_t sst,size_t len, int pe);
|
||||
|
||||
/*
|
||||
* Atomic operations
|
||||
*/
|
||||
/* Atomic swap */
|
||||
OSHMEM_DECLSPEC int32_t pshmem_int32_swap(int32_t *target, int32_t value, int pe);
|
||||
OSHMEM_DECLSPEC int64_t pshmem_int64_swap(int64_t *target, int64_t value, int pe);
|
||||
|
||||
/* Atomic conditional swap */
|
||||
OSHMEM_DECLSPEC int32_t pshmem_int32_cswap(int32_t *target, int32_t cond, int32_t value, int pe);
|
||||
OSHMEM_DECLSPEC int64_t pshmem_int64_cswap(int64_t *target, int64_t cond, int64_t value, int pe);
|
||||
|
||||
/* Atomic Fetch&Add */
|
||||
OSHMEM_DECLSPEC int32_t pshmem_int32_fadd(int32_t *target, int32_t value, int pe);
|
||||
OSHMEM_DECLSPEC int64_t pshmem_int64_fadd(int64_t *target, int64_t value, int pe);
|
||||
|
||||
/* Atomic Fetch&Inc */
|
||||
OSHMEM_DECLSPEC int32_t pshmem_int32_finc(int32_t *target, int pe);
|
||||
OSHMEM_DECLSPEC int64_t pshmem_int64_finc(int64_t *target, int pe);
|
||||
|
||||
/* Atomic Add*/
|
||||
OSHMEM_DECLSPEC void pshmem_int32_add(int32_t *target, int32_t value, int pe);
|
||||
OSHMEM_DECLSPEC void pshmem_int64_add(int64_t *target, int64_t value, int pe);
|
||||
|
||||
/* Atomic Inc */
|
||||
OSHMEM_DECLSPEC void pshmem_int32_inc(int32_t *target, int pe);
|
||||
OSHMEM_DECLSPEC void pshmem_int64_inc(int64_t *target, int pe);
|
||||
|
||||
/*
|
||||
* P2P sync routines
|
||||
*/
|
||||
OSHMEM_DECLSPEC void pshmem_int16_wait(int16_t *addr, int16_t value);
|
||||
OSHMEM_DECLSPEC void pshmem_int32_wait(int32_t *addr, int32_t value);
|
||||
OSHMEM_DECLSPEC void pshmem_int64_wait(int64_t *addr, int64_t value);
|
||||
|
||||
OSHMEM_DECLSPEC void pshmem_int16_wait_until(int16_t *addr, int cmp, int16_t value);
|
||||
OSHMEM_DECLSPEC void pshmem_int32_wait_until(int32_t *addr, int cmp, int32_t value);
|
||||
OSHMEM_DECLSPEC void pshmem_int64_wait_until(int64_t *addr, int cmp, int64_t value);
|
||||
|
||||
/*
|
||||
* Reduction routines
|
||||
*/
|
||||
OSHMEM_DECLSPEC void pshmem_int16_and_to_all(int16_t *target, int16_t *source, int nreduce, int PE_start, int logPE_stride, int PE_size, int16_t *pWrk, long *pSync);
|
||||
OSHMEM_DECLSPEC void pshmem_int32_and_to_all(int32_t *target, int32_t *source, int nreduce, int PE_start, int logPE_stride, int PE_size, int32_t *pWrk, long *pSync);
|
||||
OSHMEM_DECLSPEC void pshmem_int64_and_to_all(int64_t *target, int64_t *source, int nreduce, int PE_start, int logPE_stride, int PE_size, int64_t *pWrk, long *pSync);
|
||||
|
||||
OSHMEM_DECLSPEC void pshmem_int16_or_to_all(int16_t *target, int16_t *source, int nreduce, int PE_start, int logPE_stride, int PE_size, int16_t *pWrk, long *pSync);
|
||||
OSHMEM_DECLSPEC void pshmem_int32_or_to_all(int32_t *target, int32_t *source, int nreduce, int PE_start, int logPE_stride, int PE_size, int32_t *pWrk, long *pSync);
|
||||
OSHMEM_DECLSPEC void pshmem_int64_or_to_all(int64_t *target, int64_t *source, int nreduce, int PE_start, int logPE_stride, int PE_size, int64_t *pWrk, long *pSync);
|
||||
|
||||
OSHMEM_DECLSPEC void pshmem_int16_xor_to_all(int16_t *target, int16_t *source, int nreduce, int PE_start, int logPE_stride, int PE_size, int16_t *pWrk, long *pSync);
|
||||
OSHMEM_DECLSPEC void pshmem_int32_xor_to_all(int32_t *target, int32_t *source, int nreduce, int PE_start, int logPE_stride, int PE_size, int32_t *pWrk, long *pSync);
|
||||
OSHMEM_DECLSPEC void pshmem_int64_xor_to_all(int64_t *target, int64_t *source, int nreduce, int PE_start, int logPE_stride, int PE_size, int64_t *pWrk, long *pSync);
|
||||
|
||||
OSHMEM_DECLSPEC void pshmem_int16_max_to_all(int16_t *target, int16_t *source, int nreduce, int PE_start, int logPE_stride, int PE_size, int16_t *pWrk, long *pSync);
|
||||
OSHMEM_DECLSPEC void pshmem_int32_max_to_all(int32_t *target, int32_t *source, int nreduce, int PE_start, int logPE_stride, int PE_size, int32_t *pWrk, long *pSync);
|
||||
OSHMEM_DECLSPEC void pshmem_int64_max_to_all(int64_t *target, int64_t *source, int nreduce, int PE_start, int logPE_stride, int PE_size, int64_t *pWrk, long *pSync);
|
||||
|
||||
OSHMEM_DECLSPEC void pshmem_int16_min_to_all(int16_t *target, int16_t *source, int nreduce, int PE_start, int logPE_stride, int PE_size, int16_t *pWrk, long *pSync);
|
||||
OSHMEM_DECLSPEC void pshmem_int32_min_to_all(int32_t *target, int32_t *source, int nreduce, int PE_start, int logPE_stride, int PE_size, int32_t *pWrk, long *pSync);
|
||||
OSHMEM_DECLSPEC void pshmem_int64_min_to_all(int64_t *target, int64_t *source, int nreduce, int PE_start, int logPE_stride, int PE_size, int64_t *pWrk, long *pSync);
|
||||
|
||||
OSHMEM_DECLSPEC void pshmem_int16_sum_to_all(int16_t *target, int16_t *source, int nreduce, int PE_start, int logPE_stride, int PE_size, int16_t *pWrk, long *pSync);
|
||||
OSHMEM_DECLSPEC void pshmem_int32_sum_to_all(int32_t *target, int32_t *source, int nreduce, int PE_start, int logPE_stride, int PE_size, int32_t *pWrk, long *pSync);
|
||||
OSHMEM_DECLSPEC void pshmem_int64_sum_to_all(int64_t *target, int64_t *source, int nreduce, int PE_start, int logPE_stride, int PE_size, int64_t *pWrk, long *pSync);
|
||||
|
||||
OSHMEM_DECLSPEC void pshmem_int16_prod_to_all(int16_t *target, int16_t *source, int nreduce, int PE_start, int logPE_stride, int PE_size, int16_t *pWrk, long *pSync);
|
||||
OSHMEM_DECLSPEC void pshmem_int32_prod_to_all(int32_t *target, int32_t *source, int nreduce, int PE_start, int logPE_stride, int PE_size, int32_t *pWrk, long *pSync);
|
||||
OSHMEM_DECLSPEC void pshmem_int64_prod_to_all(int64_t *target, int64_t *source, int nreduce, int PE_start, int logPE_stride, int PE_size, int64_t *pWrk, long *pSync);
|
||||
|
||||
#if defined(c_plusplus) || defined(__cplusplus)
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif /* PSHMEM_SHMEMX_H */
|
39
oshmem/include/shmem-compat.h
Обычный файл
39
oshmem/include/shmem-compat.h
Обычный файл
@ -0,0 +1,39 @@
|
||||
/* oshmem/include/shmem-compat.h. This file contains OpenSHMEM lagacy API */
|
||||
/*
|
||||
* Copyright (c) 2014 Mellanox Technologies, Inc.
|
||||
* All rights reserved.
|
||||
* $COPYRIGHT$
|
||||
*
|
||||
* Additional copyrights may follow
|
||||
*
|
||||
* $HEADER$
|
||||
*/
|
||||
|
||||
#ifndef OSHMEM_SHMEM_COMPAT_H
|
||||
#define OSHMEM_SHMEM_COMPAT_H
|
||||
|
||||
#if defined(c_plusplus) || defined(__cplusplus)
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
/*
|
||||
* Legacy API
|
||||
*/
|
||||
OSHMEM_DECLSPEC int num_pes(void);
|
||||
OSHMEM_DECLSPEC int my_pe(void);
|
||||
|
||||
/* old init/destruct functions - not in the open shmem spec but still supported */
|
||||
OSHMEM_DECLSPEC void shmem_init(void);
|
||||
OSHMEM_DECLSPEC void shmem_finalize(void) OSHMEM_DESTRUCTOR;
|
||||
OSHMEM_DECLSPEC int shmem_n_pes(void);
|
||||
OSHMEM_DECLSPEC int shmem_my_pe(void);
|
||||
|
||||
OSHMEM_DECLSPEC void shmem_put(void *target, const void *source, size_t len, int pe);
|
||||
OSHMEM_DECLSPEC void shmem_get(void *target, const void *source, size_t len, int pe);
|
||||
OSHMEM_DECLSPEC void globalexit(int status);
|
||||
|
||||
#if defined(c_plusplus) || defined(__cplusplus)
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif /* OSHMEM_SHMEM_COMPAT_H */
|
@ -48,6 +48,8 @@
|
||||
# endif
|
||||
#endif
|
||||
|
||||
#include <shmem-compat.h>
|
||||
#include <shmemx.h>
|
||||
|
||||
#if defined(c_plusplus) || defined(__cplusplus)
|
||||
extern "C" {
|
||||
@ -136,7 +138,6 @@ OSHMEM_DECLSPEC void *shmem_ptr(void *ptr, int pe);
|
||||
/*
|
||||
* Elemental put routines
|
||||
*/
|
||||
OSHMEM_DECLSPEC void shmem_char_p(char* addr, char value, int pe);
|
||||
OSHMEM_DECLSPEC void shmem_short_p(short* addr, short value, int pe);
|
||||
OSHMEM_DECLSPEC void shmem_int_p(int* addr, int value, int pe);
|
||||
OSHMEM_DECLSPEC void shmem_long_p(long* addr, long value, int pe);
|
||||
@ -144,9 +145,6 @@ OSHMEM_DECLSPEC void shmem_float_p(float* addr, float value, int pe);
|
||||
OSHMEM_DECLSPEC void shmem_double_p(double* addr, double value, int pe);
|
||||
OSHMEM_DECLSPEC void shmem_longlong_p(long long* addr, long long value, int pe);
|
||||
OSHMEM_DECLSPEC void shmem_longdouble_p(long double* addr, long double value, int pe);
|
||||
OSHMEM_DECLSPEC void shmem_int16_p(int16_t* addr, int16_t value, int pe);
|
||||
OSHMEM_DECLSPEC void shmem_int32_p(int32_t* addr, int32_t value, int pe);
|
||||
OSHMEM_DECLSPEC void shmem_int64_p(int64_t* addr, int64_t value, int pe);
|
||||
|
||||
/*
|
||||
* Block data put routines
|
||||
@ -159,7 +157,6 @@ OSHMEM_DECLSPEC void shmem_float_put(float *target, const float *source, size_t
|
||||
OSHMEM_DECLSPEC void shmem_double_put(double *target, const double *source, size_t len, int pe);
|
||||
OSHMEM_DECLSPEC void shmem_longlong_put(long long *target, const long long *source, size_t len, int pe);
|
||||
OSHMEM_DECLSPEC void shmem_longdouble_put(long double *target, const long double *source, size_t len, int pe);
|
||||
OSHMEM_DECLSPEC void shmem_put16(void *target, const void *source, size_t len, int pe);
|
||||
OSHMEM_DECLSPEC void shmem_put32(void *target, const void *source, size_t len, int pe);
|
||||
OSHMEM_DECLSPEC void shmem_put64(void *target, const void *source, size_t len, int pe);
|
||||
OSHMEM_DECLSPEC void shmem_put128(void *target, const void *source, size_t len, int pe);
|
||||
@ -175,7 +172,6 @@ OSHMEM_DECLSPEC void shmem_double_iput(double* target, const double* source, ptr
|
||||
OSHMEM_DECLSPEC void shmem_longlong_iput(long long* target, const long long* source, ptrdiff_t tst, ptrdiff_t sst,size_t len, int pe);
|
||||
OSHMEM_DECLSPEC void shmem_longdouble_iput(long double* target, const long double* source, ptrdiff_t tst, ptrdiff_t sst,size_t len, int pe);
|
||||
OSHMEM_DECLSPEC void shmem_long_iput(long* target, const long* source, ptrdiff_t tst, ptrdiff_t sst,size_t len, int pe);
|
||||
OSHMEM_DECLSPEC void shmem_iput16(void* target, const void* source, ptrdiff_t tst, ptrdiff_t sst,size_t len, int pe);
|
||||
OSHMEM_DECLSPEC void shmem_iput32(void* target, const void* source, ptrdiff_t tst, ptrdiff_t sst,size_t len, int pe);
|
||||
OSHMEM_DECLSPEC void shmem_iput64(void* target, const void* source, ptrdiff_t tst, ptrdiff_t sst,size_t len, int pe);
|
||||
OSHMEM_DECLSPEC void shmem_iput128(void* target, const void* source, ptrdiff_t tst, ptrdiff_t sst,size_t len, int pe);
|
||||
@ -191,9 +187,6 @@ OSHMEM_DECLSPEC float shmem_float_g(float* addr, int pe);
|
||||
OSHMEM_DECLSPEC double shmem_double_g(double* addr, int pe);
|
||||
OSHMEM_DECLSPEC long long shmem_longlong_g(long long* addr, int pe);
|
||||
OSHMEM_DECLSPEC long double shmem_longdouble_g(long double* addr, int pe);
|
||||
OSHMEM_DECLSPEC int16_t shmem_int16_g(int16_t* addr, int pe);
|
||||
OSHMEM_DECLSPEC int32_t shmem_int32_g(int32_t* addr, int pe);
|
||||
OSHMEM_DECLSPEC int64_t shmem_int64_g(int64_t* addr, int pe);
|
||||
|
||||
/*
|
||||
* Block data get routines
|
||||
@ -206,7 +199,6 @@ OSHMEM_DECLSPEC void shmem_float_get(float *target, const float *source, size_t
|
||||
OSHMEM_DECLSPEC void shmem_double_get(double *target, const double *source, size_t len, int pe);
|
||||
OSHMEM_DECLSPEC void shmem_longlong_get(long long *target, const long long *source, size_t len, int pe);
|
||||
OSHMEM_DECLSPEC void shmem_longdouble_get(long double *target, const long double *source, size_t len, int pe);
|
||||
OSHMEM_DECLSPEC void shmem_get16(void *target, const void *source, size_t len, int pe);
|
||||
OSHMEM_DECLSPEC void shmem_get32(void *target, const void *source, size_t len, int pe);
|
||||
OSHMEM_DECLSPEC void shmem_get64(void *target, const void *source, size_t len, int pe);
|
||||
OSHMEM_DECLSPEC void shmem_get128(void *target, const void *source, size_t len, int pe);
|
||||
@ -222,7 +214,6 @@ OSHMEM_DECLSPEC void shmem_double_iget(double* target, const double* source, ptr
|
||||
OSHMEM_DECLSPEC void shmem_longlong_iget(long long* target, const long long* source, ptrdiff_t tst, ptrdiff_t sst,size_t len, int pe);
|
||||
OSHMEM_DECLSPEC void shmem_longdouble_iget(long double* target, const long double* source, ptrdiff_t tst, ptrdiff_t sst,size_t len, int pe);
|
||||
OSHMEM_DECLSPEC void shmem_long_iget(long* target, const long* source, ptrdiff_t tst, ptrdiff_t sst,size_t len, int pe);
|
||||
OSHMEM_DECLSPEC void shmem_iget16(void* target, const void* source, ptrdiff_t tst, ptrdiff_t sst,size_t len, int pe);
|
||||
OSHMEM_DECLSPEC void shmem_iget32(void* target, const void* source, ptrdiff_t tst, ptrdiff_t sst,size_t len, int pe);
|
||||
OSHMEM_DECLSPEC void shmem_iget64(void* target, const void* source, ptrdiff_t tst, ptrdiff_t sst,size_t len, int pe);
|
||||
OSHMEM_DECLSPEC void shmem_iget128(void* target, const void* source, ptrdiff_t tst, ptrdiff_t sst,size_t len, int pe);
|
||||
@ -237,43 +228,31 @@ OSHMEM_DECLSPEC float shmem_float_swap(float *target, float value, int pe);
|
||||
OSHMEM_DECLSPEC int shmem_int_swap(int *target, int value, int pe);
|
||||
OSHMEM_DECLSPEC long shmem_long_swap(long *target, long value, int pe);
|
||||
OSHMEM_DECLSPEC long long shmem_longlong_swap(long long*target, long long value, int pe);
|
||||
OSHMEM_DECLSPEC int32_t shmem_int32_swap(int32_t *target, int32_t value, int pe);
|
||||
OSHMEM_DECLSPEC int64_t shmem_int64_swap(int64_t *target, int64_t value, int pe);
|
||||
|
||||
/* Atomic conditional swap */
|
||||
OSHMEM_DECLSPEC int shmem_int_cswap(int *target, int cond, int value, int pe);
|
||||
OSHMEM_DECLSPEC long shmem_long_cswap(long *target, long cond, long value, int pe);
|
||||
OSHMEM_DECLSPEC long long shmem_longlong_cswap(long long *target, long long cond, long long value, int pe);
|
||||
OSHMEM_DECLSPEC int32_t shmem_int32_cswap(int32_t *target, int32_t cond, int32_t value, int pe);
|
||||
OSHMEM_DECLSPEC int64_t shmem_int64_cswap(int64_t *target, int64_t cond, int64_t value, int pe);
|
||||
|
||||
/* Atomic Fetch&Add */
|
||||
OSHMEM_DECLSPEC int shmem_int_fadd(int *target, int value, int pe);
|
||||
OSHMEM_DECLSPEC long shmem_long_fadd(long *target, long value, int pe);
|
||||
OSHMEM_DECLSPEC long long shmem_longlong_fadd(long long *target, long long value, int pe);
|
||||
OSHMEM_DECLSPEC int32_t shmem_int32_fadd(int32_t *target, int32_t value, int pe);
|
||||
OSHMEM_DECLSPEC int64_t shmem_int64_fadd(int64_t *target, int64_t value, int pe);
|
||||
|
||||
/* Atomic Fetch&Inc */
|
||||
OSHMEM_DECLSPEC int shmem_int_finc(int *target, int pe);
|
||||
OSHMEM_DECLSPEC long shmem_long_finc(long *target, int pe);
|
||||
OSHMEM_DECLSPEC long long shmem_longlong_finc(long long *target, int pe);
|
||||
OSHMEM_DECLSPEC int32_t shmem_int32_finc(int32_t *target, int pe);
|
||||
OSHMEM_DECLSPEC int64_t shmem_int64_finc(int64_t *target, int pe);
|
||||
|
||||
/* Atomic Add*/
|
||||
OSHMEM_DECLSPEC void shmem_int_add(int *target, int value, int pe);
|
||||
OSHMEM_DECLSPEC void shmem_long_add(long *target, long value, int pe);
|
||||
OSHMEM_DECLSPEC void shmem_longlong_add(long long *target, long long value, int pe);
|
||||
OSHMEM_DECLSPEC void shmem_int32_add(int32_t *target, int32_t value, int pe);
|
||||
OSHMEM_DECLSPEC void shmem_int64_add(int64_t *target, int64_t value, int pe);
|
||||
|
||||
/* Atomic Inc */
|
||||
OSHMEM_DECLSPEC void shmem_int_inc(int *target, int pe);
|
||||
OSHMEM_DECLSPEC void shmem_long_inc(long *target, int pe);
|
||||
OSHMEM_DECLSPEC void shmem_longlong_inc(long long *target, int pe);
|
||||
OSHMEM_DECLSPEC void shmem_int32_inc(int32_t *target, int pe);
|
||||
OSHMEM_DECLSPEC void shmem_int64_inc(int64_t *target, int pe);
|
||||
|
||||
/*
|
||||
* Lock functions
|
||||
@ -290,18 +269,12 @@ OSHMEM_DECLSPEC void shmem_int_wait(int *addr, int value);
|
||||
OSHMEM_DECLSPEC void shmem_long_wait(long *addr, long value);
|
||||
OSHMEM_DECLSPEC void shmem_longlong_wait(long long *addr, long long value);
|
||||
OSHMEM_DECLSPEC void shmem_wait(long *addr, long value);
|
||||
OSHMEM_DECLSPEC void shmem_int16_wait(int16_t *addr, int16_t value);
|
||||
OSHMEM_DECLSPEC void shmem_int32_wait(int32_t *addr, int32_t value);
|
||||
OSHMEM_DECLSPEC void shmem_int64_wait(int64_t *addr, int64_t value);
|
||||
|
||||
OSHMEM_DECLSPEC void shmem_short_wait_until(short *addr, int cmp, short value);
|
||||
OSHMEM_DECLSPEC void shmem_int_wait_until(int *addr, int cmp, int value);
|
||||
OSHMEM_DECLSPEC void shmem_long_wait_until(long *addr, int cmp, long value);
|
||||
OSHMEM_DECLSPEC void shmem_longlong_wait_until(long long *addr, int cmp, long long value);
|
||||
OSHMEM_DECLSPEC void shmem_wait_until(long *addr, int cmp, long value);
|
||||
OSHMEM_DECLSPEC void shmem_int16_wait_until(int16_t *addr, int cmp, int16_t value);
|
||||
OSHMEM_DECLSPEC void shmem_int32_wait_until(int32_t *addr, int cmp, int32_t value);
|
||||
OSHMEM_DECLSPEC void shmem_int64_wait_until(int64_t *addr, int cmp, int64_t value);
|
||||
|
||||
/*
|
||||
* Barrier sync routines
|
||||
@ -329,25 +302,16 @@ OSHMEM_DECLSPEC void shmem_short_and_to_all(short *target, short *source, int nr
|
||||
OSHMEM_DECLSPEC void shmem_int_and_to_all(int *target, int *source, int nreduce, int PE_start, int logPE_stride, int PE_size, int *pWrk, long *pSync);
|
||||
OSHMEM_DECLSPEC void shmem_long_and_to_all(long *target, long *source, int nreduce, int PE_start, int logPE_stride, int PE_size, long *pWrk, long *pSync);
|
||||
OSHMEM_DECLSPEC void shmem_longlong_and_to_all(long long *target, long long *source, int nreduce, int PE_start, int logPE_stride, int PE_size, long long *pWrk, long *pSync);
|
||||
OSHMEM_DECLSPEC void shmem_int16_and_to_all(int16_t *target, int16_t *source, int nreduce, int PE_start, int logPE_stride, int PE_size, int16_t *pWrk, long *pSync);
|
||||
OSHMEM_DECLSPEC void shmem_int32_and_to_all(int32_t *target, int32_t *source, int nreduce, int PE_start, int logPE_stride, int PE_size, int32_t *pWrk, long *pSync);
|
||||
OSHMEM_DECLSPEC void shmem_int64_and_to_all(int64_t *target, int64_t *source, int nreduce, int PE_start, int logPE_stride, int PE_size, int64_t *pWrk, long *pSync);
|
||||
|
||||
OSHMEM_DECLSPEC void shmem_short_or_to_all(short *target, short *source, int nreduce, int PE_start, int logPE_stride, int PE_size, short *pWrk, long *pSync);
|
||||
OSHMEM_DECLSPEC void shmem_int_or_to_all(int *target, int *source, int nreduce, int PE_start, int logPE_stride, int PE_size, int *pWrk, long *pSync);
|
||||
OSHMEM_DECLSPEC void shmem_long_or_to_all(long *target, long *source, int nreduce, int PE_start, int logPE_stride, int PE_size, long *pWrk, long *pSync);
|
||||
OSHMEM_DECLSPEC void shmem_longlong_or_to_all(long long *target, long long *source, int nreduce, int PE_start, int logPE_stride, int PE_size, long long *pWrk, long *pSync);
|
||||
OSHMEM_DECLSPEC void shmem_int16_or_to_all(int16_t *target, int16_t *source, int nreduce, int PE_start, int logPE_stride, int PE_size, int16_t *pWrk, long *pSync);
|
||||
OSHMEM_DECLSPEC void shmem_int32_or_to_all(int32_t *target, int32_t *source, int nreduce, int PE_start, int logPE_stride, int PE_size, int32_t *pWrk, long *pSync);
|
||||
OSHMEM_DECLSPEC void shmem_int64_or_to_all(int64_t *target, int64_t *source, int nreduce, int PE_start, int logPE_stride, int PE_size, int64_t *pWrk, long *pSync);
|
||||
|
||||
OSHMEM_DECLSPEC void shmem_short_xor_to_all(short *target, short *source, int nreduce, int PE_start, int logPE_stride, int PE_size, short *pWrk, long *pSync);
|
||||
OSHMEM_DECLSPEC void shmem_int_xor_to_all(int *target, int *source, int nreduce, int PE_start, int logPE_stride, int PE_size, int *pWrk, long *pSync);
|
||||
OSHMEM_DECLSPEC void shmem_long_xor_to_all(long *target, long *source, int nreduce, int PE_start, int logPE_stride, int PE_size, long *pWrk, long *pSync);
|
||||
OSHMEM_DECLSPEC void shmem_longlong_xor_to_all(long long *target, long long *source, int nreduce, int PE_start, int logPE_stride, int PE_size, long long *pWrk, long *pSync);
|
||||
OSHMEM_DECLSPEC void shmem_int16_xor_to_all(int16_t *target, int16_t *source, int nreduce, int PE_start, int logPE_stride, int PE_size, int16_t *pWrk, long *pSync);
|
||||
OSHMEM_DECLSPEC void shmem_int32_xor_to_all(int32_t *target, int32_t *source, int nreduce, int PE_start, int logPE_stride, int PE_size, int32_t *pWrk, long *pSync);
|
||||
OSHMEM_DECLSPEC void shmem_int64_xor_to_all(int64_t *target, int64_t *source, int nreduce, int PE_start, int logPE_stride, int PE_size, int64_t *pWrk, long *pSync);
|
||||
|
||||
OSHMEM_DECLSPEC void shmem_short_max_to_all(short *target, short *source, int nreduce, int PE_start, int logPE_stride, int PE_size, short *pWrk, long *pSync);
|
||||
OSHMEM_DECLSPEC void shmem_int_max_to_all(int *target, int *source, int nreduce, int PE_start, int logPE_stride, int PE_size, int *pWrk, long *pSync);
|
||||
@ -356,9 +320,6 @@ OSHMEM_DECLSPEC void shmem_longlong_max_to_all(long long *target, long long *sou
|
||||
OSHMEM_DECLSPEC void shmem_float_max_to_all(float *target, float *source, int nreduce, int PE_start, int logPE_stride, int PE_size, float *pWrk, long *pSync);
|
||||
OSHMEM_DECLSPEC void shmem_double_max_to_all(double *target, double *source, int nreduce, int PE_start, int logPE_stride, int PE_size, double *pWrk, long *pSync);
|
||||
OSHMEM_DECLSPEC void shmem_longdouble_max_to_all(long double *target, long double *source, int nreduce, int PE_start, int logPE_stride, int PE_size, long double *pWrk, long *pSync);
|
||||
OSHMEM_DECLSPEC void shmem_int16_max_to_all(int16_t *target, int16_t *source, int nreduce, int PE_start, int logPE_stride, int PE_size, int16_t *pWrk, long *pSync);
|
||||
OSHMEM_DECLSPEC void shmem_int32_max_to_all(int32_t *target, int32_t *source, int nreduce, int PE_start, int logPE_stride, int PE_size, int32_t *pWrk, long *pSync);
|
||||
OSHMEM_DECLSPEC void shmem_int64_max_to_all(int64_t *target, int64_t *source, int nreduce, int PE_start, int logPE_stride, int PE_size, int64_t *pWrk, long *pSync);
|
||||
|
||||
OSHMEM_DECLSPEC void shmem_short_min_to_all(short *target, short *source, int nreduce, int PE_start, int logPE_stride, int PE_size, short *pWrk, long *pSync);
|
||||
OSHMEM_DECLSPEC void shmem_int_min_to_all(int *target, int *source, int nreduce, int PE_start, int logPE_stride, int PE_size, int *pWrk, long *pSync);
|
||||
@ -367,9 +328,6 @@ OSHMEM_DECLSPEC void shmem_longlong_min_to_all(long long *target, long long *sou
|
||||
OSHMEM_DECLSPEC void shmem_float_min_to_all(float *target, float *source, int nreduce, int PE_start, int logPE_stride, int PE_size, float *pWrk, long *pSync);
|
||||
OSHMEM_DECLSPEC void shmem_double_min_to_all(double *target, double *source, int nreduce, int PE_start, int logPE_stride, int PE_size, double *pWrk, long *pSync);
|
||||
OSHMEM_DECLSPEC void shmem_longdouble_min_to_all(long double *target, long double *source, int nreduce, int PE_start, int logPE_stride, int PE_size, long double *pWrk, long *pSync);
|
||||
OSHMEM_DECLSPEC void shmem_int16_min_to_all(int16_t *target, int16_t *source, int nreduce, int PE_start, int logPE_stride, int PE_size, int16_t *pWrk, long *pSync);
|
||||
OSHMEM_DECLSPEC void shmem_int32_min_to_all(int32_t *target, int32_t *source, int nreduce, int PE_start, int logPE_stride, int PE_size, int32_t *pWrk, long *pSync);
|
||||
OSHMEM_DECLSPEC void shmem_int64_min_to_all(int64_t *target, int64_t *source, int nreduce, int PE_start, int logPE_stride, int PE_size, int64_t *pWrk, long *pSync);
|
||||
|
||||
OSHMEM_DECLSPEC void shmem_short_sum_to_all(short *target, short *source, int nreduce, int PE_start, int logPE_stride, int PE_size, short *pWrk, long *pSync);
|
||||
OSHMEM_DECLSPEC void shmem_int_sum_to_all(int *target, int *source, int nreduce, int PE_start, int logPE_stride, int PE_size, int *pWrk, long *pSync);
|
||||
@ -380,9 +338,6 @@ OSHMEM_DECLSPEC void shmem_double_sum_to_all(double *target, double *source, int
|
||||
OSHMEM_DECLSPEC void shmem_longdouble_sum_to_all(long double *target, long double *source, int nreduce, int PE_start, int logPE_stride, int PE_size, long double *pWrk, long *pSync);
|
||||
OSHMEM_DECLSPEC void shmem_complexf_sum_to_all(OSHMEM_COMPLEX_TYPE(float) *target, OSHMEM_COMPLEX_TYPE(float) *source, int nreduce, int PE_start, int logPE_stride, int PE_size, OSHMEM_COMPLEX_TYPE(float) *pWrk, long *pSync);
|
||||
OSHMEM_DECLSPEC void shmem_complexd_sum_to_all(OSHMEM_COMPLEX_TYPE(double) *target, OSHMEM_COMPLEX_TYPE(double) *source, int nreduce, int PE_start, int logPE_stride, int PE_size, OSHMEM_COMPLEX_TYPE(double) *pWrk, long *pSync);
|
||||
OSHMEM_DECLSPEC void shmem_int16_sum_to_all(int16_t *target, int16_t *source, int nreduce, int PE_start, int logPE_stride, int PE_size, int16_t *pWrk, long *pSync);
|
||||
OSHMEM_DECLSPEC void shmem_int32_sum_to_all(int32_t *target, int32_t *source, int nreduce, int PE_start, int logPE_stride, int PE_size, int32_t *pWrk, long *pSync);
|
||||
OSHMEM_DECLSPEC void shmem_int64_sum_to_all(int64_t *target, int64_t *source, int nreduce, int PE_start, int logPE_stride, int PE_size, int64_t *pWrk, long *pSync);
|
||||
|
||||
OSHMEM_DECLSPEC void shmem_short_prod_to_all(short *target, short *source, int nreduce, int PE_start, int logPE_stride, int PE_size, short *pWrk, long *pSync);
|
||||
OSHMEM_DECLSPEC void shmem_int_prod_to_all(int *target, int *source, int nreduce, int PE_start, int logPE_stride, int PE_size, int *pWrk, long *pSync);
|
||||
@ -393,9 +348,6 @@ OSHMEM_DECLSPEC void shmem_double_prod_to_all(double *target, double *source, in
|
||||
OSHMEM_DECLSPEC void shmem_longdouble_prod_to_all(long double *target, long double *source, int nreduce, int PE_start, int logPE_stride, int PE_size, long double *pWrk, long *pSync);
|
||||
OSHMEM_DECLSPEC void shmem_complexf_prod_to_all(OSHMEM_COMPLEX_TYPE(float) *target, OSHMEM_COMPLEX_TYPE(float) *source, int nreduce, int PE_start, int logPE_stride, int PE_size, OSHMEM_COMPLEX_TYPE(float) *pWrk, long *pSync);
|
||||
OSHMEM_DECLSPEC void shmem_complexd_prod_to_all(OSHMEM_COMPLEX_TYPE(double) *target, OSHMEM_COMPLEX_TYPE(double) *source, int nreduce, int PE_start, int logPE_stride, int PE_size, OSHMEM_COMPLEX_TYPE(double) *pWrk, long *pSync);
|
||||
OSHMEM_DECLSPEC void shmem_int16_prod_to_all(int16_t *target, int16_t *source, int nreduce, int PE_start, int logPE_stride, int PE_size, int16_t *pWrk, long *pSync);
|
||||
OSHMEM_DECLSPEC void shmem_int32_prod_to_all(int32_t *target, int32_t *source, int nreduce, int PE_start, int logPE_stride, int PE_size, int32_t *pWrk, long *pSync);
|
||||
OSHMEM_DECLSPEC void shmem_int64_prod_to_all(int64_t *target, int64_t *source, int nreduce, int PE_start, int logPE_stride, int PE_size, int64_t *pWrk, long *pSync);
|
||||
|
||||
/*
|
||||
* Platform specific cache management routines
|
||||
@ -407,23 +359,6 @@ OSHMEM_DECLSPEC void shmem_set_cache_line_inv(void* target);
|
||||
OSHMEM_DECLSPEC void shmem_clear_cache_inv(void);
|
||||
OSHMEM_DECLSPEC void shmem_clear_cache_line_inv(void* target);
|
||||
|
||||
/*
|
||||
* Legacy API
|
||||
*/
|
||||
OSHMEM_DECLSPEC int num_pes(void);
|
||||
OSHMEM_DECLSPEC int my_pe(void);
|
||||
|
||||
/* old init/destruct functions - not in the open shmem spec but still supported */
|
||||
OSHMEM_DECLSPEC void shmem_init(void);
|
||||
OSHMEM_DECLSPEC void shmem_finalize(void) OSHMEM_DESTRUCTOR;
|
||||
OSHMEM_DECLSPEC int shmem_n_pes(void);
|
||||
OSHMEM_DECLSPEC int shmem_my_pe(void);
|
||||
|
||||
OSHMEM_DECLSPEC void shmem_put(void *target, const void *source, size_t len, int pe);
|
||||
OSHMEM_DECLSPEC void shmem_get(void *target, const void *source, size_t len, int pe);
|
||||
OSHMEM_DECLSPEC void globalexit(int status);
|
||||
|
||||
|
||||
#if defined(c_plusplus) || defined(__cplusplus)
|
||||
}
|
||||
#endif
|
||||
|
132
oshmem/include/shmemx.h
Обычный файл
132
oshmem/include/shmemx.h
Обычный файл
@ -0,0 +1,132 @@
|
||||
/* oshmem/include/shmemx.h. This file contains vendor extension functions */
|
||||
/*
|
||||
* Copyright (c) 2014 Mellanox Technologies, Inc.
|
||||
* All rights reserved.
|
||||
* $COPYRIGHT$
|
||||
*
|
||||
* Additional copyrights may follow
|
||||
*
|
||||
* $HEADER$
|
||||
*/
|
||||
|
||||
#ifndef OSHMEM_SHMEMX_H
|
||||
#define OSHMEM_SHMEMX_H
|
||||
|
||||
#if defined(c_plusplus) || defined(__cplusplus)
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
/*
|
||||
* Elemental put routines
|
||||
*/
|
||||
OSHMEM_DECLSPEC void shmem_int16_p(int16_t* addr, int16_t value, int pe);
|
||||
OSHMEM_DECLSPEC void shmem_int32_p(int32_t* addr, int32_t value, int pe);
|
||||
OSHMEM_DECLSPEC void shmem_int64_p(int64_t* addr, int64_t value, int pe);
|
||||
|
||||
/*
|
||||
* Elemental put routines
|
||||
*/
|
||||
OSHMEM_DECLSPEC void shmem_char_p(char* addr, char value, int pe);
|
||||
|
||||
/*
|
||||
* Block data put routines
|
||||
*/
|
||||
OSHMEM_DECLSPEC void shmem_put16(void *target, const void *source, size_t len, int pe);
|
||||
|
||||
/*
|
||||
* Strided put routines
|
||||
*/
|
||||
OSHMEM_DECLSPEC void shmem_iput16(void* target, const void* source, ptrdiff_t tst, ptrdiff_t sst,size_t len, int pe);
|
||||
|
||||
/*
|
||||
* Elemental get routines
|
||||
*/
|
||||
OSHMEM_DECLSPEC int16_t shmem_int16_g(int16_t* addr, int pe);
|
||||
OSHMEM_DECLSPEC int32_t shmem_int32_g(int32_t* addr, int pe);
|
||||
OSHMEM_DECLSPEC int64_t shmem_int64_g(int64_t* addr, int pe);
|
||||
|
||||
/*
|
||||
* Elemental get routines
|
||||
*/
|
||||
OSHMEM_DECLSPEC char shmem_char_g(char* addr, int pe);
|
||||
|
||||
/*
|
||||
* Block data get routines
|
||||
*/
|
||||
OSHMEM_DECLSPEC void shmem_get16(void *target, const void *source, size_t len, int pe);
|
||||
|
||||
/*
|
||||
* Strided get routines
|
||||
*/
|
||||
OSHMEM_DECLSPEC void shmem_iget16(void* target, const void* source, ptrdiff_t tst, ptrdiff_t sst,size_t len, int pe);
|
||||
|
||||
/*
|
||||
* Atomic operations
|
||||
*/
|
||||
/* Atomic swap */
|
||||
OSHMEM_DECLSPEC int32_t shmem_int32_swap(int32_t *target, int32_t value, int pe);
|
||||
OSHMEM_DECLSPEC int64_t shmem_int64_swap(int64_t *target, int64_t value, int pe);
|
||||
|
||||
/* Atomic conditional swap */
|
||||
OSHMEM_DECLSPEC int32_t shmem_int32_cswap(int32_t *target, int32_t cond, int32_t value, int pe);
|
||||
OSHMEM_DECLSPEC int64_t shmem_int64_cswap(int64_t *target, int64_t cond, int64_t value, int pe);
|
||||
|
||||
/* Atomic Fetch&Add */
|
||||
OSHMEM_DECLSPEC int32_t shmem_int32_fadd(int32_t *target, int32_t value, int pe);
|
||||
OSHMEM_DECLSPEC int64_t shmem_int64_fadd(int64_t *target, int64_t value, int pe);
|
||||
|
||||
/* Atomic Add*/
|
||||
OSHMEM_DECLSPEC void shmem_int32_add(int32_t *target, int32_t value, int pe);
|
||||
OSHMEM_DECLSPEC void shmem_int64_add(int64_t *target, int64_t value, int pe);
|
||||
|
||||
/* Atomic Inc */
|
||||
OSHMEM_DECLSPEC void shmem_int32_inc(int32_t *target, int pe);
|
||||
OSHMEM_DECLSPEC void shmem_int64_inc(int64_t *target, int pe);
|
||||
|
||||
/*
|
||||
* P2P sync routines
|
||||
*/
|
||||
OSHMEM_DECLSPEC void shmem_int16_wait(int16_t *addr, int16_t value);
|
||||
OSHMEM_DECLSPEC void shmem_int32_wait(int32_t *addr, int32_t value);
|
||||
OSHMEM_DECLSPEC void shmem_int64_wait(int64_t *addr, int64_t value);
|
||||
|
||||
OSHMEM_DECLSPEC void shmem_int16_wait_until(int16_t *addr, int cmp, int16_t value);
|
||||
OSHMEM_DECLSPEC void shmem_int32_wait_until(int32_t *addr, int cmp, int32_t value);
|
||||
OSHMEM_DECLSPEC void shmem_int64_wait_until(int64_t *addr, int cmp, int64_t value);
|
||||
|
||||
/*
|
||||
* Reduction routines
|
||||
*/
|
||||
OSHMEM_DECLSPEC void shmem_int16_and_to_all(int16_t *target, int16_t *source, int nreduce, int PE_start, int logPE_stride, int PE_size, int16_t *pWrk, long *pSync);
|
||||
OSHMEM_DECLSPEC void shmem_int32_and_to_all(int32_t *target, int32_t *source, int nreduce, int PE_start, int logPE_stride, int PE_size, int32_t *pWrk, long *pSync);
|
||||
OSHMEM_DECLSPEC void shmem_int64_and_to_all(int64_t *target, int64_t *source, int nreduce, int PE_start, int logPE_stride, int PE_size, int64_t *pWrk, long *pSync);
|
||||
|
||||
OSHMEM_DECLSPEC void shmem_int16_or_to_all(int16_t *target, int16_t *source, int nreduce, int PE_start, int logPE_stride, int PE_size, int16_t *pWrk, long *pSync);
|
||||
OSHMEM_DECLSPEC void shmem_int32_or_to_all(int32_t *target, int32_t *source, int nreduce, int PE_start, int logPE_stride, int PE_size, int32_t *pWrk, long *pSync);
|
||||
OSHMEM_DECLSPEC void shmem_int64_or_to_all(int64_t *target, int64_t *source, int nreduce, int PE_start, int logPE_stride, int PE_size, int64_t *pWrk, long *pSync);
|
||||
|
||||
OSHMEM_DECLSPEC void shmem_int16_xor_to_all(int16_t *target, int16_t *source, int nreduce, int PE_start, int logPE_stride, int PE_size, int16_t *pWrk, long *pSync);
|
||||
OSHMEM_DECLSPEC void shmem_int32_xor_to_all(int32_t *target, int32_t *source, int nreduce, int PE_start, int logPE_stride, int PE_size, int32_t *pWrk, long *pSync);
|
||||
OSHMEM_DECLSPEC void shmem_int64_xor_to_all(int64_t *target, int64_t *source, int nreduce, int PE_start, int logPE_stride, int PE_size, int64_t *pWrk, long *pSync);
|
||||
|
||||
OSHMEM_DECLSPEC void shmem_int16_max_to_all(int16_t *target, int16_t *source, int nreduce, int PE_start, int logPE_stride, int PE_size, int16_t *pWrk, long *pSync);
|
||||
OSHMEM_DECLSPEC void shmem_int32_max_to_all(int32_t *target, int32_t *source, int nreduce, int PE_start, int logPE_stride, int PE_size, int32_t *pWrk, long *pSync);
|
||||
OSHMEM_DECLSPEC void shmem_int64_max_to_all(int64_t *target, int64_t *source, int nreduce, int PE_start, int logPE_stride, int PE_size, int64_t *pWrk, long *pSync);
|
||||
|
||||
OSHMEM_DECLSPEC void shmem_int16_min_to_all(int16_t *target, int16_t *source, int nreduce, int PE_start, int logPE_stride, int PE_size, int16_t *pWrk, long *pSync);
|
||||
OSHMEM_DECLSPEC void shmem_int32_min_to_all(int32_t *target, int32_t *source, int nreduce, int PE_start, int logPE_stride, int PE_size, int32_t *pWrk, long *pSync);
|
||||
OSHMEM_DECLSPEC void shmem_int64_min_to_all(int64_t *target, int64_t *source, int nreduce, int PE_start, int logPE_stride, int PE_size, int64_t *pWrk, long *pSync);
|
||||
|
||||
OSHMEM_DECLSPEC void shmem_int16_sum_to_all(int16_t *target, int16_t *source, int nreduce, int PE_start, int logPE_stride, int PE_size, int16_t *pWrk, long *pSync);
|
||||
OSHMEM_DECLSPEC void shmem_int32_sum_to_all(int32_t *target, int32_t *source, int nreduce, int PE_start, int logPE_stride, int PE_size, int32_t *pWrk, long *pSync);
|
||||
OSHMEM_DECLSPEC void shmem_int64_sum_to_all(int64_t *target, int64_t *source, int nreduce, int PE_start, int logPE_stride, int PE_size, int64_t *pWrk, long *pSync);
|
||||
|
||||
OSHMEM_DECLSPEC void shmem_int16_prod_to_all(int16_t *target, int16_t *source, int nreduce, int PE_start, int logPE_stride, int PE_size, int16_t *pWrk, long *pSync);
|
||||
OSHMEM_DECLSPEC void shmem_int32_prod_to_all(int32_t *target, int32_t *source, int nreduce, int PE_start, int logPE_stride, int PE_size, int32_t *pWrk, long *pSync);
|
||||
OSHMEM_DECLSPEC void shmem_int64_prod_to_all(int64_t *target, int64_t *source, int nreduce, int PE_start, int logPE_stride, int PE_size, int64_t *pWrk, long *pSync);
|
||||
|
||||
#if defined(c_plusplus) || defined(__cplusplus)
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif /* OSHMEM_SHMEMX_H */
|
Загрузка…
x
Ссылка в новой задаче
Block a user