update openmpi linux
This commit is contained in:
@@ -13,11 +13,15 @@ extern "C" {
|
||||
|
||||
/* Enabled Extension: affinity */
|
||||
#define OMPI_HAVE_MPI_EXT_AFFINITY 1
|
||||
#include "openmpi/ompi/mpiext/affinity/c/mpiext_affinity_c.h"
|
||||
#include "openmpi/mpiext/mpiext_affinity_c.h"
|
||||
|
||||
/* Enabled Extension: cuda */
|
||||
#define OMPI_HAVE_MPI_EXT_CUDA 1
|
||||
#include "openmpi/ompi/mpiext/cuda/c/mpiext_cuda_c.h"
|
||||
#include "openmpi/mpiext/mpiext_cuda_c.h"
|
||||
|
||||
/* Enabled Extension: pcollreq */
|
||||
#define OMPI_HAVE_MPI_EXT_PCOLLREQ 1
|
||||
#include "openmpi/mpiext/mpiext_pcollreq_c.h"
|
||||
|
||||
|
||||
#if defined(c_plusplus) || defined(__cplusplus)
|
||||
|
||||
@@ -10,17 +10,18 @@
|
||||
* University of Stuttgart. All rights reserved.
|
||||
* Copyright (c) 2004-2005 The Regents of the University of California.
|
||||
* All rights reserved.
|
||||
* Copyright (c) 2007-2016 Cisco Systems, Inc. All rights reserved.
|
||||
* Copyright (c) 2007-2019 Cisco Systems, Inc. All rights reserved
|
||||
* Copyright (c) 2008-2009 Sun Microsystems, Inc. All rights reserved.
|
||||
* Copyright (c) 2009-2012 Oak Rigde National Laboratory. All rights reserved.
|
||||
* Copyright (c) 2011 Sandia National Laboratories. All rights reserved.
|
||||
* Copyright (c) 2012-2015 Los Alamos National Security, LLC. All rights
|
||||
* Copyright (c) 2012-2018 Los Alamos National Security, LLC. All rights
|
||||
* reserved.
|
||||
* Copyright (c) 2011-2013 INRIA. All rights reserved.
|
||||
* Copyright (c) 2015 University of Houston. All rights reserved.
|
||||
* Copyright (c) 2015-2017 Research Organization for Information Science
|
||||
* Copyright (c) 2015-2018 Research Organization for Information Science
|
||||
* and Technology (RIST). All rights reserved.
|
||||
* Copyright (c) 2017 IBM Corporation. All rights reserved.
|
||||
* Copyright (c) 2017-2019 IBM Corporation. All rights reserved.
|
||||
* Copyright (c) 2018 FUJITSU LIMITED. All rights reserved.
|
||||
* $COPYRIGHT$
|
||||
*
|
||||
* Additional copyrights may follow
|
||||
@@ -48,7 +49,7 @@
|
||||
#define OPAL_BUILD_PLATFORM_COMPILER_FAMILYID 1
|
||||
|
||||
/* The compiler version which OMPI was built with */
|
||||
#define OPAL_BUILD_PLATFORM_COMPILER_VERSION 524801
|
||||
#define OPAL_BUILD_PLATFORM_COMPILER_VERSION 590081
|
||||
|
||||
/* Define to 1 if you have the ANSI C header files. */
|
||||
#define OPAL_STDC_HEADERS 1
|
||||
@@ -59,6 +60,9 @@
|
||||
/* Whether your compiler has __attribute__ deprecated with the optional argument */
|
||||
#define OPAL_HAVE_ATTRIBUTE_DEPRECATED_ARGUMENT 1
|
||||
|
||||
/* Whether you compiler has __attribute__ error or not */
|
||||
#define OPAL_HAVE_ATTRIBUTE_ERROR 1
|
||||
|
||||
/* Define to 1 if you have the <sys/time.h> header file. */
|
||||
#define OPAL_HAVE_SYS_TIME_H 1
|
||||
|
||||
@@ -134,6 +138,9 @@
|
||||
/* Whether we have FORTRAN REAL*8 or not */
|
||||
#define OMPI_HAVE_FORTRAN_REAL8 0
|
||||
|
||||
/* Whether in include MPI-1 compatibility */
|
||||
#define OMPI_ENABLE_MPI1_COMPAT 0
|
||||
|
||||
/* Whether we have float _Complex or not */
|
||||
#define HAVE_FLOAT__COMPLEX 1
|
||||
|
||||
@@ -182,9 +189,9 @@
|
||||
#define OMPI_HAVE_CXX_EXCEPTION_SUPPORT 0
|
||||
|
||||
/* Major, minor, and release version of Open MPI */
|
||||
#define OMPI_MAJOR_VERSION 3
|
||||
#define OMPI_MINOR_VERSION 1
|
||||
#define OMPI_RELEASE_VERSION 2
|
||||
#define OMPI_MAJOR_VERSION 4
|
||||
#define OMPI_MINOR_VERSION 0
|
||||
#define OMPI_RELEASE_VERSION 1
|
||||
|
||||
/* A type that allows us to have sentinel type values that are still
|
||||
valid */
|
||||
@@ -274,6 +281,52 @@
|
||||
# define __mpi_interface_deprecated__(msg) __attribute__((__deprecated__))
|
||||
# endif
|
||||
# endif
|
||||
# endif
|
||||
|
||||
/* For MPI removed APIs, there is no generally portable way to cause
|
||||
* the C compiler to error with a nice message, on the _usage_ of
|
||||
* one of these symbols. We've gone with tiered appraoch:
|
||||
*
|
||||
* If the user configured with --enable-mpi1-compatibility,
|
||||
* just emit a compiletime warning (via the deprecation function
|
||||
* attribute) that they're using an MPI1 removed function.
|
||||
*
|
||||
* Otherwise, we'd like to issue a fatal error directing the user
|
||||
* that they've used an MPI1 removed function. If the user's
|
||||
* compiler supports C11 _Static_assert feature, we #define
|
||||
* the MPI routines to instead be a call to _Static_assert
|
||||
* with an appropreate message suggesting the new MPI3 equivalent.
|
||||
*
|
||||
* Otherwise, if the user's compiler supports the error function
|
||||
* attribute, define the MPI routines with that error attribute.
|
||||
* This is supported by most modern GNU compilers.
|
||||
*
|
||||
* Finally if the compiler doesn't support any of those, just
|
||||
* Don't declare those MPI routines at all in mpi.h
|
||||
*
|
||||
* Don't do MACRO magic for building Profiling library as it
|
||||
* interferes with the above.
|
||||
*/
|
||||
# if defined(OMPI_OMIT_MPI1_COMPAT_DECLS)
|
||||
/* The user set OMPI_OMIT_MPI1_COMPAT_DECLS, do what he commands */
|
||||
# elif (OMPI_ENABLE_MPI1_COMPAT || OMPI_BUILDING)
|
||||
# define OMPI_OMIT_MPI1_COMPAT_DECLS 0
|
||||
# define OMPI_REMOVED_USE_STATIC_ASSERT 0
|
||||
# define __mpi_interface_removed__(func, newfunc) __mpi_interface_deprecated__(#func " was removed in MPI-3.0. Use " #newfunc " instead. continuing...")
|
||||
# elif (__STDC_VERSION__ >= 201112L)
|
||||
# define OMPI_OMIT_MPI1_COMPAT_DECLS 1
|
||||
# define OMPI_REMOVED_USE_STATIC_ASSERT 1
|
||||
// This macro definition may show up in compiler output. So we both
|
||||
// outdent it back to column 0 and give it a user-friendly name to
|
||||
// help users grok what we are trying to tell them here.
|
||||
#define THIS_SYMBOL_WAS_REMOVED_IN_MPI30(func, newfunc) _Static_assert(0, #func " was removed in MPI-3.0. Use " #newfunc " instead.")
|
||||
# elif OPAL_HAVE_ATTRIBUTE_ERROR
|
||||
# define OMPI_OMIT_MPI1_COMPAT_DECLS 0
|
||||
# define OMPI_REMOVED_USE_STATIC_ASSERT 0
|
||||
# define __mpi_interface_removed__(func, newfunc) __attribute__((__error__(#func " was removed in MPI-3.0. Use " #newfunc " instead.")))
|
||||
# else
|
||||
# define OMPI_OMIT_MPI1_COMPAT_DECLS 1
|
||||
# define OMPI_REMOVED_USE_STATIC_ASSERT 0
|
||||
# endif
|
||||
# endif
|
||||
#endif
|
||||
@@ -287,6 +340,22 @@
|
||||
# define __mpi_interface_deprecated__(msg)
|
||||
#endif
|
||||
|
||||
#if !defined(__mpi_interface_removed__)
|
||||
# define __mpi_interface_removed__(A,B)
|
||||
#endif
|
||||
|
||||
#if !defined(THIS_SYMBOL_WAS_REMOVED_IN_MPI30)
|
||||
# define THIS_SYMBOL_WAS_REMOVED_IN_MPI30(func, newfunc)
|
||||
#endif
|
||||
|
||||
#if !defined(OMPI_REMOVED_USE_STATIC_ASSERT)
|
||||
# define OMPI_REMOVED_USE_STATIC_ASSERT 0
|
||||
#endif
|
||||
|
||||
#if !defined(OMPI_OMIT_MPI1_COMPAT_DECLS)
|
||||
# define OMPI_OMIT_MPI1_COMPAT_DECLS !OMPI_ENABLE_MPI1_COMPAT
|
||||
#endif
|
||||
|
||||
/*
|
||||
* To accomodate programs written for MPI implementations that use a
|
||||
* straight ROMIO import
|
||||
@@ -308,7 +377,11 @@
|
||||
* when building OMPI).
|
||||
*/
|
||||
#if !OMPI_BUILDING
|
||||
#if defined(c_plusplus) || defined(__cplusplus)
|
||||
#define OMPI_PREDEFINED_GLOBAL(type, global) (static_cast<type> (static_cast<void *> (&(global))))
|
||||
#else
|
||||
#define OMPI_PREDEFINED_GLOBAL(type, global) ((type) ((void *) &(global)))
|
||||
#endif
|
||||
#else
|
||||
#define OMPI_PREDEFINED_GLOBAL(type, global) ((type) &(global))
|
||||
#endif
|
||||
@@ -360,37 +433,18 @@ typedef struct ompi_status_public_t ompi_status_public_t;
|
||||
|
||||
/*
|
||||
* User typedefs
|
||||
*
|
||||
* Even though MPI_Copy_function and MPI_Delete_function are
|
||||
* deprecated, we do not use the attributes marking them as such,
|
||||
* because otherwise the compiler will warn for all the functions that
|
||||
* are declared using them (e.g., MPI_Keyval_create).
|
||||
*/
|
||||
typedef int (MPI_Copy_function)(MPI_Comm, int, void *,
|
||||
void *, void *, int *);
|
||||
typedef int (MPI_Delete_function)(MPI_Comm, int, void *, void *);
|
||||
typedef int (MPI_Datarep_extent_function)(MPI_Datatype, MPI_Aint *, void *);
|
||||
typedef int (MPI_Datarep_conversion_function)(void *, MPI_Datatype,
|
||||
int, void *, MPI_Offset, void *);
|
||||
typedef void (MPI_Comm_errhandler_function)(MPI_Comm *, int *, ...);
|
||||
typedef MPI_Comm_errhandler_function MPI_Comm_errhandler_fn
|
||||
__mpi_interface_deprecated__("MPI_Comm_errhandler_fn was deprecated in MPI-2.2; use MPI_Comm_errhandler_function instead");
|
||||
|
||||
/* This is a little hackish, but errhandler.h needs space for a
|
||||
MPI_File_errhandler_fn. While it could just be removed, this
|
||||
allows us to maintain a stable ABI within OMPI, at least for
|
||||
apps that don't use MPI I/O. */
|
||||
typedef void (ompi_file_errhandler_fn)(MPI_File *, int *, ...);
|
||||
typedef ompi_file_errhandler_fn MPI_File_errhandler_fn
|
||||
__mpi_interface_deprecated__("MPI_File_errhandler_fn was deprecated in MPI-2.2; use MPI_File_errhandler_function instead");
|
||||
typedef ompi_file_errhandler_fn MPI_File_errhandler_function;
|
||||
typedef void (MPI_Win_errhandler_function)(MPI_Win *, int *, ...);
|
||||
typedef MPI_Win_errhandler_function MPI_Win_errhandler_fn
|
||||
__mpi_interface_deprecated__("MPI_Win_errhandler_fn was deprecated in MPI-2.2; use MPI_Win_errhandler_function instead");
|
||||
/* MPI_Handler_function is deprecated, but we don't mark it as
|
||||
such because otherwise the MPI_Errhandler_create() declaration
|
||||
would cause a warning to be issued */
|
||||
typedef void (MPI_Handler_function)(MPI_Comm *, int *, ...);
|
||||
typedef void (MPI_User_function)(void *, void *, int *, MPI_Datatype *);
|
||||
typedef int (MPI_Comm_copy_attr_function)(MPI_Comm, int, void *,
|
||||
void *, void *, int *);
|
||||
@@ -406,6 +460,19 @@ typedef int (MPI_Grequest_query_function)(void *, MPI_Status *);
|
||||
typedef int (MPI_Grequest_free_function)(void *);
|
||||
typedef int (MPI_Grequest_cancel_function)(void *, int);
|
||||
|
||||
/*
|
||||
* Deprecated typedefs. Usage is discouraged, as these may be deleted
|
||||
* in future versions of the MPI Standard.
|
||||
*/
|
||||
typedef MPI_Comm_errhandler_function MPI_Comm_errhandler_fn
|
||||
__mpi_interface_deprecated__("MPI_Comm_errhandler_fn was deprecated in MPI-2.2; use MPI_Comm_errhandler_function instead");
|
||||
typedef ompi_file_errhandler_fn MPI_File_errhandler_fn
|
||||
__mpi_interface_deprecated__("MPI_File_errhandler_fn was deprecated in MPI-2.2; use MPI_File_errhandler_function instead");
|
||||
typedef ompi_file_errhandler_fn MPI_File_errhandler_function;
|
||||
typedef MPI_Win_errhandler_function MPI_Win_errhandler_fn
|
||||
__mpi_interface_deprecated__("MPI_Win_errhandler_fn was deprecated in MPI-2.2; use MPI_Win_errhandler_function instead");
|
||||
|
||||
|
||||
/*
|
||||
* Miscellaneous constants
|
||||
*/
|
||||
@@ -754,8 +821,13 @@ enum {
|
||||
*/
|
||||
#define MPI_INFO_ENV OMPI_PREDEFINED_GLOBAL(MPI_Info, ompi_mpi_info_env)
|
||||
|
||||
#if defined(c_plusplus) || defined(__cplusplus)
|
||||
#define MPI_STATUS_IGNORE (static_cast<MPI_Status *> (0))
|
||||
#define MPI_STATUSES_IGNORE (static_cast<MPI_Status *> (0))
|
||||
#else
|
||||
#define MPI_STATUS_IGNORE ((MPI_Status *) 0)
|
||||
#define MPI_STATUSES_IGNORE ((MPI_Status *) 0)
|
||||
#endif
|
||||
|
||||
/*
|
||||
* Special MPI_T handles
|
||||
@@ -782,9 +854,6 @@ enum {
|
||||
protection for this case. */
|
||||
|
||||
#if !defined(OMPI_COMPILING_FORTRAN_WRAPPERS)
|
||||
#define MPI_NULL_DELETE_FN OMPI_C_MPI_NULL_DELETE_FN
|
||||
#define MPI_NULL_COPY_FN OMPI_C_MPI_NULL_COPY_FN
|
||||
#define MPI_DUP_FN OMPI_C_MPI_DUP_FN
|
||||
|
||||
#define MPI_TYPE_NULL_DELETE_FN OMPI_C_MPI_TYPE_NULL_DELETE_FN
|
||||
#define MPI_TYPE_NULL_COPY_FN OMPI_C_MPI_TYPE_NULL_COPY_FN
|
||||
@@ -839,22 +908,6 @@ OMPI_DECLSPEC int OMPI_C_MPI_COMM_DUP_FN( MPI_Comm comm, int comm_keyval,
|
||||
void* attribute_val_in,
|
||||
void* attribute_val_out,
|
||||
int* flag );
|
||||
OMPI_DECLSPEC int OMPI_C_MPI_NULL_DELETE_FN( MPI_Comm comm, int comm_keyval,
|
||||
void* attribute_val_out,
|
||||
void* extra_state )
|
||||
__mpi_interface_deprecated__("MPI_NULL_DELETE_FN is deprecated in MPI-2.0");
|
||||
OMPI_DECLSPEC int OMPI_C_MPI_NULL_COPY_FN( MPI_Comm comm, int comm_keyval,
|
||||
void* extra_state,
|
||||
void* attribute_val_in,
|
||||
void* attribute_val_out,
|
||||
int* flag )
|
||||
__mpi_interface_deprecated__("MPI_NULL_COPY_FN is deprecated in MPI-2.0");
|
||||
OMPI_DECLSPEC int OMPI_C_MPI_DUP_FN( MPI_Comm comm, int comm_keyval,
|
||||
void* extra_state,
|
||||
void* attribute_val_in,
|
||||
void* attribute_val_out,
|
||||
int* flag )
|
||||
__mpi_interface_deprecated__("MPI_DUP_FN is deprecated in MPI-2.0");
|
||||
OMPI_DECLSPEC int OMPI_C_MPI_WIN_NULL_DELETE_FN( MPI_Win window,
|
||||
int win_keyval,
|
||||
void* attribute_val_out,
|
||||
@@ -909,8 +962,6 @@ OMPI_DECLSPEC extern struct ompi_predefined_op_t ompi_mpi_op_no_op;
|
||||
|
||||
OMPI_DECLSPEC extern struct ompi_predefined_datatype_t ompi_mpi_datatype_null;
|
||||
|
||||
OMPI_DECLSPEC extern struct ompi_predefined_datatype_t ompi_mpi_lb __mpi_interface_deprecated__("MPI_LB is deprecated in MPI-2.0");
|
||||
OMPI_DECLSPEC extern struct ompi_predefined_datatype_t ompi_mpi_ub __mpi_interface_deprecated__("MPI_UB is deprecated in MPI-2.0");
|
||||
OMPI_DECLSPEC extern struct ompi_predefined_datatype_t ompi_mpi_char;
|
||||
OMPI_DECLSPEC extern struct ompi_predefined_datatype_t ompi_mpi_signed_char;
|
||||
OMPI_DECLSPEC extern struct ompi_predefined_datatype_t ompi_mpi_unsigned_char;
|
||||
@@ -1011,6 +1062,32 @@ OMPI_DECLSPEC extern struct ompi_predefined_info_t ompi_mpi_info_env;
|
||||
OMPI_DECLSPEC extern MPI_Fint *MPI_F_STATUS_IGNORE;
|
||||
OMPI_DECLSPEC extern MPI_Fint *MPI_F_STATUSES_IGNORE;
|
||||
|
||||
/*
|
||||
* Removed datatypes. These datatypes are only available if Open MPI
|
||||
* was configured with --enable-mpi1-compatibility.
|
||||
*
|
||||
* These datatypes were formally removed from the MPI specification
|
||||
* and should no longer be used in MPI applications.
|
||||
*/
|
||||
#if (OMPI_ENABLE_MPI1_COMPAT || OMPI_BUILDING)
|
||||
# define MPI_UB OMPI_PREDEFINED_GLOBAL(MPI_Datatype, ompi_mpi_ub)
|
||||
# define MPI_LB OMPI_PREDEFINED_GLOBAL(MPI_Datatype, ompi_mpi_lb)
|
||||
|
||||
OMPI_DECLSPEC extern struct ompi_predefined_datatype_t ompi_mpi_lb;
|
||||
OMPI_DECLSPEC extern struct ompi_predefined_datatype_t ompi_mpi_ub;
|
||||
|
||||
#else
|
||||
/* If not building or configured --enable-mpi1-compatibility, then
|
||||
* we don't want these datatypes, instead we define MPI_UB and
|
||||
* MPI_LB to our Static Assert message if the compiler supports
|
||||
* that staticly assert with a nice message.
|
||||
*/
|
||||
# if (OMPI_REMOVED_USE_STATIC_ASSERT)
|
||||
# define MPI_UB THIS_SYMBOL_WAS_REMOVED_IN_MPI30(MPI_UB, MPI_Type_create_resized);
|
||||
# define MPI_LB THIS_SYMBOL_WAS_REMOVED_IN_MPI30(MPI_LB, MPI_Type_create_resized);
|
||||
# endif /* OMPI_REMOVED_USE_STATIC_ASSERT */
|
||||
#endif /* Removed datatypes */
|
||||
|
||||
|
||||
/*
|
||||
* MPI predefined handles
|
||||
@@ -1059,8 +1136,7 @@ OMPI_DECLSPEC extern MPI_Fint *MPI_F_STATUSES_IGNORE;
|
||||
#define MPI_LONG_INT OMPI_PREDEFINED_GLOBAL(MPI_Datatype, ompi_mpi_long_int)
|
||||
#define MPI_SHORT_INT OMPI_PREDEFINED_GLOBAL(MPI_Datatype, ompi_mpi_short_int)
|
||||
#define MPI_2INT OMPI_PREDEFINED_GLOBAL(MPI_Datatype, ompi_mpi_2int)
|
||||
#define MPI_UB OMPI_PREDEFINED_GLOBAL(MPI_Datatype, ompi_mpi_ub)
|
||||
#define MPI_LB OMPI_PREDEFINED_GLOBAL(MPI_Datatype, ompi_mpi_lb)
|
||||
|
||||
#define MPI_WCHAR OMPI_PREDEFINED_GLOBAL(MPI_Datatype, ompi_mpi_wchar)
|
||||
#if OPAL_HAVE_LONG_LONG
|
||||
#define MPI_LONG_LONG_INT OMPI_PREDEFINED_GLOBAL(MPI_Datatype, ompi_mpi_long_long_int)
|
||||
@@ -1183,8 +1259,6 @@ OMPI_DECLSPEC int MPI_Accumulate(const void *origin_addr, int origin_count, MPI
|
||||
OMPI_DECLSPEC int MPI_Add_error_class(int *errorclass);
|
||||
OMPI_DECLSPEC int MPI_Add_error_code(int errorclass, int *errorcode);
|
||||
OMPI_DECLSPEC int MPI_Add_error_string(int errorcode, const char *string);
|
||||
OMPI_DECLSPEC int MPI_Address(void *location, MPI_Aint *address)
|
||||
__mpi_interface_deprecated__("MPI_Address is superseded by MPI_Get_address in MPI-2.0");
|
||||
OMPI_DECLSPEC int MPI_Allgather(const void *sendbuf, int sendcount, MPI_Datatype sendtype,
|
||||
void *recvbuf, int recvcount,
|
||||
MPI_Datatype recvtype, MPI_Comm comm);
|
||||
@@ -1221,12 +1295,6 @@ OMPI_DECLSPEC int MPI_Alltoallw(const void *sendbuf, const int sendcounts[], co
|
||||
OMPI_DECLSPEC int MPI_Ialltoallw(const void *sendbuf, const int sendcounts[], const int sdispls[], const MPI_Datatype sendtypes[],
|
||||
void *recvbuf, const int recvcounts[], const int rdispls[], const MPI_Datatype recvtypes[],
|
||||
MPI_Comm comm, MPI_Request *request);
|
||||
OMPI_DECLSPEC int MPI_Attr_delete(MPI_Comm comm, int keyval)
|
||||
__mpi_interface_deprecated__("MPI_Attr_delete is superseded by MPI_Comm_delete_attr in MPI-2.0");
|
||||
OMPI_DECLSPEC int MPI_Attr_get(MPI_Comm comm, int keyval, void *attribute_val, int *flag)
|
||||
__mpi_interface_deprecated__("MPI_Attr_get is superseded by MPI_Comm_get_attr in MPI-2.0");
|
||||
OMPI_DECLSPEC int MPI_Attr_put(MPI_Comm comm, int keyval, void *attribute_val)
|
||||
__mpi_interface_deprecated__("MPI_Attr_put is superseded by MPI_Comm_set_attr in MPI-2.0");
|
||||
OMPI_DECLSPEC int MPI_Barrier(MPI_Comm comm);
|
||||
OMPI_DECLSPEC int MPI_Ibarrier(MPI_Comm comm, MPI_Request *request);
|
||||
OMPI_DECLSPEC int MPI_Bcast(void *buffer, int count, MPI_Datatype datatype,
|
||||
@@ -1328,15 +1396,8 @@ OMPI_DECLSPEC int MPI_Compare_and_swap(const void *origin_addr, const void *com
|
||||
MPI_Aint target_disp, MPI_Win win);
|
||||
OMPI_DECLSPEC int MPI_Dims_create(int nnodes, int ndims, int dims[]);
|
||||
OMPI_DECLSPEC MPI_Fint MPI_Errhandler_c2f(MPI_Errhandler errhandler);
|
||||
OMPI_DECLSPEC int MPI_Errhandler_create(MPI_Handler_function *function,
|
||||
MPI_Errhandler *errhandler)
|
||||
__mpi_interface_deprecated__("MPI_Errhandler_create is superseded by MPI_Comm_create_errhandler in MPI-2.0");
|
||||
OMPI_DECLSPEC MPI_Errhandler MPI_Errhandler_f2c(MPI_Fint errhandler);
|
||||
OMPI_DECLSPEC int MPI_Errhandler_free(MPI_Errhandler *errhandler);
|
||||
OMPI_DECLSPEC int MPI_Errhandler_get(MPI_Comm comm, MPI_Errhandler *errhandler)
|
||||
__mpi_interface_deprecated__("MPI_Errhandler_get is superseded by MPI_Comm_get_errhandler in MPI-2.0");
|
||||
OMPI_DECLSPEC int MPI_Errhandler_set(MPI_Comm comm, MPI_Errhandler errhandler)
|
||||
__mpi_interface_deprecated__("MPI_Errhandler_set is superseded by MPI_Comm_set_errhandler in MPI-2.0");
|
||||
OMPI_DECLSPEC int MPI_Error_class(int errorcode, int *errorclass);
|
||||
OMPI_DECLSPEC int MPI_Error_string(int errorcode, char *string, int *resultlen);
|
||||
OMPI_DECLSPEC int MPI_Exscan(const void *sendbuf, void *recvbuf, int count,
|
||||
@@ -1548,12 +1609,6 @@ OMPI_DECLSPEC int MPI_Isend(const void *buf, int count, MPI_Datatype datatype,
|
||||
OMPI_DECLSPEC int MPI_Issend(const void *buf, int count, MPI_Datatype datatype, int dest,
|
||||
int tag, MPI_Comm comm, MPI_Request *request);
|
||||
OMPI_DECLSPEC int MPI_Is_thread_main(int *flag);
|
||||
OMPI_DECLSPEC int MPI_Keyval_create(MPI_Copy_function *copy_fn,
|
||||
MPI_Delete_function *delete_fn,
|
||||
int *keyval, void *extra_state)
|
||||
__mpi_interface_deprecated__("MPI_Keyval_create is superseded by MPI_Comm_create_keyval in MPI-2.0");
|
||||
OMPI_DECLSPEC int MPI_Keyval_free(int *keyval)
|
||||
__mpi_interface_deprecated__("MPI_Keyval_free is superseded by MPI_Comm_free_keyval in MPI-2.0");
|
||||
OMPI_DECLSPEC int MPI_Lookup_name(const char *service_name, MPI_Info info, char *port_name);
|
||||
OMPI_DECLSPEC MPI_Fint MPI_Message_c2f(MPI_Message message);
|
||||
OMPI_DECLSPEC MPI_Message MPI_Message_f2c(MPI_Fint message);
|
||||
@@ -1755,8 +1810,6 @@ OMPI_DECLSPEC int MPI_Type_create_resized(MPI_Datatype oldtype, MPI_Aint lb,
|
||||
MPI_Aint extent, MPI_Datatype *newtype);
|
||||
OMPI_DECLSPEC int MPI_Type_delete_attr(MPI_Datatype type, int type_keyval);
|
||||
OMPI_DECLSPEC int MPI_Type_dup(MPI_Datatype type, MPI_Datatype *newtype);
|
||||
OMPI_DECLSPEC int MPI_Type_extent(MPI_Datatype type, MPI_Aint *extent)
|
||||
__mpi_interface_deprecated__("MPI_Type_extent is superseded by MPI_Type_get_extent in MPI-2.0");
|
||||
OMPI_DECLSPEC int MPI_Type_free(MPI_Datatype *type);
|
||||
OMPI_DECLSPEC int MPI_Type_free_keyval(int *type_keyval);
|
||||
OMPI_DECLSPEC MPI_Datatype MPI_Type_f2c(MPI_Fint datatype);
|
||||
@@ -1780,31 +1833,15 @@ OMPI_DECLSPEC int MPI_Type_get_true_extent(MPI_Datatype datatype, MPI_Aint *tru
|
||||
MPI_Aint *true_extent);
|
||||
OMPI_DECLSPEC int MPI_Type_get_true_extent_x(MPI_Datatype datatype, MPI_Count *true_lb,
|
||||
MPI_Count *true_extent);
|
||||
OMPI_DECLSPEC int MPI_Type_hindexed(int count, int array_of_blocklengths[],
|
||||
MPI_Aint array_of_displacements[],
|
||||
MPI_Datatype oldtype, MPI_Datatype *newtype)
|
||||
__mpi_interface_deprecated__("MPI_Type_hindexed is superseded by MPI_Type_create_hindexed in MPI-2.0");
|
||||
OMPI_DECLSPEC int MPI_Type_hvector(int count, int blocklength, MPI_Aint stride,
|
||||
MPI_Datatype oldtype, MPI_Datatype *newtype)
|
||||
__mpi_interface_deprecated__("MPI_Type_hvector is superseded by MPI_Type_create_hvector in MPI-2.0");
|
||||
OMPI_DECLSPEC int MPI_Type_indexed(int count, const int array_of_blocklengths[],
|
||||
const int array_of_displacements[],
|
||||
MPI_Datatype oldtype, MPI_Datatype *newtype);
|
||||
OMPI_DECLSPEC int MPI_Type_lb(MPI_Datatype type, MPI_Aint *lb)
|
||||
__mpi_interface_deprecated__("MPI_Type_lb is deprecated, use MPI_Type_get_extent in MPI-2.0");
|
||||
OMPI_DECLSPEC int MPI_Type_match_size(int typeclass, int size, MPI_Datatype *type);
|
||||
OMPI_DECLSPEC int MPI_Type_set_attr(MPI_Datatype type, int type_keyval,
|
||||
void *attr_val);
|
||||
OMPI_DECLSPEC int MPI_Type_set_name(MPI_Datatype type, const char *type_name);
|
||||
OMPI_DECLSPEC int MPI_Type_size(MPI_Datatype type, int *size);
|
||||
OMPI_DECLSPEC int MPI_Type_size_x(MPI_Datatype type, MPI_Count *size);
|
||||
OMPI_DECLSPEC int MPI_Type_struct(int count, int array_of_blocklengths[],
|
||||
MPI_Aint array_of_displacements[],
|
||||
MPI_Datatype array_of_types[],
|
||||
MPI_Datatype *newtype)
|
||||
__mpi_interface_deprecated__("MPI_Type_struct is superseded by MPI_Type_create_struct in MPI-2.0");
|
||||
OMPI_DECLSPEC int MPI_Type_ub(MPI_Datatype mtype, MPI_Aint *ub)
|
||||
__mpi_interface_deprecated__("MPI_Type_ub is deprecated, use MPI_Type_get_extent in MPI-2.0");
|
||||
OMPI_DECLSPEC int MPI_Type_vector(int count, int blocklength, int stride,
|
||||
MPI_Datatype oldtype, MPI_Datatype *newtype);
|
||||
OMPI_DECLSPEC int MPI_Unpack(const void *inbuf, int insize, int *position,
|
||||
@@ -1881,8 +1918,6 @@ OMPI_DECLSPEC int PMPI_Accumulate(const void *origin_addr, int origin_count, MP
|
||||
OMPI_DECLSPEC int PMPI_Add_error_class(int *errorclass);
|
||||
OMPI_DECLSPEC int PMPI_Add_error_code(int errorclass, int *errorcode);
|
||||
OMPI_DECLSPEC int PMPI_Add_error_string(int errorcode, const char *string);
|
||||
OMPI_DECLSPEC int PMPI_Address(void *location, MPI_Aint *address)
|
||||
__mpi_interface_deprecated__("MPI_Address is superseded by MPI_Get_address in MPI-2.0");
|
||||
OMPI_DECLSPEC int PMPI_Allgather(const void *sendbuf, int sendcount, MPI_Datatype sendtype,
|
||||
void *recvbuf, int recvcount,
|
||||
MPI_Datatype recvtype, MPI_Comm comm);
|
||||
@@ -1919,10 +1954,6 @@ OMPI_DECLSPEC int PMPI_Alltoallw(const void *sendbuf, const int sendcounts[], c
|
||||
OMPI_DECLSPEC int PMPI_Ialltoallw(const void *sendbuf, const int sendcounts[], const int sdispls[], const MPI_Datatype sendtypes[],
|
||||
void *recvbuf, const int recvcounts[], const int rdispls[], const MPI_Datatype recvtypes[],
|
||||
MPI_Comm comm, MPI_Request *request);
|
||||
OMPI_DECLSPEC int PMPI_Attr_delete(MPI_Comm comm, int keyval)
|
||||
__mpi_interface_deprecated__("MPI_Attr_delete is superseded by MPI_Comm_delete_attr in MPI-2.0");
|
||||
OMPI_DECLSPEC int PMPI_Attr_get(MPI_Comm comm, int keyval, void *attribute_val, int *flag)
|
||||
__mpi_interface_deprecated__("MPI_Attr_get is superseded by MPI_Comm_get_attr in MPI-2.0");
|
||||
OMPI_DECLSPEC int PMPI_Dist_graph_create(MPI_Comm comm_old, int n, const int nodes[],
|
||||
const int degrees[], const int targets[],
|
||||
const int weights[], MPI_Info info,
|
||||
@@ -1944,8 +1975,6 @@ OMPI_DECLSPEC int PMPI_Dist_graph_neighbors_count(MPI_Comm comm,
|
||||
int *inneighbors,
|
||||
int *outneighbors,
|
||||
int *weighted);
|
||||
OMPI_DECLSPEC int PMPI_Attr_put(MPI_Comm comm, int keyval, void *attribute_val)
|
||||
__mpi_interface_deprecated__("MPI_Attr_put is superseded by MPI_Comm_set_attr in MPI-2.0");
|
||||
OMPI_DECLSPEC int PMPI_Barrier(MPI_Comm comm);
|
||||
OMPI_DECLSPEC int PMPI_Ibarrier(MPI_Comm comm, MPI_Request *request);
|
||||
OMPI_DECLSPEC int PMPI_Bcast(void *buffer, int count, MPI_Datatype datatype,
|
||||
@@ -2026,15 +2055,8 @@ OMPI_DECLSPEC int PMPI_Compare_and_swap(const void *origin_addr, const void *co
|
||||
MPI_Aint target_disp, MPI_Win win);
|
||||
OMPI_DECLSPEC int PMPI_Dims_create(int nnodes, int ndims, int dims[]);
|
||||
OMPI_DECLSPEC MPI_Fint PMPI_Errhandler_c2f(MPI_Errhandler errhandler);
|
||||
OMPI_DECLSPEC int PMPI_Errhandler_create(MPI_Handler_function *function,
|
||||
MPI_Errhandler *errhandler)
|
||||
__mpi_interface_deprecated__("MPI_Errhandler_create is superseded by MPI_Comm_create_errhandler in MPI-2.0");
|
||||
OMPI_DECLSPEC MPI_Errhandler PMPI_Errhandler_f2c(MPI_Fint errhandler);
|
||||
OMPI_DECLSPEC int PMPI_Errhandler_free(MPI_Errhandler *errhandler);
|
||||
OMPI_DECLSPEC int PMPI_Errhandler_get(MPI_Comm comm, MPI_Errhandler *errhandler)
|
||||
__mpi_interface_deprecated__("MPI_Errhandler_get is superseded by MPI_Comm_get_errhandler in MPI-2.0");
|
||||
OMPI_DECLSPEC int PMPI_Errhandler_set(MPI_Comm comm, MPI_Errhandler errhandler)
|
||||
__mpi_interface_deprecated__("MPI_Errhandler_set is superseded by MPI_Comm_set_errhandler in MPI-2.0");
|
||||
OMPI_DECLSPEC int PMPI_Error_class(int errorcode, int *errorclass);
|
||||
OMPI_DECLSPEC int PMPI_Error_string(int errorcode, char *string, int *resultlen);
|
||||
OMPI_DECLSPEC int PMPI_Exscan(const void *sendbuf, void *recvbuf, int count,
|
||||
@@ -2248,12 +2270,6 @@ OMPI_DECLSPEC int PMPI_Isend(const void *buf, int count, MPI_Datatype datatype,
|
||||
OMPI_DECLSPEC int PMPI_Issend(const void *buf, int count, MPI_Datatype datatype, int dest,
|
||||
int tag, MPI_Comm comm, MPI_Request *request);
|
||||
OMPI_DECLSPEC int PMPI_Is_thread_main(int *flag);
|
||||
OMPI_DECLSPEC int PMPI_Keyval_create(MPI_Copy_function *copy_fn,
|
||||
MPI_Delete_function *delete_fn,
|
||||
int *keyval, void *extra_state)
|
||||
__mpi_interface_deprecated__("MPI_Keyval_create is superseded by MPI_Comm_create_keyval in MPI-2.0");
|
||||
OMPI_DECLSPEC int PMPI_Keyval_free(int *keyval)
|
||||
__mpi_interface_deprecated__("MPI_Keyval_free is superseded by MPI_Comm_free_keyval in MPI-2.0");
|
||||
OMPI_DECLSPEC int PMPI_Lookup_name(const char *service_name, MPI_Info info, char *port_name);
|
||||
OMPI_DECLSPEC MPI_Fint PMPI_Message_c2f(MPI_Message message);
|
||||
OMPI_DECLSPEC MPI_Message PMPI_Message_f2c(MPI_Fint message);
|
||||
@@ -2454,8 +2470,6 @@ OMPI_DECLSPEC int PMPI_Type_create_resized(MPI_Datatype oldtype, MPI_Aint lb,
|
||||
MPI_Aint extent, MPI_Datatype *newtype);
|
||||
OMPI_DECLSPEC int PMPI_Type_delete_attr(MPI_Datatype type, int type_keyval);
|
||||
OMPI_DECLSPEC int PMPI_Type_dup(MPI_Datatype type, MPI_Datatype *newtype);
|
||||
OMPI_DECLSPEC int PMPI_Type_extent(MPI_Datatype type, MPI_Aint *extent)
|
||||
__mpi_interface_deprecated__("MPI_Type_extent is superseded by MPI_Type_get_extent in MPI-2.0");
|
||||
OMPI_DECLSPEC int PMPI_Type_free(MPI_Datatype *type);
|
||||
OMPI_DECLSPEC int PMPI_Type_free_keyval(int *type_keyval);
|
||||
OMPI_DECLSPEC MPI_Datatype PMPI_Type_f2c(MPI_Fint datatype);
|
||||
@@ -2479,31 +2493,15 @@ OMPI_DECLSPEC int PMPI_Type_get_true_extent(MPI_Datatype datatype, MPI_Aint *tr
|
||||
MPI_Aint *true_extent);
|
||||
OMPI_DECLSPEC int PMPI_Type_get_true_extent_x(MPI_Datatype datatype, MPI_Count *true_lb,
|
||||
MPI_Count *true_extent);
|
||||
OMPI_DECLSPEC int PMPI_Type_hindexed(int count, int array_of_blocklengths[],
|
||||
MPI_Aint array_of_displacements[],
|
||||
MPI_Datatype oldtype, MPI_Datatype *newtype)
|
||||
__mpi_interface_deprecated__("MPI_Type_hindexed is superseded by MPI_Type_create_hindexed in MPI-2.0");
|
||||
OMPI_DECLSPEC int PMPI_Type_hvector(int count, int blocklength, MPI_Aint stride,
|
||||
MPI_Datatype oldtype, MPI_Datatype *newtype)
|
||||
__mpi_interface_deprecated__("MPI_Type_hvector is superseded by MPI_Type_create_hvector in MPI-2.0");
|
||||
OMPI_DECLSPEC int PMPI_Type_indexed(int count, const int array_of_blocklengths[],
|
||||
const int array_of_displacements[],
|
||||
MPI_Datatype oldtype, MPI_Datatype *newtype);
|
||||
OMPI_DECLSPEC int PMPI_Type_lb(MPI_Datatype type, MPI_Aint *lb)
|
||||
__mpi_interface_deprecated__("MPI_Type_lb is deprecated, use MPI_Type_get_extent in MPI-2.0");
|
||||
OMPI_DECLSPEC int PMPI_Type_match_size(int typeclass, int size, MPI_Datatype *type);
|
||||
OMPI_DECLSPEC int PMPI_Type_set_attr(MPI_Datatype type, int type_keyval,
|
||||
void *attr_val);
|
||||
OMPI_DECLSPEC int PMPI_Type_set_name(MPI_Datatype type, const char *type_name);
|
||||
OMPI_DECLSPEC int PMPI_Type_size(MPI_Datatype type, int *size);
|
||||
OMPI_DECLSPEC int PMPI_Type_size_x(MPI_Datatype type, MPI_Count *size);
|
||||
OMPI_DECLSPEC int PMPI_Type_struct(int count, int array_of_blocklengths[],
|
||||
MPI_Aint array_of_displacements[],
|
||||
MPI_Datatype array_of_types[],
|
||||
MPI_Datatype *newtype)
|
||||
__mpi_interface_deprecated__("MPI_Type_struct is superseded by MPI_Type_create_struct in MPI-2.0");
|
||||
OMPI_DECLSPEC int PMPI_Type_ub(MPI_Datatype mtype, MPI_Aint *ub)
|
||||
__mpi_interface_deprecated__("MPI_Type_ub is deprecated, use MPI_Type_get_extent in MPI-2.0");
|
||||
OMPI_DECLSPEC int PMPI_Type_vector(int count, int blocklength, int stride,
|
||||
MPI_Datatype oldtype, MPI_Datatype *newtype);
|
||||
OMPI_DECLSPEC int PMPI_Unpack(const void *inbuf, int insize, int *position,
|
||||
@@ -2666,6 +2664,166 @@ OMPI_DECLSPEC int MPI_T_pvar_readreset(MPI_T_pvar_session session, MPI_T_pvar_h
|
||||
OMPI_DECLSPEC int MPI_T_enum_get_info(MPI_T_enum enumtype, int *num, char *name, int *name_len);
|
||||
OMPI_DECLSPEC int MPI_T_enum_get_item(MPI_T_enum enumtype, int index, int *value, char *name,
|
||||
int *name_len);
|
||||
/*
|
||||
* Deprecated prototypes. Usage is discouraged, as these may be
|
||||
* deleted in future versions of the MPI Standard.
|
||||
*/
|
||||
OMPI_DECLSPEC int MPI_Attr_delete(MPI_Comm comm, int keyval)
|
||||
__mpi_interface_deprecated__("MPI_Attr_delete was deprecated in MPI-2.0; use MPI_Comm_delete_attr instead");
|
||||
OMPI_DECLSPEC int PMPI_Attr_delete(MPI_Comm comm, int keyval)
|
||||
__mpi_interface_deprecated__("PMPI_Attr_delete was deprecated in MPI-2.0; use PMPI_Comm_delete_attr instead");
|
||||
OMPI_DECLSPEC int MPI_Attr_get(MPI_Comm comm, int keyval, void *attribute_val, int *flag)
|
||||
__mpi_interface_deprecated__("MPI_Attr_get was deprecated in MPI-2.0; use MPI_Comm_get_attr instead");
|
||||
OMPI_DECLSPEC int PMPI_Attr_get(MPI_Comm comm, int keyval, void *attribute_val, int *flag)
|
||||
__mpi_interface_deprecated__("PMPI_Attr_get was deprecated in MPI-2.0; use PMPI_Comm_get_attr instead");
|
||||
OMPI_DECLSPEC int MPI_Attr_put(MPI_Comm comm, int keyval, void *attribute_val)
|
||||
__mpi_interface_deprecated__("MPI_Attr_put was deprecated in MPI-2.0; use MPI_Comm_set_attr instead");
|
||||
OMPI_DECLSPEC int PMPI_Attr_put(MPI_Comm comm, int keyval, void *attribute_val)
|
||||
__mpi_interface_deprecated__("PMPI_Attr_put was deprecated in MPI-2.0; use PMPI_Comm_set_attr instead");
|
||||
|
||||
/*
|
||||
* Even though MPI_Copy_function and MPI_Delete_function are
|
||||
* deprecated, we do not use the attributes marking them as such,
|
||||
* because otherwise the compiler will warn for all the functions that
|
||||
* are declared using them (e.g., MPI_Keyval_create).
|
||||
*/
|
||||
typedef int (MPI_Copy_function)(MPI_Comm, int, void *,
|
||||
void *, void *, int *);
|
||||
/* MPI_Copy_function was deprecated in MPI-2.0; use MPI_Comm_copy_attr_function instead. */
|
||||
typedef int (MPI_Delete_function)(MPI_Comm, int, void *, void *);
|
||||
/* MPI_Delete_function was deprecated in MPI-2.0; use MPI_Comm_delete_attr_function instead. */
|
||||
OMPI_DECLSPEC int MPI_Keyval_create(MPI_Copy_function *copy_fn,
|
||||
MPI_Delete_function *delete_fn,
|
||||
int *keyval, void *extra_state)
|
||||
__mpi_interface_deprecated__("MPI_Keyval_create was deprecated in MPI-2.0; use MPI_Comm_create_keyval instead.");
|
||||
OMPI_DECLSPEC int PMPI_Keyval_create(MPI_Copy_function *copy_fn,
|
||||
MPI_Delete_function *delete_fn,
|
||||
int *keyval, void *extra_state)
|
||||
__mpi_interface_deprecated__("PMPI_Keyval_create was deprecated in MPI-2.0; use PMPI_Comm_create_keyval instead.");
|
||||
OMPI_DECLSPEC int MPI_Keyval_free(int *keyval)
|
||||
__mpi_interface_deprecated__("MPI_Keyval_free was deprecated in MPI-2.0; MPI_Comm_free_keyval instead.");
|
||||
OMPI_DECLSPEC int PMPI_Keyval_free(int *keyval)
|
||||
__mpi_interface_deprecated__("PMPI_Keyval_free was deprecated in MPI-2.0; PMPI_Comm_free_keyval instead.");
|
||||
|
||||
#if !defined(OMPI_COMPILING_FORTRAN_WRAPPERS)
|
||||
#define MPI_DUP_FN OMPI_C_MPI_DUP_FN
|
||||
#endif
|
||||
OMPI_DECLSPEC int OMPI_C_MPI_DUP_FN( MPI_Comm comm, int comm_keyval,
|
||||
void* extra_state,
|
||||
void* attribute_val_in,
|
||||
void* attribute_val_out,
|
||||
int* flag )
|
||||
__mpi_interface_deprecated__("MPI_DUP_FN was deprecated in MPI-2.0; use MPI_COMM_DUP_FN instead.");
|
||||
|
||||
#if !defined(OMPI_COMPILING_FORTRAN_WRAPPERS)
|
||||
#define MPI_NULL_COPY_FN OMPI_C_MPI_NULL_COPY_FN
|
||||
#endif
|
||||
OMPI_DECLSPEC int OMPI_C_MPI_NULL_COPY_FN( MPI_Comm comm, int comm_keyval,
|
||||
void* extra_state,
|
||||
void* attribute_val_in,
|
||||
void* attribute_val_out,
|
||||
int* flag )
|
||||
__mpi_interface_deprecated__("MPI_NULL_COPY_FN was deprecated in MPI-2.0; use MPI_COMM_NULL_COPY_FN instead.");
|
||||
|
||||
#if !defined(OMPI_COMPILING_FORTRAN_WRAPPERS)
|
||||
#define MPI_NULL_DELETE_FN OMPI_C_MPI_NULL_DELETE_FN
|
||||
#endif
|
||||
OMPI_DECLSPEC int OMPI_C_MPI_NULL_DELETE_FN( MPI_Comm comm, int comm_keyval,
|
||||
void* attribute_val_out,
|
||||
void* extra_state )
|
||||
__mpi_interface_deprecated__("MPI_NULL_DELETE_FN was deprecated in MPI-2.0; use MPI_COMM_NULL_DELETE_FN instead.");
|
||||
|
||||
#if (!OMPI_OMIT_MPI1_COMPAT_DECLS || OMPI_BUILDING)
|
||||
/*
|
||||
* Removed typedefs. These typedefs are only available if Open MPI
|
||||
* was configured with --enable-mpi1-compatibility.
|
||||
*
|
||||
* These typedefs were formally removed from the MPI specification
|
||||
* and should no longer be used in MPI applications.
|
||||
*
|
||||
* Even though MPI_Handler_function is removed, we do not use the
|
||||
* attributes marking it as such, because otherwise the compiler
|
||||
* will warn for all the functions that are declared using them
|
||||
* (e.g., MPI_Errhandler_create).
|
||||
*/
|
||||
typedef void (MPI_Handler_function)(MPI_Comm *, int *, ...);
|
||||
/* MPI_Handler_function was removed in MPI-3.0; use MPI_Comm_use_errhandler_function instead. */
|
||||
|
||||
/*
|
||||
* Removed prototypes. These prototypes are only available if Open
|
||||
* MPI was configured with --enable-mpi1-compatibility.
|
||||
*
|
||||
* These functions were formally removed from the MPI specification
|
||||
* and should no longer be used in MPI applications.
|
||||
*/
|
||||
OMPI_DECLSPEC int MPI_Address(void *location, MPI_Aint *address)
|
||||
__mpi_interface_removed__(MPI_Address, MPI_Get_address);
|
||||
OMPI_DECLSPEC int PMPI_Address(void *location, MPI_Aint *address)
|
||||
__mpi_interface_removed__(PMPI_Address, PMPI_Get_address);
|
||||
OMPI_DECLSPEC int MPI_Errhandler_create(MPI_Handler_function *function,
|
||||
MPI_Errhandler *errhandler)
|
||||
__mpi_interface_removed__(MPI_Errhandler_create, MPI_Comm_create_errhandler);
|
||||
OMPI_DECLSPEC int PMPI_Errhandler_create(MPI_Handler_function *function,
|
||||
MPI_Errhandler *errhandler)
|
||||
__mpi_interface_removed__(PMPI_Errhandler_create, PMPI_Comm_create_errhandler);
|
||||
OMPI_DECLSPEC int MPI_Errhandler_get(MPI_Comm comm, MPI_Errhandler *errhandler)
|
||||
__mpi_interface_removed__(MPI_Errhandler_get, MPI_Comm_get_errhandler);
|
||||
OMPI_DECLSPEC int PMPI_Errhandler_get(MPI_Comm comm, MPI_Errhandler *errhandler)
|
||||
__mpi_interface_removed__(PMPI_Errhandler_get, PMPI_Comm_get_errhandler);
|
||||
OMPI_DECLSPEC int MPI_Errhandler_set(MPI_Comm comm, MPI_Errhandler errhandler)
|
||||
__mpi_interface_removed__(MPI_Errhandler_set, MPI_Comm_set_errhandler);
|
||||
OMPI_DECLSPEC int PMPI_Errhandler_set(MPI_Comm comm, MPI_Errhandler errhandler)
|
||||
__mpi_interface_removed__(PMPI_Errhandler_set, PMPI_Comm_set_errhandler);
|
||||
OMPI_DECLSPEC int MPI_Type_extent(MPI_Datatype type, MPI_Aint *extent)
|
||||
__mpi_interface_removed__(MPI_Type_extent, MPI_Type_get_extent);
|
||||
OMPI_DECLSPEC int PMPI_Type_extent(MPI_Datatype type, MPI_Aint *extent)
|
||||
__mpi_interface_removed__(PMPI_Type_extent, PMPI_Type_get_extent);
|
||||
OMPI_DECLSPEC int MPI_Type_hindexed(int count, int array_of_blocklengths[],
|
||||
MPI_Aint array_of_displacements[],
|
||||
MPI_Datatype oldtype, MPI_Datatype *newtype)
|
||||
__mpi_interface_removed__(MPI_Type_hindexed, MPI_Type_create_hindexed);
|
||||
OMPI_DECLSPEC int PMPI_Type_hindexed(int count, int array_of_blocklengths[],
|
||||
MPI_Aint array_of_displacements[],
|
||||
MPI_Datatype oldtype, MPI_Datatype *newtype)
|
||||
__mpi_interface_removed__(PMPI_Type_hindexed, PMPI_Type_create_hindexed);
|
||||
OMPI_DECLSPEC int MPI_Type_hvector(int count, int blocklength, MPI_Aint stride,
|
||||
MPI_Datatype oldtype, MPI_Datatype *newtype)
|
||||
__mpi_interface_removed__(MPI_Type_hvector, MPI_Type_create_hvector);
|
||||
OMPI_DECLSPEC int PMPI_Type_hvector(int count, int blocklength, MPI_Aint stride,
|
||||
MPI_Datatype oldtype, MPI_Datatype *newtype)
|
||||
__mpi_interface_removed__(PMPI_Type_hvector, PMPI_Type_create_hvector);
|
||||
OMPI_DECLSPEC int MPI_Type_lb(MPI_Datatype type, MPI_Aint *lb)
|
||||
__mpi_interface_removed__(MPI_Type_lb, MPI_Type_get_extent);
|
||||
OMPI_DECLSPEC int PMPI_Type_lb(MPI_Datatype type, MPI_Aint *lb)
|
||||
__mpi_interface_removed__(PMPI_Type_lb, PMPI_Type_get_extent);
|
||||
OMPI_DECLSPEC int MPI_Type_struct(int count, int array_of_blocklengths[],
|
||||
MPI_Aint array_of_displacements[],
|
||||
MPI_Datatype array_of_types[],
|
||||
MPI_Datatype *newtype)
|
||||
__mpi_interface_removed__(MPI_Type_struct, MPI_Type_create_struct);
|
||||
OMPI_DECLSPEC int PMPI_Type_struct(int count, int array_of_blocklengths[],
|
||||
MPI_Aint array_of_displacements[],
|
||||
MPI_Datatype array_of_types[],
|
||||
MPI_Datatype *newtype)
|
||||
__mpi_interface_removed__(PMPI_Type_struct, PMPI_Type_create_struct);
|
||||
OMPI_DECLSPEC int MPI_Type_ub(MPI_Datatype mtype, MPI_Aint *ub)
|
||||
__mpi_interface_removed__(MPI_Type_ub, MPI_Type_get_extent);
|
||||
OMPI_DECLSPEC int PMPI_Type_ub(MPI_Datatype mtype, MPI_Aint *ub)
|
||||
__mpi_interface_removed__(PMPI_Type_ub, PMPI_Type_get_extent);
|
||||
#endif /* !OMPI_OMIT_MPI1_COMPAT_DECLS */
|
||||
|
||||
#if OMPI_REMOVED_USE_STATIC_ASSERT
|
||||
#define MPI_Address(...) THIS_SYMBOL_WAS_REMOVED_IN_MPI30(MPI_Address, MPI_Get_address)
|
||||
#define MPI_Errhandler_create(...) THIS_SYMBOL_WAS_REMOVED_IN_MPI30(MPI_Errhandler_create, MPI_Comm_create_errhandler)
|
||||
#define MPI_Errhandler_get(...) THIS_SYMBOL_WAS_REMOVED_IN_MPI30(MPI_Errhandler_get, MPI_Comm_get_errhandler)
|
||||
#define MPI_Errhandler_set(...) THIS_SYMBOL_WAS_REMOVED_IN_MPI30(MPI_Errhandler_set, MPI_Comm_set_errhandler)
|
||||
#define MPI_Type_extent(...) THIS_SYMBOL_WAS_REMOVED_IN_MPI30(MPI_Type_extent, MPI_Type_get_extent)
|
||||
#define MPI_Type_hindexed(...) THIS_SYMBOL_WAS_REMOVED_IN_MPI30(MPI_Type_hindexed, MPI_Type_create_hindexed)
|
||||
#define MPI_Type_hvector(...) THIS_SYMBOL_WAS_REMOVED_IN_MPI30(MPI_Type_hvector, MPI_Type_create_hvector)
|
||||
#define MPI_Type_lb(...) THIS_SYMBOL_WAS_REMOVED_IN_MPI30(MPI_Type_lb, MPI_Type_get_extent)
|
||||
#define MPI_Type_struct(...) THIS_SYMBOL_WAS_REMOVED_IN_MPI30(MPI_Type_struct, MPI_Type_create_struct)
|
||||
#define MPI_Type_ub(...) THIS_SYMBOL_WAS_REMOVED_IN_MPI30(MPI_Type_ub, MPI_Type_get_extent)
|
||||
#endif
|
||||
|
||||
#if defined(c_plusplus) || defined(__cplusplus)
|
||||
}
|
||||
|
||||
@@ -22,3 +22,11 @@
|
||||
parameter (OMPI_HAVE_MPI_EXT_CUDA=0)
|
||||
|
||||
!
|
||||
! Enabled Extension: pcollreq
|
||||
!
|
||||
integer OMPI_HAVE_MPI_EXT_PCOLLREQ
|
||||
parameter (OMPI_HAVE_MPI_EXT_PCOLLREQ=1)
|
||||
|
||||
include 'openmpi/mpiext/mpiext_pcollreq_mpifh.h'
|
||||
|
||||
!
|
||||
|
||||
@@ -1 +0,0 @@
|
||||
../shmem.fh
|
||||
@@ -1 +0,0 @@
|
||||
../shmem.h
|
||||
@@ -0,0 +1,62 @@
|
||||
/*
|
||||
* Copyright (c) 2017 FUJITSU LIMITED. All rights reserved.
|
||||
* Copyright (c) 2018 Research Organization for Information Science
|
||||
* and Technology (RIST). All rights reserved.
|
||||
* $COPYRIGHT$
|
||||
*
|
||||
* Additional copyrights may follow
|
||||
*
|
||||
* $HEADER$
|
||||
*
|
||||
*/
|
||||
|
||||
OMPI_DECLSPEC int MPIX_Allgather_init(const void *sendbuf, int sendcount, MPI_Datatype sendtype, void *recvbuf, int recvcount, MPI_Datatype recvtype, MPI_Comm comm, MPI_Info info, MPI_Request *request);
|
||||
OMPI_DECLSPEC int MPIX_Allgatherv_init(const void *sendbuf, int sendcount, MPI_Datatype sendtype, void *recvbuf, const int recvcounts[], const int displs[], MPI_Datatype recvtype, MPI_Comm comm, MPI_Info info, MPI_Request *request);
|
||||
OMPI_DECLSPEC int MPIX_Allreduce_init(const void *sendbuf, void *recvbuf, int count, MPI_Datatype datatype, MPI_Op op, MPI_Comm comm, MPI_Info info, MPI_Request *request);
|
||||
OMPI_DECLSPEC int MPIX_Alltoall_init(const void *sendbuf, int sendcount, MPI_Datatype sendtype, void *recvbuf, int recvcount, MPI_Datatype recvtype, MPI_Comm comm, MPI_Info info, MPI_Request *request);
|
||||
OMPI_DECLSPEC int MPIX_Alltoallv_init(const void *sendbuf, const int sendcounts[], const int sdispls[], MPI_Datatype sendtype, void *recvbuf, const int recvcounts[], const int rdispls[], MPI_Datatype recvtype, MPI_Comm comm, MPI_Info info, MPI_Request *request);
|
||||
OMPI_DECLSPEC int MPIX_Alltoallw_init(const void *sendbuf, const int sendcounts[], const int sdispls[], const MPI_Datatype sendtypes[], void *recvbuf, const int recvcounts[], const int rdispls[], const MPI_Datatype recvtypes[], MPI_Comm comm, MPI_Info info, MPI_Request *request);
|
||||
OMPI_DECLSPEC int MPIX_Barrier_init(MPI_Comm comm, MPI_Info info, MPI_Request *request);
|
||||
OMPI_DECLSPEC int MPIX_Bcast_init(void *buffer, int count, MPI_Datatype datatype, int root, MPI_Comm comm, MPI_Info info, MPI_Request *request);
|
||||
OMPI_DECLSPEC int MPIX_Exscan_init(const void *sendbuf, void *recvbuf, int count, MPI_Datatype datatype, MPI_Op op, MPI_Comm comm, MPI_Info info, MPI_Request *request);
|
||||
OMPI_DECLSPEC int MPIX_Gather_init(const void *sendbuf, int sendcount, MPI_Datatype sendtype, void *recvbuf, int recvcount, MPI_Datatype recvtype, int root, MPI_Comm comm, MPI_Info info, MPI_Request *request);
|
||||
OMPI_DECLSPEC int MPIX_Gatherv_init(const void *sendbuf, int sendcount, MPI_Datatype sendtype, void *recvbuf, const int recvcounts[], const int displs[], MPI_Datatype recvtype, int root, MPI_Comm comm, MPI_Info info, MPI_Request *request);
|
||||
OMPI_DECLSPEC int MPIX_Reduce_init(const void *sendbuf, void *recvbuf, int count, MPI_Datatype datatype, MPI_Op op, int root, MPI_Comm comm, MPI_Info info, MPI_Request *request);
|
||||
OMPI_DECLSPEC int MPIX_Reduce_scatter_init(const void *sendbuf, void *recvbuf, const int recvcounts[], MPI_Datatype datatype, MPI_Op op, MPI_Comm comm, MPI_Info info, MPI_Request *request);
|
||||
OMPI_DECLSPEC int MPIX_Reduce_scatter_block_init(const void *sendbuf, void *recvbuf, int recvcount, MPI_Datatype datatype, MPI_Op op, MPI_Comm comm, MPI_Info info, MPI_Request *request);
|
||||
OMPI_DECLSPEC int MPIX_Scan_init(const void *sendbuf, void *recvbuf, int count, MPI_Datatype datatype, MPI_Op op, MPI_Comm comm, MPI_Info info, MPI_Request *request);
|
||||
OMPI_DECLSPEC int MPIX_Scatter_init(const void *sendbuf, int sendcount, MPI_Datatype sendtype, void *recvbuf, int recvcount, MPI_Datatype recvtype, int root, MPI_Comm comm, MPI_Info info, MPI_Request *request);
|
||||
OMPI_DECLSPEC int MPIX_Scatterv_init(const void *sendbuf, const int sendcounts[], const int displs[], MPI_Datatype sendtype, void *recvbuf, int recvcount, MPI_Datatype recvtype, int root, MPI_Comm comm, MPI_Info info, MPI_Request *request);
|
||||
|
||||
OMPI_DECLSPEC int MPIX_Neighbor_allgather_init(const void *sendbuf, int sendcount, MPI_Datatype sendtype, void *recvbuf, int recvcount, MPI_Datatype recvtype, MPI_Comm comm, MPI_Info info, MPI_Request *request);
|
||||
OMPI_DECLSPEC int MPIX_Neighbor_allgatherv_init(const void *sendbuf, int sendcount, MPI_Datatype sendtype, void *recvbuf, const int recvcounts[], const int displs[], MPI_Datatype recvtype, MPI_Comm comm, MPI_Info info, MPI_Request *request);
|
||||
OMPI_DECLSPEC int MPIX_Neighbor_alltoall_init(const void *sendbuf, int sendcount, MPI_Datatype sendtype, void *recvbuf, int recvcount, MPI_Datatype recvtype, MPI_Comm comm, MPI_Info info, MPI_Request *request);
|
||||
OMPI_DECLSPEC int MPIX_Neighbor_alltoallv_init(const void *sendbuf, const int sendcounts[], const int sdispls[], MPI_Datatype sendtype, void *recvbuf, const int recvcounts[], const int rdispls[], MPI_Datatype recvtype, MPI_Comm comm, MPI_Info info, MPI_Request *request);
|
||||
OMPI_DECLSPEC int MPIX_Neighbor_alltoallw_init(const void *sendbuf, const int sendcounts[], const MPI_Aint sdispls[], const MPI_Datatype sendtypes[], void *recvbuf, const int recvcounts[], const MPI_Aint rdispls[], const MPI_Datatype recvtypes[], MPI_Comm comm, MPI_Info info, MPI_Request *request);
|
||||
|
||||
/*
|
||||
* Profiling MPI API
|
||||
*/
|
||||
OMPI_DECLSPEC int PMPIX_Allgather_init(const void *sendbuf, int sendcount, MPI_Datatype sendtype, void *recvbuf, int recvcount, MPI_Datatype recvtype, MPI_Comm comm, MPI_Info info, MPI_Request *request);
|
||||
OMPI_DECLSPEC int PMPIX_Allgatherv_init(const void *sendbuf, int sendcount, MPI_Datatype sendtype, void *recvbuf, const int recvcounts[], const int displs[], MPI_Datatype recvtype, MPI_Comm comm, MPI_Info info, MPI_Request *request);
|
||||
OMPI_DECLSPEC int PMPIX_Allreduce_init(const void *sendbuf, void *recvbuf, int count, MPI_Datatype datatype, MPI_Op op, MPI_Comm comm, MPI_Info info, MPI_Request *request);
|
||||
OMPI_DECLSPEC int PMPIX_Alltoall_init(const void *sendbuf, int sendcount, MPI_Datatype sendtype, void *recvbuf, int recvcount, MPI_Datatype recvtype, MPI_Comm comm, MPI_Info info, MPI_Request *request);
|
||||
OMPI_DECLSPEC int PMPIX_Alltoallv_init(const void *sendbuf, const int sendcounts[], const int sdispls[], MPI_Datatype sendtype, void *recvbuf, const int recvcounts[], const int rdispls[], MPI_Datatype recvtype, MPI_Comm comm, MPI_Info info, MPI_Request *request);
|
||||
OMPI_DECLSPEC int PMPIX_Alltoallw_init(const void *sendbuf, const int sendcounts[], const int sdispls[], const MPI_Datatype sendtypes[], void *recvbuf, const int recvcounts[], const int rdispls[], const MPI_Datatype recvtypes[], MPI_Comm comm, MPI_Info info, MPI_Request *request);
|
||||
OMPI_DECLSPEC int PMPIX_Barrier_init(MPI_Comm comm, MPI_Info info, MPI_Request *request);
|
||||
OMPI_DECLSPEC int PMPIX_Bcast_init(void *buffer, int count, MPI_Datatype datatype, int root, MPI_Comm comm, MPI_Info info, MPI_Request *request);
|
||||
OMPI_DECLSPEC int PMPIX_Exscan_init(const void *sendbuf, void *recvbuf, int count, MPI_Datatype datatype, MPI_Op op, MPI_Comm comm, MPI_Info info, MPI_Request *request);
|
||||
OMPI_DECLSPEC int PMPIX_Gather_init(const void *sendbuf, int sendcount, MPI_Datatype sendtype, void *recvbuf, int recvcount, MPI_Datatype recvtype, int root, MPI_Comm comm, MPI_Info info, MPI_Request *request);
|
||||
OMPI_DECLSPEC int PMPIX_Gatherv_init(const void *sendbuf, int sendcount, MPI_Datatype sendtype, void *recvbuf, const int recvcounts[], const int displs[], MPI_Datatype recvtype, int root, MPI_Comm comm, MPI_Info info, MPI_Request *request);
|
||||
OMPI_DECLSPEC int PMPIX_Reduce_init(const void *sendbuf, void *recvbuf, int count, MPI_Datatype datatype, MPI_Op op, int root, MPI_Comm comm, MPI_Info info, MPI_Request *request);
|
||||
OMPI_DECLSPEC int PMPIX_Reduce_scatter_init(const void *sendbuf, void *recvbuf, const int recvcounts[], MPI_Datatype datatype, MPI_Op op, MPI_Comm comm, MPI_Info info, MPI_Request *request);
|
||||
OMPI_DECLSPEC int PMPIX_Reduce_scatter_block_init(const void *sendbuf, void *recvbuf, int recvcount, MPI_Datatype datatype, MPI_Op op, MPI_Comm comm, MPI_Info info, MPI_Request *request);
|
||||
OMPI_DECLSPEC int PMPIX_Scan_init(const void *sendbuf, void *recvbuf, int count, MPI_Datatype datatype, MPI_Op op, MPI_Comm comm, MPI_Info info, MPI_Request *request);
|
||||
OMPI_DECLSPEC int PMPIX_Scatter_init(const void *sendbuf, int sendcount, MPI_Datatype sendtype, void *recvbuf, int recvcount, MPI_Datatype recvtype, int root, MPI_Comm comm, MPI_Info info, MPI_Request *request);
|
||||
OMPI_DECLSPEC int PMPIX_Scatterv_init(const void *sendbuf, const int sendcounts[], const int displs[], MPI_Datatype sendtype, void *recvbuf, int recvcount, MPI_Datatype recvtype, int root, MPI_Comm comm, MPI_Info info, MPI_Request *request);
|
||||
|
||||
OMPI_DECLSPEC int PMPIX_Neighbor_allgather_init(const void *sendbuf, int sendcount, MPI_Datatype sendtype, void *recvbuf, int recvcount, MPI_Datatype recvtype, MPI_Comm comm, MPI_Info info, MPI_Request *request);
|
||||
OMPI_DECLSPEC int PMPIX_Neighbor_allgatherv_init(const void *sendbuf, int sendcount, MPI_Datatype sendtype, void *recvbuf, const int recvcounts[], const int displs[], MPI_Datatype recvtype, MPI_Comm comm, MPI_Info info, MPI_Request *request);
|
||||
OMPI_DECLSPEC int PMPIX_Neighbor_alltoall_init(const void *sendbuf, int sendcount, MPI_Datatype sendtype, void *recvbuf, int recvcount, MPI_Datatype recvtype, MPI_Comm comm, MPI_Info info, MPI_Request *request);
|
||||
OMPI_DECLSPEC int PMPIX_Neighbor_alltoallv_init(const void *sendbuf, const int sendcounts[], const int sdispls[], MPI_Datatype sendtype, void *recvbuf, const int recvcounts[], const int rdispls[], MPI_Datatype recvtype, MPI_Comm comm, MPI_Info info, MPI_Request *request);
|
||||
OMPI_DECLSPEC int PMPIX_Neighbor_alltoallw_init(const void *sendbuf, const int sendcounts[], const MPI_Aint sdispls[], const MPI_Datatype sendtypes[], void *recvbuf, const int recvcounts[], const MPI_Aint rdispls[], const MPI_Datatype recvtypes[], MPI_Comm comm, MPI_Info info, MPI_Request *request);
|
||||
@@ -0,0 +1,62 @@
|
||||
/*
|
||||
* Copyright (c) 2017 FUJITSU LIMITED. All rights reserved.
|
||||
* Copyright (c) 2018 Research Organization for Information Science
|
||||
* and Technology (RIST). All rights reserved.
|
||||
* $COPYRIGHT$
|
||||
*
|
||||
* Additional copyrights may follow
|
||||
*
|
||||
* $HEADER$
|
||||
*
|
||||
*/
|
||||
|
||||
OMPI_DECLSPEC int MPIX_Allgather_init(const void *sendbuf, int sendcount, MPI_Datatype sendtype, void *recvbuf, int recvcount, MPI_Datatype recvtype, MPI_Comm comm, MPI_Info info, MPI_Request *request);
|
||||
OMPI_DECLSPEC int MPIX_Allgatherv_init(const void *sendbuf, int sendcount, MPI_Datatype sendtype, void *recvbuf, const int recvcounts[], const int displs[], MPI_Datatype recvtype, MPI_Comm comm, MPI_Info info, MPI_Request *request);
|
||||
OMPI_DECLSPEC int MPIX_Allreduce_init(const void *sendbuf, void *recvbuf, int count, MPI_Datatype datatype, MPI_Op op, MPI_Comm comm, MPI_Info info, MPI_Request *request);
|
||||
OMPI_DECLSPEC int MPIX_Alltoall_init(const void *sendbuf, int sendcount, MPI_Datatype sendtype, void *recvbuf, int recvcount, MPI_Datatype recvtype, MPI_Comm comm, MPI_Info info, MPI_Request *request);
|
||||
OMPI_DECLSPEC int MPIX_Alltoallv_init(const void *sendbuf, const int sendcounts[], const int sdispls[], MPI_Datatype sendtype, void *recvbuf, const int recvcounts[], const int rdispls[], MPI_Datatype recvtype, MPI_Comm comm, MPI_Info info, MPI_Request *request);
|
||||
OMPI_DECLSPEC int MPIX_Alltoallw_init(const void *sendbuf, const int sendcounts[], const int sdispls[], const MPI_Datatype sendtypes[], void *recvbuf, const int recvcounts[], const int rdispls[], const MPI_Datatype recvtypes[], MPI_Comm comm, MPI_Info info, MPI_Request *request);
|
||||
OMPI_DECLSPEC int MPIX_Barrier_init(MPI_Comm comm, MPI_Info info, MPI_Request *request);
|
||||
OMPI_DECLSPEC int MPIX_Bcast_init(void *buffer, int count, MPI_Datatype datatype, int root, MPI_Comm comm, MPI_Info info, MPI_Request *request);
|
||||
OMPI_DECLSPEC int MPIX_Exscan_init(const void *sendbuf, void *recvbuf, int count, MPI_Datatype datatype, MPI_Op op, MPI_Comm comm, MPI_Info info, MPI_Request *request);
|
||||
OMPI_DECLSPEC int MPIX_Gather_init(const void *sendbuf, int sendcount, MPI_Datatype sendtype, void *recvbuf, int recvcount, MPI_Datatype recvtype, int root, MPI_Comm comm, MPI_Info info, MPI_Request *request);
|
||||
OMPI_DECLSPEC int MPIX_Gatherv_init(const void *sendbuf, int sendcount, MPI_Datatype sendtype, void *recvbuf, const int recvcounts[], const int displs[], MPI_Datatype recvtype, int root, MPI_Comm comm, MPI_Info info, MPI_Request *request);
|
||||
OMPI_DECLSPEC int MPIX_Reduce_init(const void *sendbuf, void *recvbuf, int count, MPI_Datatype datatype, MPI_Op op, int root, MPI_Comm comm, MPI_Info info, MPI_Request *request);
|
||||
OMPI_DECLSPEC int MPIX_Reduce_scatter_init(const void *sendbuf, void *recvbuf, const int recvcounts[], MPI_Datatype datatype, MPI_Op op, MPI_Comm comm, MPI_Info info, MPI_Request *request);
|
||||
OMPI_DECLSPEC int MPIX_Reduce_scatter_block_init(const void *sendbuf, void *recvbuf, int recvcount, MPI_Datatype datatype, MPI_Op op, MPI_Comm comm, MPI_Info info, MPI_Request *request);
|
||||
OMPI_DECLSPEC int MPIX_Scan_init(const void *sendbuf, void *recvbuf, int count, MPI_Datatype datatype, MPI_Op op, MPI_Comm comm, MPI_Info info, MPI_Request *request);
|
||||
OMPI_DECLSPEC int MPIX_Scatter_init(const void *sendbuf, int sendcount, MPI_Datatype sendtype, void *recvbuf, int recvcount, MPI_Datatype recvtype, int root, MPI_Comm comm, MPI_Info info, MPI_Request *request);
|
||||
OMPI_DECLSPEC int MPIX_Scatterv_init(const void *sendbuf, const int sendcounts[], const int displs[], MPI_Datatype sendtype, void *recvbuf, int recvcount, MPI_Datatype recvtype, int root, MPI_Comm comm, MPI_Info info, MPI_Request *request);
|
||||
|
||||
OMPI_DECLSPEC int MPIX_Neighbor_allgather_init(const void *sendbuf, int sendcount, MPI_Datatype sendtype, void *recvbuf, int recvcount, MPI_Datatype recvtype, MPI_Comm comm, MPI_Info info, MPI_Request *request);
|
||||
OMPI_DECLSPEC int MPIX_Neighbor_allgatherv_init(const void *sendbuf, int sendcount, MPI_Datatype sendtype, void *recvbuf, const int recvcounts[], const int displs[], MPI_Datatype recvtype, MPI_Comm comm, MPI_Info info, MPI_Request *request);
|
||||
OMPI_DECLSPEC int MPIX_Neighbor_alltoall_init(const void *sendbuf, int sendcount, MPI_Datatype sendtype, void *recvbuf, int recvcount, MPI_Datatype recvtype, MPI_Comm comm, MPI_Info info, MPI_Request *request);
|
||||
OMPI_DECLSPEC int MPIX_Neighbor_alltoallv_init(const void *sendbuf, const int sendcounts[], const int sdispls[], MPI_Datatype sendtype, void *recvbuf, const int recvcounts[], const int rdispls[], MPI_Datatype recvtype, MPI_Comm comm, MPI_Info info, MPI_Request *request);
|
||||
OMPI_DECLSPEC int MPIX_Neighbor_alltoallw_init(const void *sendbuf, const int sendcounts[], const MPI_Aint sdispls[], const MPI_Datatype sendtypes[], void *recvbuf, const int recvcounts[], const MPI_Aint rdispls[], const MPI_Datatype recvtypes[], MPI_Comm comm, MPI_Info info, MPI_Request *request);
|
||||
|
||||
/*
|
||||
* Profiling MPI API
|
||||
*/
|
||||
OMPI_DECLSPEC int PMPIX_Allgather_init(const void *sendbuf, int sendcount, MPI_Datatype sendtype, void *recvbuf, int recvcount, MPI_Datatype recvtype, MPI_Comm comm, MPI_Info info, MPI_Request *request);
|
||||
OMPI_DECLSPEC int PMPIX_Allgatherv_init(const void *sendbuf, int sendcount, MPI_Datatype sendtype, void *recvbuf, const int recvcounts[], const int displs[], MPI_Datatype recvtype, MPI_Comm comm, MPI_Info info, MPI_Request *request);
|
||||
OMPI_DECLSPEC int PMPIX_Allreduce_init(const void *sendbuf, void *recvbuf, int count, MPI_Datatype datatype, MPI_Op op, MPI_Comm comm, MPI_Info info, MPI_Request *request);
|
||||
OMPI_DECLSPEC int PMPIX_Alltoall_init(const void *sendbuf, int sendcount, MPI_Datatype sendtype, void *recvbuf, int recvcount, MPI_Datatype recvtype, MPI_Comm comm, MPI_Info info, MPI_Request *request);
|
||||
OMPI_DECLSPEC int PMPIX_Alltoallv_init(const void *sendbuf, const int sendcounts[], const int sdispls[], MPI_Datatype sendtype, void *recvbuf, const int recvcounts[], const int rdispls[], MPI_Datatype recvtype, MPI_Comm comm, MPI_Info info, MPI_Request *request);
|
||||
OMPI_DECLSPEC int PMPIX_Alltoallw_init(const void *sendbuf, const int sendcounts[], const int sdispls[], const MPI_Datatype sendtypes[], void *recvbuf, const int recvcounts[], const int rdispls[], const MPI_Datatype recvtypes[], MPI_Comm comm, MPI_Info info, MPI_Request *request);
|
||||
OMPI_DECLSPEC int PMPIX_Barrier_init(MPI_Comm comm, MPI_Info info, MPI_Request *request);
|
||||
OMPI_DECLSPEC int PMPIX_Bcast_init(void *buffer, int count, MPI_Datatype datatype, int root, MPI_Comm comm, MPI_Info info, MPI_Request *request);
|
||||
OMPI_DECLSPEC int PMPIX_Exscan_init(const void *sendbuf, void *recvbuf, int count, MPI_Datatype datatype, MPI_Op op, MPI_Comm comm, MPI_Info info, MPI_Request *request);
|
||||
OMPI_DECLSPEC int PMPIX_Gather_init(const void *sendbuf, int sendcount, MPI_Datatype sendtype, void *recvbuf, int recvcount, MPI_Datatype recvtype, int root, MPI_Comm comm, MPI_Info info, MPI_Request *request);
|
||||
OMPI_DECLSPEC int PMPIX_Gatherv_init(const void *sendbuf, int sendcount, MPI_Datatype sendtype, void *recvbuf, const int recvcounts[], const int displs[], MPI_Datatype recvtype, int root, MPI_Comm comm, MPI_Info info, MPI_Request *request);
|
||||
OMPI_DECLSPEC int PMPIX_Reduce_init(const void *sendbuf, void *recvbuf, int count, MPI_Datatype datatype, MPI_Op op, int root, MPI_Comm comm, MPI_Info info, MPI_Request *request);
|
||||
OMPI_DECLSPEC int PMPIX_Reduce_scatter_init(const void *sendbuf, void *recvbuf, const int recvcounts[], MPI_Datatype datatype, MPI_Op op, MPI_Comm comm, MPI_Info info, MPI_Request *request);
|
||||
OMPI_DECLSPEC int PMPIX_Reduce_scatter_block_init(const void *sendbuf, void *recvbuf, int recvcount, MPI_Datatype datatype, MPI_Op op, MPI_Comm comm, MPI_Info info, MPI_Request *request);
|
||||
OMPI_DECLSPEC int PMPIX_Scan_init(const void *sendbuf, void *recvbuf, int count, MPI_Datatype datatype, MPI_Op op, MPI_Comm comm, MPI_Info info, MPI_Request *request);
|
||||
OMPI_DECLSPEC int PMPIX_Scatter_init(const void *sendbuf, int sendcount, MPI_Datatype sendtype, void *recvbuf, int recvcount, MPI_Datatype recvtype, int root, MPI_Comm comm, MPI_Info info, MPI_Request *request);
|
||||
OMPI_DECLSPEC int PMPIX_Scatterv_init(const void *sendbuf, const int sendcounts[], const int displs[], MPI_Datatype sendtype, void *recvbuf, int recvcount, MPI_Datatype recvtype, int root, MPI_Comm comm, MPI_Info info, MPI_Request *request);
|
||||
|
||||
OMPI_DECLSPEC int PMPIX_Neighbor_allgather_init(const void *sendbuf, int sendcount, MPI_Datatype sendtype, void *recvbuf, int recvcount, MPI_Datatype recvtype, MPI_Comm comm, MPI_Info info, MPI_Request *request);
|
||||
OMPI_DECLSPEC int PMPIX_Neighbor_allgatherv_init(const void *sendbuf, int sendcount, MPI_Datatype sendtype, void *recvbuf, const int recvcounts[], const int displs[], MPI_Datatype recvtype, MPI_Comm comm, MPI_Info info, MPI_Request *request);
|
||||
OMPI_DECLSPEC int PMPIX_Neighbor_alltoall_init(const void *sendbuf, int sendcount, MPI_Datatype sendtype, void *recvbuf, int recvcount, MPI_Datatype recvtype, MPI_Comm comm, MPI_Info info, MPI_Request *request);
|
||||
OMPI_DECLSPEC int PMPIX_Neighbor_alltoallv_init(const void *sendbuf, const int sendcounts[], const int sdispls[], MPI_Datatype sendtype, void *recvbuf, const int recvcounts[], const int rdispls[], MPI_Datatype recvtype, MPI_Comm comm, MPI_Info info, MPI_Request *request);
|
||||
OMPI_DECLSPEC int PMPIX_Neighbor_alltoallw_init(const void *sendbuf, const int sendcounts[], const MPI_Aint sdispls[], const MPI_Datatype sendtypes[], void *recvbuf, const int recvcounts[], const MPI_Aint rdispls[], const MPI_Datatype recvtypes[], MPI_Comm comm, MPI_Info info, MPI_Request *request);
|
||||
@@ -1,123 +0,0 @@
|
||||
/*
|
||||
* Copyright (c) 2013 Mellanox Technologies, Inc.
|
||||
* All rights reserved.
|
||||
* $COPYRIGHT$
|
||||
*
|
||||
* Additional copyrights may follow
|
||||
*
|
||||
* $HEADER$
|
||||
*/
|
||||
|
||||
#ifndef OSHMEM_CONSTANTS_H
|
||||
#define OSHMEM_CONSTANTS_H
|
||||
|
||||
#include "orte/constants.h"
|
||||
#include "oshmem/include/shmem.h"
|
||||
|
||||
|
||||
#define OSHMEM_ERR_BASE ORTE_ERR_MAX
|
||||
|
||||
/* error codes */
|
||||
enum {
|
||||
/* Error codes inherited from ORTE/OPAL. Still enum values so
|
||||
that we might get nice debugger help */
|
||||
OSHMEM_SUCCESS = ORTE_SUCCESS,
|
||||
|
||||
OSHMEM_ERROR = ORTE_ERROR,
|
||||
OSHMEM_ERR_OUT_OF_RESOURCE = ORTE_ERR_OUT_OF_RESOURCE,
|
||||
OSHMEM_ERR_TEMP_OUT_OF_RESOURCE = ORTE_ERR_TEMP_OUT_OF_RESOURCE,
|
||||
OSHMEM_ERR_RESOURCE_BUSY = ORTE_ERR_RESOURCE_BUSY,
|
||||
OSHMEM_ERR_BAD_PARAM = ORTE_ERR_BAD_PARAM,
|
||||
OSHMEM_ERR_FATAL = ORTE_ERR_FATAL,
|
||||
OSHMEM_ERR_NOT_IMPLEMENTED = ORTE_ERR_NOT_IMPLEMENTED,
|
||||
OSHMEM_ERR_NOT_SUPPORTED = ORTE_ERR_NOT_SUPPORTED,
|
||||
OSHMEM_ERR_INTERUPTED = ORTE_ERR_INTERUPTED,
|
||||
OSHMEM_ERR_WOULD_BLOCK = ORTE_ERR_WOULD_BLOCK,
|
||||
OSHMEM_ERR_IN_ERRNO = ORTE_ERR_IN_ERRNO,
|
||||
OSHMEM_ERR_UNREACH = ORTE_ERR_UNREACH,
|
||||
OSHMEM_ERR_NOT_FOUND = ORTE_ERR_NOT_FOUND,
|
||||
OSHMEM_EXISTS = ORTE_EXISTS, /* indicates that the specified object already exists */
|
||||
OSHMEM_ERR_TIMEOUT = ORTE_ERR_TIMEOUT,
|
||||
OSHMEM_ERR_NOT_AVAILABLE = ORTE_ERR_NOT_AVAILABLE,
|
||||
OSHMEM_ERR_PERM = ORTE_ERR_PERM,
|
||||
OSHMEM_ERR_VALUE_OUT_OF_BOUNDS = ORTE_ERR_VALUE_OUT_OF_BOUNDS,
|
||||
OSHMEM_ERR_FILE_READ_FAILURE = ORTE_ERR_FILE_READ_FAILURE,
|
||||
OSHMEM_ERR_FILE_WRITE_FAILURE = ORTE_ERR_FILE_WRITE_FAILURE,
|
||||
OSHMEM_ERR_FILE_OPEN_FAILURE = ORTE_ERR_FILE_OPEN_FAILURE,
|
||||
|
||||
OSHMEM_ERR_RECV_LESS_THAN_POSTED = ORTE_ERR_RECV_LESS_THAN_POSTED,
|
||||
OSHMEM_ERR_RECV_MORE_THAN_POSTED = ORTE_ERR_RECV_MORE_THAN_POSTED,
|
||||
OSHMEM_ERR_NO_MATCH_YET = ORTE_ERR_NO_MATCH_YET,
|
||||
OSHMEM_ERR_BUFFER = ORTE_ERR_BUFFER,
|
||||
OSHMEM_ERR_REQUEST = ORTE_ERR_REQUEST,
|
||||
OSHMEM_ERR_NO_CONNECTION_ALLOWED = ORTE_ERR_NO_CONNECTION_ALLOWED,
|
||||
OSHMEM_ERR_CONNECTION_REFUSED = ORTE_ERR_CONNECTION_REFUSED ,
|
||||
OSHMEM_ERR_CONNECTION_FAILED = ORTE_ERR_CONNECTION_FAILED,
|
||||
OSHMEM_PACK_MISMATCH = ORTE_ERR_PACK_MISMATCH,
|
||||
OSHMEM_ERR_PACK_FAILURE = ORTE_ERR_PACK_FAILURE,
|
||||
OSHMEM_ERR_UNPACK_FAILURE = ORTE_ERR_UNPACK_FAILURE,
|
||||
OSHMEM_ERR_COMM_FAILURE = ORTE_ERR_COMM_FAILURE,
|
||||
OSHMEM_UNPACK_INADEQUATE_SPACE = ORTE_ERR_UNPACK_INADEQUATE_SPACE,
|
||||
OSHMEM_UNPACK_READ_PAST_END_OF_BUFFER = ORTE_ERR_UNPACK_READ_PAST_END_OF_BUFFER,
|
||||
OSHMEM_ERR_TYPE_MISMATCH = ORTE_ERR_TYPE_MISMATCH,
|
||||
OSHMEM_ERR_COMPARE_FAILURE = ORTE_ERR_COMPARE_FAILURE,
|
||||
OSHMEM_ERR_COPY_FAILURE = ORTE_ERR_COPY_FAILURE,
|
||||
OSHMEM_ERR_UNKNOWN_DATA_TYPE = ORTE_ERR_UNKNOWN_DATA_TYPE,
|
||||
OSHMEM_ERR_DATA_TYPE_REDEF = ORTE_ERR_DATA_TYPE_REDEF,
|
||||
OSHMEM_ERR_DATA_OVERWRITE_ATTEMPT = ORTE_ERR_DATA_OVERWRITE_ATTEMPT
|
||||
};
|
||||
|
||||
|
||||
/* C datatypes */
|
||||
/*
|
||||
* SHMEM_Init_thread constants
|
||||
* Do not change the order of these without also modifying mpif.h.in.
|
||||
*/
|
||||
enum {
|
||||
SHMEM_NULL = 0,
|
||||
SHMEM_CHAR,
|
||||
SHMEM_UCHAR,
|
||||
SHMEM_SHORT,
|
||||
SHMEM_USHORT,
|
||||
SHMEM_INT,
|
||||
SHMEM_UINT,
|
||||
SHMEM_LONG,
|
||||
SHMEM_ULONG,
|
||||
SHMEM_LLONG,
|
||||
SHMEM_INT32_T,
|
||||
SHMEM_INT64_T,
|
||||
SHMEM_ULLONG,
|
||||
SHMEM_FLOAT,
|
||||
SHMEM_DOUBLE,
|
||||
SHMEM_LDOUBLE,
|
||||
|
||||
SHMEM_FINT,
|
||||
SHMEM_FINT4,
|
||||
SHMEM_FINT8
|
||||
};
|
||||
|
||||
|
||||
/*
|
||||
* Miscellaneous constants
|
||||
*/
|
||||
#define SHMEM_ANY_SOURCE -1 /* match any source rank */
|
||||
#define SHMEM_PROC_NULL -2 /* rank of null process */
|
||||
#define SHMEM_UNDEFINED -32766 /* undefined stuff */
|
||||
|
||||
|
||||
#ifndef UNREFERENCED_PARAMETER
|
||||
#define UNREFERENCED_PARAMETER(P) ((void)P)
|
||||
#endif
|
||||
|
||||
#define OSHMEM_PREDEFINED_GLOBAL(type, global) ((type) ((void *) &(global)))
|
||||
|
||||
#if OPAL_WANT_MEMCHECKER
|
||||
#define MEMCHECKER(x) do { \
|
||||
x; \
|
||||
} while(0)
|
||||
#else
|
||||
#define MEMCHECKER(x)
|
||||
#endif /* OPAL_WANT_MEMCHECKER */
|
||||
|
||||
#endif /* OSHMEM_CONSTANTS_H */
|
||||
|
||||
@@ -1,25 +0,0 @@
|
||||
/*
|
||||
* This file is autogenerated by autogen.pl. Do not edit this file by hand.
|
||||
*/
|
||||
#ifndef OSHMEM_FRAMEWORKS_H
|
||||
#define OSHMEM_FRAMEWORKS_H
|
||||
|
||||
#include <opal/mca/base/mca_base_framework.h>
|
||||
|
||||
extern mca_base_framework_t oshmem_atomic_base_framework;
|
||||
extern mca_base_framework_t oshmem_memheap_base_framework;
|
||||
extern mca_base_framework_t oshmem_scoll_base_framework;
|
||||
extern mca_base_framework_t oshmem_spml_base_framework;
|
||||
extern mca_base_framework_t oshmem_sshmem_base_framework;
|
||||
|
||||
static mca_base_framework_t *oshmem_frameworks[] = {
|
||||
&oshmem_atomic_base_framework,
|
||||
&oshmem_memheap_base_framework,
|
||||
&oshmem_scoll_base_framework,
|
||||
&oshmem_spml_base_framework,
|
||||
&oshmem_sshmem_base_framework,
|
||||
NULL
|
||||
};
|
||||
|
||||
#endif /* OSHMEM_FRAMEWORKS_H */
|
||||
|
||||
@@ -1,25 +0,0 @@
|
||||
/*
|
||||
* Copyright (c) 2013 Mellanox Technologies, Inc.
|
||||
* All rights reserved.
|
||||
* Copyright (c) 2016 Research Organization for Information Science
|
||||
* and Technology (RIST). All rights reserved.
|
||||
* $COPYRIGHT$
|
||||
*
|
||||
* Additional copyrights may follow
|
||||
*
|
||||
* $HEADER$
|
||||
*/
|
||||
#ifndef SHMEM_TYPES_H
|
||||
#define SHMEM_TYPES_H
|
||||
|
||||
|
||||
/*
|
||||
* Predefine some internal types so we dont need all the include
|
||||
* dependencies.
|
||||
*/
|
||||
|
||||
struct ompi_proc_t;
|
||||
struct oshmem_group_t;
|
||||
struct oshmem_op_t;
|
||||
|
||||
#endif
|
||||
@@ -1,30 +0,0 @@
|
||||
/*
|
||||
* Copyright (c) 2013 Mellanox Technologies, Inc.
|
||||
* All rights reserved.
|
||||
* $COPYRIGHT$
|
||||
*
|
||||
* Additional copyrights may follow
|
||||
*
|
||||
* $HEADER$
|
||||
*
|
||||
* This file should be included by any file that needs full
|
||||
* version information for the OSHMEM project
|
||||
*/
|
||||
|
||||
#ifndef OSHMEM_VERSIONS_H
|
||||
#define OSHMEM_VERSIONS_H
|
||||
|
||||
#define OSHMEM_MAJOR_VERSION 3
|
||||
#define OSHMEM_MINOR_VERSION 1
|
||||
#define OSHMEM_RELEASE_VERSION 2
|
||||
#define OSHMEM_GREEK_VERSION ""
|
||||
#define OSHMEM_WANT_REPO_REV @OSHMEM_WANT_REPO_REV@
|
||||
#define OSHMEM_REPO_REV "v3.1.2"
|
||||
#ifdef OSHMEM_VERSION
|
||||
/* If we included version.h, we want the real version, not the
|
||||
stripped (no-r number) version */
|
||||
#undef OSHMEM_VERSION
|
||||
#endif
|
||||
#define OSHMEM_VERSION "3.1.2"
|
||||
|
||||
#endif
|
||||
@@ -1,67 +0,0 @@
|
||||
/* -*- c -*-
|
||||
*
|
||||
* Copyright (c) 2013 Mellanox Technologies, Inc.
|
||||
* All rights reserved.
|
||||
* Copyright (c) 2013 Cisco Systems, Inc. All rights reserved.
|
||||
* Copyright (c) 2016 Research Organization for Information Science
|
||||
* and Technology (RIST). All rights reserved.
|
||||
* $COPYRIGHT$
|
||||
*
|
||||
* Additional copyrights may follow
|
||||
*
|
||||
* $HEADER$
|
||||
*
|
||||
* Function: - OS, CPU and compiler dependent configuration
|
||||
*/
|
||||
|
||||
#ifndef OSHMEM_CONFIG_H
|
||||
#define OSHMEM_CONFIG_H
|
||||
|
||||
/* Need to include a bunch of infrastructure from the OMPI layer */
|
||||
#include "ompi_config.h"
|
||||
|
||||
#define OSHMEM_IDENT_STRING OPAL_IDENT_STRING
|
||||
|
||||
#if defined(__WINDOWS__)
|
||||
|
||||
# if defined(_USRDLL) /* building shared libraries (.DLL) */
|
||||
# if defined(OSHMEM_EXPORTS)
|
||||
# define OSHMEM_DECLSPEC __declspec(dllexport)
|
||||
# define OSHMEM_MODULE_DECLSPEC
|
||||
# else
|
||||
# define OSHMEM_DECLSPEC __declspec(dllimport)
|
||||
# if defined(OSHMEM_MODULE_EXPORTS)
|
||||
# define OSHMEM_MODULE_DECLSPEC __declspec(dllexport)
|
||||
# else
|
||||
# define OSHMEM_MODULE_DECLSPEC __declspec(dllimport)
|
||||
# endif /* defined(OSHMEM_MODULE_EXPORTS) */
|
||||
# endif /* defined(OSHMEM_EXPORTS) */
|
||||
# else /* building static library */
|
||||
# if defined(OSHMEM_IMPORTS)
|
||||
# define OSHMEM_DECLSPEC __declspec(dllimport)
|
||||
# else
|
||||
# define OSHMEM_DECLSPEC
|
||||
# endif /* defined(OSHMEM_IMPORTS) */
|
||||
# define OSHMEM_MODULE_DECLSPEC
|
||||
# endif /* defined(_USRDLL) */
|
||||
|
||||
#else
|
||||
|
||||
# if OPAL_C_HAVE_VISIBILITY
|
||||
# ifndef OSHMEM_DECLSPEC
|
||||
# define OSHMEM_DECLSPEC __opal_attribute_visibility__("default")
|
||||
# endif
|
||||
# ifndef OSHMEM_MODULE_DECLSPEC
|
||||
# define OSHMEM_MODULE_DECLSPEC __opal_attribute_visibility__("default")
|
||||
# endif
|
||||
# else
|
||||
# ifndef OSHMEM_DECLSPEC
|
||||
# define OSHMEM_DECLSPEC
|
||||
# endif
|
||||
# ifndef OSHMEM_MODULE_DECLSPEC
|
||||
# define OSHMEM_MODULE_DECLSPEC
|
||||
# endif
|
||||
# endif
|
||||
#endif /* defined(__WINDOWS__) */
|
||||
|
||||
#endif
|
||||
@@ -1,546 +0,0 @@
|
||||
/*
|
||||
* Copyright (c) 2014-2016 Mellanox Technologies, Inc.
|
||||
* All rights reserved.
|
||||
* Copyright (c) 2014 Intel, Inc. All rights reserved
|
||||
* Copyright (c) 2016 Research Organization for Information Science
|
||||
* and Technology (RIST). All rights reserved.
|
||||
* $COPYRIGHT$
|
||||
*
|
||||
* Additional copyrights may follow
|
||||
*
|
||||
* $HEADER$
|
||||
*/
|
||||
|
||||
#ifndef PSHMEM_SHMEM_H
|
||||
#define PSHMEM_SHMEM_H
|
||||
|
||||
|
||||
#include <stddef.h> /* include for ptrdiff_t */
|
||||
#include <stdint.h> /* include for fixed width types */
|
||||
#if defined(c_plusplus) || defined(__cplusplus)
|
||||
# include <complex>
|
||||
# define OSHMEM_COMPLEX_TYPE(type) std::complex<type>
|
||||
#else
|
||||
# include <complex.h>
|
||||
# define OSHMEM_COMPLEX_TYPE(type) type complex
|
||||
#endif
|
||||
|
||||
|
||||
#ifndef OSHMEM_DECLSPEC
|
||||
# if defined(OPAL_C_HAVE_VISIBILITY) && (OPAL_C_HAVE_VISIBILITY == 1)
|
||||
# define OSHMEM_DECLSPEC __attribute__((visibility("default")))
|
||||
# else
|
||||
# define OSHMEM_DECLSPEC
|
||||
# endif
|
||||
#endif
|
||||
|
||||
#if defined(__STDC_VERSION__) && (__STDC_VERSION__ >= 201112L)
|
||||
#define OSHMEMP_HAVE_C11 1
|
||||
#else
|
||||
#define OSHMEMP_HAVE_C11 0
|
||||
#endif
|
||||
|
||||
#include <pshmemx.h>
|
||||
|
||||
#if defined(c_plusplus) || defined(__cplusplus)
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
/*
|
||||
* Profiling API
|
||||
*/
|
||||
|
||||
/*
|
||||
* Initialization routines
|
||||
*/
|
||||
OSHMEM_DECLSPEC void pshmem_init(void);
|
||||
OSHMEM_DECLSPEC void pshmem_global_exit(int status);
|
||||
|
||||
/*
|
||||
* Finalization routines
|
||||
*/
|
||||
OSHMEM_DECLSPEC void pshmem_finalize(void);
|
||||
|
||||
/*
|
||||
* Query routines
|
||||
*/
|
||||
OSHMEM_DECLSPEC int pshmem_n_pes(void);
|
||||
OSHMEM_DECLSPEC int pshmem_my_pe(void);
|
||||
|
||||
|
||||
/*
|
||||
* Accessability routines
|
||||
*/
|
||||
OSHMEM_DECLSPEC int pshmem_pe_accessible(int pe);
|
||||
OSHMEM_DECLSPEC int pshmem_addr_accessible(const void *addr, int pe);
|
||||
|
||||
/*
|
||||
* Symmetric heap routines
|
||||
*/
|
||||
OSHMEM_DECLSPEC void* pshmem_malloc(size_t size);
|
||||
OSHMEM_DECLSPEC void* pshmem_align(size_t align, size_t size);
|
||||
OSHMEM_DECLSPEC void* pshmem_realloc(void *ptr, size_t size);
|
||||
OSHMEM_DECLSPEC void pshmem_free(void* ptr);
|
||||
|
||||
/*
|
||||
* Remote pointer operations
|
||||
*/
|
||||
OSHMEM_DECLSPEC void *pshmem_ptr(const 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);
|
||||
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);
|
||||
#if OSHMEMP_HAVE_C11
|
||||
#define pshmem_p(dst, val, pe) \
|
||||
_Generic(&*(dst), \
|
||||
char*: pshmem_char_p, \
|
||||
short*: pshmem_short_p, \
|
||||
int*: pshmem_int_p, \
|
||||
long*: pshmem_long_p, \
|
||||
long long*: pshmem_longlong_p, \
|
||||
float*: pshmem_float_p, \
|
||||
double*: pshmem_double_p, \
|
||||
long double*: pshmem_longdouble_p)(dst, val, pe)
|
||||
#endif
|
||||
|
||||
/*
|
||||
* Block data put routines
|
||||
*/
|
||||
OSHMEM_DECLSPEC void pshmem_char_put(char *target, const char *source, size_t len, int pe);
|
||||
OSHMEM_DECLSPEC void pshmem_short_put(short *target, const short *source, size_t len, int pe);
|
||||
OSHMEM_DECLSPEC void pshmem_int_put(int* target, const int* source, size_t len, int pe);
|
||||
OSHMEM_DECLSPEC void pshmem_long_put(long *target, const long *source, size_t len, int pe);
|
||||
OSHMEM_DECLSPEC void pshmem_float_put(float *target, const float *source, size_t len, int pe);
|
||||
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);
|
||||
#if OSHMEMP_HAVE_C11
|
||||
#define pshmem_put(dst, src, len, pe) \
|
||||
_Generic(&*(dst), \
|
||||
char*: pshmem_char_put, \
|
||||
short*: pshmem_short_put, \
|
||||
int*: pshmem_int_put, \
|
||||
long*: pshmem_long_put, \
|
||||
long long*: pshmem_longlong_put, \
|
||||
float*: pshmem_float_put, \
|
||||
double*: pshmem_double_put, \
|
||||
long double*: pshmem_longdouble_put)(dst, src, len, pe)
|
||||
#endif
|
||||
|
||||
OSHMEM_DECLSPEC void pshmem_put8(void *target, const void *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);
|
||||
OSHMEM_DECLSPEC void pshmem_putmem(void *target, const void *source, size_t len, int pe);
|
||||
|
||||
/*
|
||||
* Strided put routines
|
||||
*/
|
||||
OSHMEM_DECLSPEC void pshmem_char_iput(char* target, const char* source, ptrdiff_t tst, ptrdiff_t sst,size_t len, int pe);
|
||||
OSHMEM_DECLSPEC void pshmem_short_iput(short* target, const short* source, ptrdiff_t tst, ptrdiff_t sst,size_t len, int pe);
|
||||
OSHMEM_DECLSPEC void pshmem_int_iput(int* target, const int* 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_float_iput(float* target, const float* source, ptrdiff_t tst, ptrdiff_t sst,size_t len, int pe);
|
||||
OSHMEM_DECLSPEC void pshmem_double_iput(double* target, const double* source, ptrdiff_t tst, ptrdiff_t sst,size_t len, int pe);
|
||||
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);
|
||||
#if OSHMEMP_HAVE_C11
|
||||
#define pshmem_iput(dst, src, tst, sst, len, pe) \
|
||||
_Generic(&*(dst), \
|
||||
char*: pshmem_char_iput, \
|
||||
short*: pshmem_short_iput, \
|
||||
int*: pshmem_int_iput, \
|
||||
long*: pshmem_long_iput, \
|
||||
long long*: pshmem_longlong_iput, \
|
||||
float*: pshmem_float_iput, \
|
||||
double*: pshmem_double_iput, \
|
||||
long double*: pshmem_longdouble_iput)(dst, src, tst, sst, len, pe)
|
||||
#endif
|
||||
|
||||
OSHMEM_DECLSPEC void pshmem_iput8(void* target, const void* 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);
|
||||
|
||||
/*
|
||||
* Nonblocking put routines
|
||||
*/
|
||||
OSHMEM_DECLSPEC void pshmem_putmem_nbi(void *target, const void *source, size_t len, int pe);
|
||||
OSHMEM_DECLSPEC void pshmem_char_put_nbi(char *target, const char *source, size_t len, int pe);
|
||||
OSHMEM_DECLSPEC void pshmem_short_put_nbi(short *target, const short *source, size_t len, int pe);
|
||||
OSHMEM_DECLSPEC void pshmem_int_put_nbi(int* target, const int* source, size_t len, int pe);
|
||||
OSHMEM_DECLSPEC void pshmem_long_put_nbi(long *target, const long *source, size_t len, int pe);
|
||||
OSHMEM_DECLSPEC void pshmem_longlong_put_nbi(long long *target, const long long *source, size_t len, int pe);
|
||||
OSHMEM_DECLSPEC void pshmem_float_put_nbi(float *target, const float *source, size_t len, int pe);
|
||||
OSHMEM_DECLSPEC void pshmem_double_put_nbi(double *target, const double *source, size_t len, int pe);
|
||||
OSHMEM_DECLSPEC void pshmem_longdouble_put_nbi(long double *target, const long double *source, size_t len, int pe);
|
||||
#if OSHMEMP_HAVE_C11
|
||||
#define pshmem_put_nbi(dst, src, len, pe) \
|
||||
_Generic(&*(dst), \
|
||||
char*: pshmem_char_put_nbi, \
|
||||
short*: pshmem_short_put_nbi, \
|
||||
int*: pshmem_int_put_nbi, \
|
||||
long*: pshmem_long_put_nbi, \
|
||||
long long*: pshmem_longlong_put_nbi, \
|
||||
float*: pshmem_float_put_nbi, \
|
||||
double*: pshmem_double_put_nbi, \
|
||||
long double*: pshmem_longdouble_put_nbi)(dst, src, len, pe)
|
||||
#endif
|
||||
|
||||
OSHMEM_DECLSPEC void pshmem_put8_nbi(void *target, const void *source, size_t len, int pe);
|
||||
OSHMEM_DECLSPEC void pshmem_put16_nbi(void *target, const void *source, size_t len, int pe);
|
||||
OSHMEM_DECLSPEC void pshmem_put32_nbi(void *target, const void *source, size_t len, int pe);
|
||||
OSHMEM_DECLSPEC void pshmem_put64_nbi(void *target, const void *source, size_t len, int pe);
|
||||
OSHMEM_DECLSPEC void pshmem_put128_nbi(void *target, const void *source, size_t len, int pe);
|
||||
|
||||
/*
|
||||
* Elemental get routines
|
||||
*/
|
||||
OSHMEM_DECLSPEC char pshmem_char_g(const char* addr, int pe);
|
||||
OSHMEM_DECLSPEC short pshmem_short_g(const short* addr, int pe);
|
||||
OSHMEM_DECLSPEC int pshmem_int_g(const int* addr, int pe);
|
||||
OSHMEM_DECLSPEC long pshmem_long_g(const long* addr, int pe);
|
||||
OSHMEM_DECLSPEC float pshmem_float_g(const float* addr, int pe);
|
||||
OSHMEM_DECLSPEC double pshmem_double_g(const double* addr, int pe);
|
||||
OSHMEM_DECLSPEC long long pshmem_longlong_g(const long long* addr, int pe);
|
||||
OSHMEM_DECLSPEC long double pshmem_longdouble_g(const long double* addr, int pe);
|
||||
#if OSHMEMP_HAVE_C11
|
||||
#define pshmem_g(addr, pe) \
|
||||
_Generic(&*(dst), \
|
||||
char*: pshmem_char_g, \
|
||||
short*: pshmem_short_g, \
|
||||
int*: pshmem_int_g, \
|
||||
long*: pshmem_long_g, \
|
||||
long long*: pshmem_longlong_g, \
|
||||
float*: pshmem_float_g, \
|
||||
double*: pshmem_double_g, \
|
||||
long double*: pshmem_longdouble_g)(addr, pe)
|
||||
#endif
|
||||
|
||||
/*
|
||||
* Block data get routines
|
||||
*/
|
||||
OSHMEM_DECLSPEC void pshmem_char_get(char *target, const char *source, size_t len, int pe);
|
||||
OSHMEM_DECLSPEC void pshmem_short_get(short *target, const short *source, size_t len, int pe);
|
||||
OSHMEM_DECLSPEC void pshmem_int_get(int *target, const int *source, size_t len, int pe);
|
||||
OSHMEM_DECLSPEC void pshmem_long_get(long *target, const long *source, size_t len, int pe);
|
||||
OSHMEM_DECLSPEC void pshmem_float_get(float *target, const float *source, size_t len, int pe);
|
||||
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);
|
||||
#if OSHMEMP_HAVE_C11
|
||||
#define pshmem_get(dst, src, len, pe) \
|
||||
_Generic(&*(dst), \
|
||||
char*: pshmem_char_get, \
|
||||
short*: pshmem_short_get, \
|
||||
int*: pshmem_int_get, \
|
||||
long*: pshmem_long_get, \
|
||||
long long*: pshmem_longlong_get, \
|
||||
float*: pshmem_float_get, \
|
||||
double*: pshmem_double_get, \
|
||||
long double*: pshmem_longdouble_get)(dst, src, len, pe)
|
||||
#endif
|
||||
|
||||
OSHMEM_DECLSPEC void pshmem_get8(void *target, const void *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);
|
||||
OSHMEM_DECLSPEC void pshmem_getmem(void *target, const void *source, size_t len, int pe);
|
||||
|
||||
/*
|
||||
* Strided get routines
|
||||
*/
|
||||
OSHMEM_DECLSPEC void pshmem_char_iget(char* target, const char* source, ptrdiff_t tst, ptrdiff_t sst,size_t len, int pe);
|
||||
OSHMEM_DECLSPEC void pshmem_short_iget(short* target, const short* source, ptrdiff_t tst, ptrdiff_t sst,size_t len, int pe);
|
||||
OSHMEM_DECLSPEC void pshmem_int_iget(int* target, const int* source, ptrdiff_t tst, ptrdiff_t sst,size_t len, int pe);
|
||||
OSHMEM_DECLSPEC void pshmem_float_iget(float* target, const float* source, ptrdiff_t tst, ptrdiff_t sst,size_t len, int pe);
|
||||
OSHMEM_DECLSPEC void pshmem_double_iget(double* target, const double* source, ptrdiff_t tst, ptrdiff_t sst,size_t len, int pe);
|
||||
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);
|
||||
#if OSHMEMP_HAVE_C11
|
||||
#define pshmem_iget(dst, src, tst, sst, len, pe) \
|
||||
_Generic(&*(dst), \
|
||||
char*: pshmem_char_iget, \
|
||||
short*: pshmem_short_iget, \
|
||||
int*: pshmem_int_iget, \
|
||||
long*: pshmem_long_iget, \
|
||||
long long*: pshmem_longlong_iget, \
|
||||
float*: pshmem_float_iget, \
|
||||
double*: pshmem_double_iget, \
|
||||
long double*: pshmem_longdouble_iget)(dst, src, tst, sst, len, pe)
|
||||
#endif
|
||||
|
||||
OSHMEM_DECLSPEC void pshmem_iget8(void* target, const void* 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);
|
||||
|
||||
/*
|
||||
* Nonblocking data get routines
|
||||
*/
|
||||
OSHMEM_DECLSPEC void pshmem_getmem_nbi(void *target, const void *source, size_t len, int pe);
|
||||
OSHMEM_DECLSPEC void pshmem_char_get_nbi(char *target, const char *source, size_t len, int pe);
|
||||
OSHMEM_DECLSPEC void pshmem_short_get_nbi(short *target, const short *source, size_t len, int pe);
|
||||
OSHMEM_DECLSPEC void pshmem_int_get_nbi(int *target, const int *source, size_t len, int pe);
|
||||
OSHMEM_DECLSPEC void pshmem_long_get_nbi(long *target, const long *source, size_t len, int pe);
|
||||
OSHMEM_DECLSPEC void pshmem_longlong_get_nbi(long long *target, const long long *source, size_t len, int pe);
|
||||
OSHMEM_DECLSPEC void pshmem_float_get_nbi(float *target, const float *source, size_t len, int pe);
|
||||
OSHMEM_DECLSPEC void pshmem_double_get_nbi(double *target, const double *source, size_t len, int pe);
|
||||
OSHMEM_DECLSPEC void pshmem_longdouble_get_nbi(long double *target, const long double *source, size_t len, int pe);
|
||||
#if OSHMEMP_HAVE_C11
|
||||
#define pshmem_get_nbi(dst, src, len, pe) \
|
||||
_Generic(&*(dst), \
|
||||
char*: pshmem_char_get_nbi, \
|
||||
short*: pshmem_short_get_nbi, \
|
||||
int*: pshmem_int_get_nbi, \
|
||||
long*: pshmem_long_get_nbi, \
|
||||
long long*: pshmem_longlong_get_nbi, \
|
||||
float*: pshmem_float_get_nbi, \
|
||||
double*: pshmem_double_get_nbi, \
|
||||
long double*: pshmem_longdouble_get_nbi)(dst, src, len, pe)
|
||||
#endif
|
||||
|
||||
OSHMEM_DECLSPEC void pshmem_get8_nbi(void *target, const void *source, size_t len, int pe);
|
||||
OSHMEM_DECLSPEC void pshmem_get16_nbi(void *target, const void *source, size_t len, int pe);
|
||||
OSHMEM_DECLSPEC void pshmem_get32_nbi(void *target, const void *source, size_t len, int pe);
|
||||
OSHMEM_DECLSPEC void pshmem_get64_nbi(void *target, const void *source, size_t len, int pe);
|
||||
OSHMEM_DECLSPEC void pshmem_get128_nbi(void *target, const void *source, size_t len, int pe);
|
||||
|
||||
/*
|
||||
* Atomic operations
|
||||
*/
|
||||
/* Atomic swap */
|
||||
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 float pshmem_float_swap(float *target, float value, int pe);
|
||||
OSHMEM_DECLSPEC double pshmem_double_swap(double *target, double value, int pe);
|
||||
#if OSHMEMP_HAVE_C11
|
||||
#define pshmem_swap(dst, val, pe) \
|
||||
_Generic(&*(dst), \
|
||||
int*: pshmem_int_swap, \
|
||||
long*: pshmem_long_swap, \
|
||||
long long*: pshmem_longlong_swap, \
|
||||
float*: pshmem_float_swap, \
|
||||
double*: pshmem_double_swap)(dst, val, pe)
|
||||
#endif
|
||||
|
||||
/* Atomic set */
|
||||
OSHMEM_DECLSPEC void pshmem_int_set(int *target, int value, int pe);
|
||||
OSHMEM_DECLSPEC void pshmem_long_set(long *target, long value, int pe);
|
||||
OSHMEM_DECLSPEC void pshmem_longlong_set(long long*target, long long value, int pe);
|
||||
OSHMEM_DECLSPEC void pshmem_float_set(float *target, float value, int pe);
|
||||
OSHMEM_DECLSPEC void pshmem_double_set(double *target, double value, int pe);
|
||||
#if OSHMEMP_HAVE_C11
|
||||
#define pshmem_set(dst, val, pe) \
|
||||
_Generic(&*(dst), \
|
||||
int*: pshmem_int_set, \
|
||||
long*: pshmem_long_set, \
|
||||
long long*: pshmem_longlong_set, \
|
||||
float*: pshmem_float_set, \
|
||||
double*: pshmem_double_set)(dst, val, pe)
|
||||
#endif
|
||||
|
||||
/* 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);
|
||||
#if OSHMEMP_HAVE_C11
|
||||
#define pshmem_cswap(dst, cond, val, pe) \
|
||||
_Generic(&*(dst), \
|
||||
int*: pshmem_int_cswap, \
|
||||
long*: pshmem_long_cswap, \
|
||||
long long*: pshmem_longlong_cswap)(dst, cond, val, pe)
|
||||
#endif
|
||||
|
||||
/* 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);
|
||||
#if OSHMEMP_HAVE_C11
|
||||
#define pshmem_fadd(dst, val, pe) \
|
||||
_Generic(&*(dst), \
|
||||
int*: pshmem_int_fadd, \
|
||||
long*: pshmem_long_fadd, \
|
||||
long long*: pshmem_longlong_fadd)(dst, val, pe)
|
||||
#endif
|
||||
|
||||
/* Atomic Fetch */
|
||||
OSHMEM_DECLSPEC int pshmem_int_fetch(const int *target, int pe);
|
||||
OSHMEM_DECLSPEC long pshmem_long_fetch(const long *target, int pe);
|
||||
OSHMEM_DECLSPEC long long pshmem_longlong_fetch(const long long *target, int pe);
|
||||
OSHMEM_DECLSPEC float pshmem_float_fetch(const float *target, int pe);
|
||||
OSHMEM_DECLSPEC double pshmem_double_fetch(const double *target, int pe);
|
||||
#if OSHMEM_HAVE_C11
|
||||
#define pshmem_fetch(dst, pe) \
|
||||
_Generic(&*(dst), \
|
||||
int*: pshmem_int_fetch, \
|
||||
long*: pshmem_long_fetch, \
|
||||
long long*: pshmem_longlong_fetch, \
|
||||
float*: pshmem_float_fetch, \
|
||||
double*: pshmem_double_fetch)(dst, pe)
|
||||
#endif
|
||||
|
||||
/* 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);
|
||||
#if OSHMEMP_HAVE_C11
|
||||
#define pshmem_finc(dst, val, pe) \
|
||||
_Generic(&*(dst), \
|
||||
int*: pshmem_int_finc, \
|
||||
long*: pshmem_long_finc, \
|
||||
long long*: pshmem_longlong_finc)(dst, val, pe)
|
||||
#endif
|
||||
|
||||
/* 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);
|
||||
#if OSHMEMP_HAVE_C11
|
||||
#define pshmem_add(dst, val, pe) \
|
||||
_Generic(&*(dst), \
|
||||
int*: pshmem_int_add, \
|
||||
long*: pshmem_long_add, \
|
||||
long long*: pshmem_longlong_add)(dst, val, pe)
|
||||
#endif
|
||||
|
||||
/* 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);
|
||||
#if OSHMEMP_HAVE_C11
|
||||
#define pshmem_inc(dst, pe) \
|
||||
_Generic(&*(dst), \
|
||||
int*: pshmem_int_inc, \
|
||||
long*: pshmem_long_inc, \
|
||||
long long*: pshmem_longlong_inc)(dst, pe)
|
||||
#endif
|
||||
/*
|
||||
* Lock functions
|
||||
*/
|
||||
OSHMEM_DECLSPEC void pshmem_set_lock(volatile long *lock);
|
||||
OSHMEM_DECLSPEC void pshmem_clear_lock(volatile long *lock);
|
||||
OSHMEM_DECLSPEC int pshmem_test_lock(volatile long *lock);
|
||||
|
||||
/*
|
||||
* P2P sync routines
|
||||
*/
|
||||
OSHMEM_DECLSPEC void pshmem_short_wait(volatile short *addr, short value);
|
||||
OSHMEM_DECLSPEC void pshmem_int_wait(volatile int *addr, int value);
|
||||
OSHMEM_DECLSPEC void pshmem_long_wait(volatile long *addr, long value);
|
||||
OSHMEM_DECLSPEC void pshmem_longlong_wait(volatile long long *addr, long long value);
|
||||
OSHMEM_DECLSPEC void pshmem_wait(volatile long *addr, long value);
|
||||
|
||||
OSHMEM_DECLSPEC void pshmem_short_wait_until(volatile short *addr, int cmp, short value);
|
||||
OSHMEM_DECLSPEC void pshmem_int_wait_until(volatile int *addr, int cmp, int value);
|
||||
OSHMEM_DECLSPEC void pshmem_long_wait_until(volatile long *addr, int cmp, long value);
|
||||
OSHMEM_DECLSPEC void pshmem_longlong_wait_until(volatile long long *addr, int cmp, long long value);
|
||||
OSHMEM_DECLSPEC void pshmem_wait_until(volatile long *addr, int cmp, long value);
|
||||
|
||||
/*
|
||||
* Barrier sync routines
|
||||
*/
|
||||
OSHMEM_DECLSPEC void pshmem_barrier(int PE_start, int logPE_stride, int PE_size, long *pSync);
|
||||
OSHMEM_DECLSPEC void pshmem_barrier_all(void);
|
||||
OSHMEM_DECLSPEC void pshmem_fence(void);
|
||||
OSHMEM_DECLSPEC void pshmem_quiet(void);
|
||||
|
||||
/*
|
||||
* Collective routines
|
||||
*/
|
||||
OSHMEM_DECLSPEC void pshmem_broadcast32(void *target, const void *source, size_t nlong, int PE_root, int PE_start, int logPE_stride, int PE_size, long *pSync);
|
||||
OSHMEM_DECLSPEC void pshmem_broadcast64(void *target, const void *source, size_t nlong, int PE_root, int PE_start, int logPE_stride, int PE_size, long *pSync);
|
||||
OSHMEM_DECLSPEC void pshmem_broadcast(void *target, const void *source, size_t nlong, int PE_root, int PE_start, int logPE_stride, int PE_size, long *pSync);
|
||||
OSHMEM_DECLSPEC void pshmem_collect32(void *target, const void *source, size_t nlong, int PE_start, int logPE_stride, int PE_size, long *pSync);
|
||||
OSHMEM_DECLSPEC void pshmem_collect64(void *target, const void *source, size_t nlong, int PE_start, int logPE_stride, int PE_size, long *pSync);
|
||||
OSHMEM_DECLSPEC void pshmem_fcollect32(void *target, const void *source, size_t nlong, int PE_start, int logPE_stride, int PE_size, long *pSync);
|
||||
OSHMEM_DECLSPEC void pshmem_fcollect64(void *target, const void *source, size_t nlong, int PE_start, int logPE_stride, int PE_size, long *pSync);
|
||||
OSHMEM_DECLSPEC void pshmem_alltoall32(void *target, const void *source, size_t nelems, int PE_start, int logPE_stride, int PE_size, long *pSync);
|
||||
OSHMEM_DECLSPEC void pshmem_alltoall64(void *target, const void *source, size_t nelems, int PE_start, int logPE_stride, int PE_size, long *pSync);
|
||||
OSHMEM_DECLSPEC void pshmem_alltoalls32(void *target, const void *source, ptrdiff_t dst, ptrdiff_t sst, size_t nelems, int PE_start, int logPE_stride, int PE_size, long *pSync);
|
||||
OSHMEM_DECLSPEC void pshmem_alltoalls64(void *target, const void *source, ptrdiff_t dst, ptrdiff_t sst, size_t nelems, int PE_start, int logPE_stride, int PE_size, long *pSync);
|
||||
|
||||
/*
|
||||
* Reduction routines
|
||||
*/
|
||||
OSHMEM_DECLSPEC void pshmem_short_and_to_all(short *target, const short *source, int nreduce, int PE_start, int logPE_stride, int PE_size, short *pWrk, long *pSync);
|
||||
OSHMEM_DECLSPEC void pshmem_int_and_to_all(int *target, const 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, const 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, const long long *source, int nreduce, int PE_start, int logPE_stride, int PE_size, long long *pWrk, long *pSync);
|
||||
|
||||
OSHMEM_DECLSPEC void pshmem_short_or_to_all(short *target, const 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, const 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, const 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, const long long *source, int nreduce, int PE_start, int logPE_stride, int PE_size, long long *pWrk, long *pSync);
|
||||
|
||||
OSHMEM_DECLSPEC void pshmem_short_xor_to_all(short *target, const 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, const 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, const 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, const long long *source, int nreduce, int PE_start, int logPE_stride, int PE_size, long long *pWrk, long *pSync);
|
||||
|
||||
OSHMEM_DECLSPEC void pshmem_short_max_to_all(short *target, const 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, const int *source, int nreduce, int PE_start, int logPE_stride, int PE_size, int *pWrk, long *pSync);
|
||||
OSHMEM_DECLSPEC void pshmem_long_max_to_all(long *target, const long *source, int nreduce, int PE_start, int logPE_stride, int PE_size, long *pWrk, long *pSync);
|
||||
OSHMEM_DECLSPEC void pshmem_longlong_max_to_all(long long *target, const long long *source, int nreduce, int PE_start, int logPE_stride, int PE_size, long long *pWrk, long *pSync);
|
||||
OSHMEM_DECLSPEC void pshmem_float_max_to_all(float *target, const 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, const 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, const long double *source, int nreduce, int PE_start, int logPE_stride, int PE_size, long double *pWrk, long *pSync);
|
||||
|
||||
OSHMEM_DECLSPEC void pshmem_short_min_to_all(short *target, const 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, const int *source, int nreduce, int PE_start, int logPE_stride, int PE_size, int *pWrk, long *pSync);
|
||||
OSHMEM_DECLSPEC void pshmem_long_min_to_all(long *target, const long *source, int nreduce, int PE_start, int logPE_stride, int PE_size, long *pWrk, long *pSync);
|
||||
OSHMEM_DECLSPEC void pshmem_longlong_min_to_all(long long *target, const long long *source, int nreduce, int PE_start, int logPE_stride, int PE_size, long long *pWrk, long *pSync);
|
||||
OSHMEM_DECLSPEC void pshmem_float_min_to_all(float *target, const 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, const 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, const long double *source, int nreduce, int PE_start, int logPE_stride, int PE_size, long double *pWrk, long *pSync);
|
||||
|
||||
OSHMEM_DECLSPEC void pshmem_short_sum_to_all(short *target, const 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, const int *source, int nreduce, int PE_start, int logPE_stride, int PE_size, int *pWrk, long *pSync);
|
||||
OSHMEM_DECLSPEC void pshmem_long_sum_to_all(long *target, const long *source, int nreduce, int PE_start, int logPE_stride, int PE_size, long *pWrk, long *pSync);
|
||||
OSHMEM_DECLSPEC void pshmem_longlong_sum_to_all(long long *target, const long long *source, int nreduce, int PE_start, int logPE_stride, int PE_size, long long *pWrk, long *pSync);
|
||||
OSHMEM_DECLSPEC void pshmem_float_sum_to_all(float *target, const float *source, int nreduce, int PE_start, int logPE_stride, int PE_size, float *pWrk, long *pSync);
|
||||
OSHMEM_DECLSPEC void pshmem_double_sum_to_all(double *target, const double *source, int nreduce, int PE_start, int logPE_stride, int PE_size, double *pWrk, long *pSync);
|
||||
OSHMEM_DECLSPEC void pshmem_longdouble_sum_to_all(long double *target, const 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, const 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, const 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_short_prod_to_all(short *target, const 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, const int *source, int nreduce, int PE_start, int logPE_stride, int PE_size, int *pWrk, long *pSync);
|
||||
OSHMEM_DECLSPEC void pshmem_long_prod_to_all(long *target, const long *source, int nreduce, int PE_start, int logPE_stride, int PE_size, long *pWrk, long *pSync);
|
||||
OSHMEM_DECLSPEC void pshmem_longlong_prod_to_all(long long *target, const long long *source, int nreduce, int PE_start, int logPE_stride, int PE_size, long long *pWrk, long *pSync);
|
||||
OSHMEM_DECLSPEC void pshmem_float_prod_to_all(float *target, const float *source, int nreduce, int PE_start, int logPE_stride, int PE_size, float *pWrk, long *pSync);
|
||||
OSHMEM_DECLSPEC void pshmem_double_prod_to_all(double *target, const double *source, int nreduce, int PE_start, int logPE_stride, int PE_size, double *pWrk, long *pSync);
|
||||
OSHMEM_DECLSPEC void pshmem_longdouble_prod_to_all(long double *target, const 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, const 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, const OSHMEM_COMPLEX_TYPE(double) *source, int nreduce, int PE_start, int logPE_stride, int PE_size, OSHMEM_COMPLEX_TYPE(double) *pWrk, long *pSync);
|
||||
|
||||
/*
|
||||
* Platform specific cache management routines
|
||||
*/
|
||||
OSHMEM_DECLSPEC void pshmem_udcflush(void);
|
||||
OSHMEM_DECLSPEC void pshmem_udcflush_line(void* target);
|
||||
OSHMEM_DECLSPEC void pshmem_set_cache_inv(void);
|
||||
OSHMEM_DECLSPEC void pshmem_set_cache_line_inv(void* target);
|
||||
OSHMEM_DECLSPEC void pshmem_clear_cache_inv(void);
|
||||
OSHMEM_DECLSPEC void pshmem_clear_cache_line_inv(void* target);
|
||||
|
||||
#if defined(c_plusplus) || defined(__cplusplus)
|
||||
}
|
||||
#endif
|
||||
|
||||
|
||||
#endif /* PSHMEM_SHMEM_H */
|
||||
@@ -1,220 +0,0 @@
|
||||
/*
|
||||
* 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
|
||||
|
||||
|
||||
/*
|
||||
* Legacy API
|
||||
* old init/destruct functions - not in the open shmem spec but still supported
|
||||
*/
|
||||
OSHMEM_DECLSPEC void pstart_pes(int npes);
|
||||
|
||||
OSHMEM_DECLSPEC int p_num_pes(void);
|
||||
OSHMEM_DECLSPEC int p_my_pe(void);
|
||||
|
||||
OSHMEM_DECLSPEC void* pshmalloc(size_t size);
|
||||
OSHMEM_DECLSPEC void* pshmemalign(size_t align, size_t size);
|
||||
OSHMEM_DECLSPEC void* pshrealloc(void *ptr, size_t size);
|
||||
OSHMEM_DECLSPEC void pshfree(void* ptr);
|
||||
|
||||
OSHMEM_DECLSPEC void pshmem_char_put(char *target, const char *source, size_t len, int pe);
|
||||
OSHMEM_DECLSPEC void pshmem_char_get(char *target, const char *source, size_t len, int pe);
|
||||
|
||||
|
||||
/*
|
||||
* All OpenSHMEM extension APIs that are not part of this specification must be defined in the shmemx.h include
|
||||
* file. These extensions shall use the shmemx_ prefix for all routine, variable, and constant names.
|
||||
*/
|
||||
|
||||
/*
|
||||
* Elemental put routines
|
||||
*/
|
||||
OSHMEM_DECLSPEC void pshmemx_int16_p(int16_t* addr, int16_t value, int pe);
|
||||
OSHMEM_DECLSPEC void pshmemx_int32_p(int32_t* addr, int32_t value, int pe);
|
||||
OSHMEM_DECLSPEC void pshmemx_int64_p(int64_t* addr, int64_t value, int pe);
|
||||
|
||||
/*
|
||||
* Block data put routines
|
||||
*/
|
||||
|
||||
/*
|
||||
* Strided put routines
|
||||
*/
|
||||
|
||||
/*
|
||||
* Elemental get routines
|
||||
*/
|
||||
OSHMEM_DECLSPEC int16_t pshmemx_int16_g(const int16_t* addr, int pe);
|
||||
OSHMEM_DECLSPEC int32_t pshmemx_int32_g(const int32_t* addr, int pe);
|
||||
OSHMEM_DECLSPEC int64_t pshmemx_int64_g(const int64_t* addr, int pe);
|
||||
|
||||
/*
|
||||
* Block data get routines
|
||||
*/
|
||||
|
||||
/*
|
||||
* Strided get routines
|
||||
*/
|
||||
|
||||
/*
|
||||
* Atomic operations
|
||||
*/
|
||||
/* Atomic swap */
|
||||
OSHMEM_DECLSPEC int32_t pshmemx_int32_swap(int32_t *target, int32_t value, int pe);
|
||||
OSHMEM_DECLSPEC int64_t pshmemx_int64_swap(int64_t *target, int64_t value, int pe);
|
||||
|
||||
/*Atomic set */
|
||||
OSHMEM_DECLSPEC void pshmemx_int32_set(int32_t *target, int32_t value, int pe);
|
||||
OSHMEM_DECLSPEC void pshmemx_int64_set(int64_t *target, int64_t value, int pe);
|
||||
|
||||
/* Atomic conditional swap */
|
||||
OSHMEM_DECLSPEC int32_t pshmemx_int32_cswap(int32_t *target, int32_t cond, int32_t value, int pe);
|
||||
OSHMEM_DECLSPEC int64_t pshmemx_int64_cswap(int64_t *target, int64_t cond, int64_t value, int pe);
|
||||
|
||||
/* Atomic Fetch&Add */
|
||||
OSHMEM_DECLSPEC int32_t pshmemx_int32_fadd(int32_t *target, int32_t value, int pe);
|
||||
OSHMEM_DECLSPEC int64_t pshmemx_int64_fadd(int64_t *target, int64_t value, int pe);
|
||||
|
||||
/* Atomic Fetch */
|
||||
OSHMEM_DECLSPEC int32_t pshmemx_int32_fetch(const int32_t *target, int pe);
|
||||
OSHMEM_DECLSPEC int64_t pshmemx_int64_fetch(const int64_t *target, int pe);
|
||||
|
||||
/* Atomic Fetch&Inc */
|
||||
OSHMEM_DECLSPEC int32_t pshmemx_int32_finc(int32_t *target, int pe);
|
||||
OSHMEM_DECLSPEC int64_t pshmemx_int64_finc(int64_t *target, int pe);
|
||||
|
||||
/* Atomic Add*/
|
||||
OSHMEM_DECLSPEC void pshmemx_int32_add(int32_t *target, int32_t value, int pe);
|
||||
OSHMEM_DECLSPEC void pshmemx_int64_add(int64_t *target, int64_t value, int pe);
|
||||
|
||||
/* Atomic Inc */
|
||||
OSHMEM_DECLSPEC void pshmemx_int32_inc(int32_t *target, int pe);
|
||||
OSHMEM_DECLSPEC void pshmemx_int64_inc(int64_t *target, int pe);
|
||||
|
||||
/*
|
||||
* P2P sync routines
|
||||
*/
|
||||
OSHMEM_DECLSPEC void pshmemx_int32_wait(int32_t *addr, int32_t value);
|
||||
OSHMEM_DECLSPEC void pshmemx_int64_wait(int64_t *addr, int64_t value);
|
||||
|
||||
OSHMEM_DECLSPEC void pshmemx_int32_wait_until(int32_t *addr, int cmp, int32_t value);
|
||||
OSHMEM_DECLSPEC void pshmemx_int64_wait_until(int64_t *addr, int cmp, int64_t value);
|
||||
|
||||
/*
|
||||
* Reduction routines
|
||||
*/
|
||||
OSHMEM_DECLSPEC void pshmemx_int16_and_to_all(int16_t *target, const int16_t *source, int nreduce, int PE_start, int logPE_stride, int PE_size, int16_t *pWrk, long *pSync);
|
||||
OSHMEM_DECLSPEC void pshmemx_int32_and_to_all(int32_t *target, const int32_t *source, int nreduce, int PE_start, int logPE_stride, int PE_size, int32_t *pWrk, long *pSync);
|
||||
OSHMEM_DECLSPEC void pshmemx_int64_and_to_all(int64_t *target, const int64_t *source, int nreduce, int PE_start, int logPE_stride, int PE_size, int64_t *pWrk, long *pSync);
|
||||
|
||||
OSHMEM_DECLSPEC void pshmemx_int16_or_to_all(int16_t *target, const int16_t *source, int nreduce, int PE_start, int logPE_stride, int PE_size, int16_t *pWrk, long *pSync);
|
||||
OSHMEM_DECLSPEC void pshmemx_int32_or_to_all(int32_t *target, const int32_t *source, int nreduce, int PE_start, int logPE_stride, int PE_size, int32_t *pWrk, long *pSync);
|
||||
OSHMEM_DECLSPEC void pshmemx_int64_or_to_all(int64_t *target, const int64_t *source, int nreduce, int PE_start, int logPE_stride, int PE_size, int64_t *pWrk, long *pSync);
|
||||
|
||||
OSHMEM_DECLSPEC void pshmemx_int16_xor_to_all(int16_t *target, const int16_t *source, int nreduce, int PE_start, int logPE_stride, int PE_size, int16_t *pWrk, long *pSync);
|
||||
OSHMEM_DECLSPEC void pshmemx_int32_xor_to_all(int32_t *target, const int32_t *source, int nreduce, int PE_start, int logPE_stride, int PE_size, int32_t *pWrk, long *pSync);
|
||||
OSHMEM_DECLSPEC void pshmemx_int64_xor_to_all(int64_t *target, const int64_t *source, int nreduce, int PE_start, int logPE_stride, int PE_size, int64_t *pWrk, long *pSync);
|
||||
|
||||
OSHMEM_DECLSPEC void pshmemx_int16_max_to_all(int16_t *target, const int16_t *source, int nreduce, int PE_start, int logPE_stride, int PE_size, int16_t *pWrk, long *pSync);
|
||||
OSHMEM_DECLSPEC void pshmemx_int32_max_to_all(int32_t *target, const int32_t *source, int nreduce, int PE_start, int logPE_stride, int PE_size, int32_t *pWrk, long *pSync);
|
||||
OSHMEM_DECLSPEC void pshmemx_int64_max_to_all(int64_t *target, const int64_t *source, int nreduce, int PE_start, int logPE_stride, int PE_size, int64_t *pWrk, long *pSync);
|
||||
|
||||
OSHMEM_DECLSPEC void pshmemx_int16_min_to_all(int16_t *target, const int16_t *source, int nreduce, int PE_start, int logPE_stride, int PE_size, int16_t *pWrk, long *pSync);
|
||||
OSHMEM_DECLSPEC void pshmemx_int32_min_to_all(int32_t *target, const int32_t *source, int nreduce, int PE_start, int logPE_stride, int PE_size, int32_t *pWrk, long *pSync);
|
||||
OSHMEM_DECLSPEC void pshmemx_int64_min_to_all(int64_t *target, const int64_t *source, int nreduce, int PE_start, int logPE_stride, int PE_size, int64_t *pWrk, long *pSync);
|
||||
|
||||
OSHMEM_DECLSPEC void pshmemx_int16_sum_to_all(int16_t *target, const int16_t *source, int nreduce, int PE_start, int logPE_stride, int PE_size, int16_t *pWrk, long *pSync);
|
||||
OSHMEM_DECLSPEC void pshmemx_int32_sum_to_all(int32_t *target, const int32_t *source, int nreduce, int PE_start, int logPE_stride, int PE_size, int32_t *pWrk, long *pSync);
|
||||
OSHMEM_DECLSPEC void pshmemx_int64_sum_to_all(int64_t *target, const int64_t *source, int nreduce, int PE_start, int logPE_stride, int PE_size, int64_t *pWrk, long *pSync);
|
||||
|
||||
OSHMEM_DECLSPEC void pshmemx_int16_prod_to_all(int16_t *target, const int16_t *source, int nreduce, int PE_start, int logPE_stride, int PE_size, int16_t *pWrk, long *pSync);
|
||||
OSHMEM_DECLSPEC void pshmemx_int32_prod_to_all(int32_t *target, const int32_t *source, int nreduce, int PE_start, int logPE_stride, int PE_size, int32_t *pWrk, long *pSync);
|
||||
OSHMEM_DECLSPEC void pshmemx_int64_prod_to_all(int64_t *target, const int64_t *source, int nreduce, int PE_start, int logPE_stride, int PE_size, int64_t *pWrk, long *pSync);
|
||||
|
||||
/*
|
||||
* Backward compatibility section
|
||||
*/
|
||||
#define pshmem_int16_p pshmemx_int16_p
|
||||
#define pshmem_int32_p pshmemx_int32_p
|
||||
#define pshmem_int64_p pshmemx_int64_p
|
||||
|
||||
#define pshmem_int16_g pshmemx_int16_g
|
||||
#define pshmem_int32_g pshmemx_int32_g
|
||||
#define pshmem_int64_g pshmemx_int64_g
|
||||
|
||||
#define pshmem_int32_swap pshmemx_int32_swap
|
||||
#define pshmem_int64_swap pshmemx_int64_swap
|
||||
|
||||
#define pshmem_int32_set pshmemx_int32_set
|
||||
#define pshmem_int64_set pshmemx_int64_set
|
||||
|
||||
#define pshmem_int32_cswap pshmemx_int32_cswap
|
||||
#define pshmem_int64_cswap pshmemx_int64_cswap
|
||||
|
||||
#define pshmem_int32_fadd pshmemx_int32_fadd
|
||||
#define pshmem_int64_fadd pshmemx_int64_fadd
|
||||
|
||||
#define pshmem_int32_fetch pshmemx_int32_fetch
|
||||
#define pshmem_int64_fetch pshmemx_int64_fetch
|
||||
|
||||
#define pshmem_int32_finc pshmemx_int32_finc
|
||||
#define pshmem_int64_finc pshmemx_int64_finc
|
||||
|
||||
#define pshmem_int32_add pshmemx_int32_add
|
||||
#define pshmem_int64_add pshmemx_int64_add
|
||||
|
||||
#define pshmem_int32_inc pshmemx_int32_inc
|
||||
#define pshmem_int64_inc pshmemx_int64_inc
|
||||
|
||||
#define pshmem_int32_wait pshmemx_int32_wait
|
||||
#define pshmem_int64_wait pshmemx_int64_wait
|
||||
#define pshmem_int32_wait_until pshmemx_int32_wait_until
|
||||
#define pshmem_int64_wait_until pshmemx_int64_wait_until
|
||||
|
||||
#define pshmem_int16_and_to_all pshmemx_int16_and_to_all
|
||||
#define pshmem_int32_and_to_all pshmemx_int32_and_to_all
|
||||
#define pshmem_int64_and_to_all pshmemx_int64_and_to_all
|
||||
|
||||
#define pshmem_int16_or_to_all pshmemx_int16_or_to_all
|
||||
#define pshmem_int32_or_to_all pshmemx_int32_or_to_all
|
||||
#define pshmem_int64_or_to_all pshmemx_int64_or_to_all
|
||||
|
||||
#define pshmem_int16_xor_to_all pshmemx_int16_xor_to_all
|
||||
#define pshmem_int32_xor_to_all pshmemx_int32_xor_to_all
|
||||
#define pshmem_int64_xor_to_all pshmemx_int64_xor_to_all
|
||||
|
||||
#define pshmem_int16_max_to_all pshmemx_int16_max_to_all
|
||||
#define pshmem_int32_max_to_all pshmemx_int32_max_to_all
|
||||
#define pshmem_int64_max_to_all pshmemx_int64_max_to_all
|
||||
|
||||
#define pshmem_int16_min_to_all pshmemx_int16_min_to_all
|
||||
#define pshmem_int32_min_to_all pshmemx_int32_min_to_all
|
||||
#define pshmem_int64_min_to_all pshmemx_int64_min_to_all
|
||||
|
||||
#define pshmem_int16_sum_to_all pshmemx_int16_sum_to_all
|
||||
#define pshmem_int32_sum_to_all pshmemx_int32_sum_to_all
|
||||
#define pshmem_int64_sum_to_all pshmemx_int64_sum_to_all
|
||||
|
||||
#define pshmem_int16_prod_to_all pshmemx_int16_prod_to_all
|
||||
#define pshmem_int32_prod_to_all pshmemx_int32_prod_to_all
|
||||
#define pshmem_int64_prod_to_all pshmemx_int64_prod_to_all
|
||||
|
||||
#if defined(c_plusplus) || defined(__cplusplus)
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif /* PSHMEM_SHMEMX_H */
|
||||
@@ -1,47 +0,0 @@
|
||||
/* oshmem/include/shmem-compat.h. This file contains OpenSHMEM lagacy API */
|
||||
/*
|
||||
* Copyright (c) 2014-2015 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
|
||||
* old init/destruct functions - not in the open shmem spec but still supported
|
||||
*/
|
||||
OSHMEM_DECLSPEC int num_pes(void);
|
||||
OSHMEM_DECLSPEC int my_pe(void);
|
||||
|
||||
OSHMEM_DECLSPEC void start_pes(int npes);
|
||||
|
||||
OSHMEM_DECLSPEC int _num_pes(void);
|
||||
OSHMEM_DECLSPEC int _my_pe(void);
|
||||
|
||||
OSHMEM_DECLSPEC void* shmalloc(size_t size);
|
||||
OSHMEM_DECLSPEC void* shmemalign(size_t align, size_t size);
|
||||
OSHMEM_DECLSPEC void* shrealloc(void *ptr, size_t size);
|
||||
OSHMEM_DECLSPEC void shfree(void* ptr);
|
||||
|
||||
OSHMEM_DECLSPEC void shmem_char_put(char *target, const char *source, size_t len, int pe);
|
||||
OSHMEM_DECLSPEC void shmem_char_get(char *target, const char *source, size_t len, int pe);
|
||||
|
||||
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 */
|
||||
@@ -1,65 +0,0 @@
|
||||
! Emacs: -*- mode: fortran; -*-
|
||||
!
|
||||
! Copyright (c) 2013 Mellanox Technologies, Inc.
|
||||
! All rights reserved.
|
||||
! Copyright (c) 2014 Cisco Systems, Inc. All rights reserved.
|
||||
! $COPYRIGHT$
|
||||
!
|
||||
! Additional copyrights may follow
|
||||
!
|
||||
! $HEADER$
|
||||
!
|
||||
|
||||
!
|
||||
! TODO: exact values should be found during configuration
|
||||
!
|
||||
integer SHMEM_MAJOR_VERSION
|
||||
parameter ( SHMEM_MAJOR_VERSION = 1 )
|
||||
|
||||
integer SHMEM_MINOR_VERSION
|
||||
parameter ( SHMEM_MINOR_VERSION = 3 )
|
||||
|
||||
integer SHMEM_MAX_NAME_LEN
|
||||
parameter ( SHMEM_MAX_NAME_LEN = 256-1 )
|
||||
|
||||
character(LEN = SHMEM_MAX_NAME_LEN) SHMEM_VENDOR_STRING
|
||||
parameter ( SHMEM_VENDOR_STRING = "http://www.open-mpi.org/" )
|
||||
|
||||
integer SHMEM_BARRIER_SYNC_SIZE
|
||||
parameter ( SHMEM_BARRIER_SYNC_SIZE = 4 )
|
||||
|
||||
integer SHMEM_BCAST_SYNC_SIZE
|
||||
parameter ( SHMEM_BCAST_SYNC_SIZE = 8 )
|
||||
|
||||
integer SHMEM_COLLECT_SYNC_SIZE
|
||||
parameter ( SHMEM_COLLECT_SYNC_SIZE = 8 )
|
||||
|
||||
integer SHMEM_REDUCE_SYNC_SIZE
|
||||
parameter ( SHMEM_REDUCE_SYNC_SIZE = 8 )
|
||||
|
||||
integer SHMEM_SYNC_VALUE
|
||||
parameter ( SHMEM_SYNC_VALUE = -1 )
|
||||
|
||||
integer SHMEM_REDUCE_MIN_WRKDATA_SIZE
|
||||
parameter ( SHMEM_REDUCE_MIN_WRKDATA_SIZE = 8 )
|
||||
|
||||
!
|
||||
! waits
|
||||
!
|
||||
integer SHMEM_CMP_EQ
|
||||
parameter ( SHMEM_CMP_EQ = 0 )
|
||||
integer SHMEM_CMP_NE
|
||||
parameter ( SHMEM_CMP_NE = 1 )
|
||||
integer SHMEM_CMP_GT
|
||||
parameter ( SHMEM_CMP_GT = 2 )
|
||||
integer SHMEM_CMP_LE
|
||||
parameter ( SHMEM_CMP_LE = 3 )
|
||||
integer SHMEM_CMP_LT
|
||||
parameter ( SHMEM_CMP_LT = 4 )
|
||||
integer SHMEM_CMP_GE
|
||||
parameter ( SHMEM_CMP_GE = 5 )
|
||||
|
||||
logical shmem_pe_accessible
|
||||
logical shmem_addr_accessible
|
||||
|
||||
integer*8 shmem_ptr
|
||||
@@ -1,635 +0,0 @@
|
||||
/* oshmem/include/shmem.h. Generated from shmem.h.in by configure. */
|
||||
/*
|
||||
* Copyright (c) 2014-2016 Mellanox Technologies, Inc.
|
||||
* All rights reserved.
|
||||
* Copyright (c) 2014 Intel, Inc. All rights reserved
|
||||
* Copyright (c) 2016 Research Organization for Information Science
|
||||
* and Technology (RIST). All rights reserved.
|
||||
* Copyright (c) 2017 Cisco Systems, Inc. All rights reserved.
|
||||
* $COPYRIGHT$
|
||||
*
|
||||
* Additional copyrights may follow
|
||||
*
|
||||
* $HEADER$
|
||||
*/
|
||||
|
||||
#ifndef OSHMEM_SHMEM_H
|
||||
#define OSHMEM_SHMEM_H
|
||||
|
||||
|
||||
#include <stddef.h> /* include for ptrdiff_t */
|
||||
#include <stdint.h> /* include for fixed width types */
|
||||
#if defined(c_plusplus) || defined(__cplusplus)
|
||||
# include <complex>
|
||||
# define OSHMEM_COMPLEX_TYPE(type) std::complex<type>
|
||||
#else
|
||||
# include <complex.h>
|
||||
# define OSHMEM_COMPLEX_TYPE(type) type complex
|
||||
#endif
|
||||
|
||||
/*
|
||||
* SHMEM version
|
||||
*/
|
||||
#define OSHMEM_MAJOR_VERSION 3
|
||||
#define OSHMEM_MINOR_VERSION 1
|
||||
#define OSHMEM_RELEASE_VERSION 2
|
||||
|
||||
|
||||
#ifndef OSHMEM_DECLSPEC
|
||||
# if defined(OPAL_C_HAVE_VISIBILITY) && (OPAL_C_HAVE_VISIBILITY == 1)
|
||||
# define OSHMEM_DECLSPEC __attribute__((visibility("default")))
|
||||
# else
|
||||
# define OSHMEM_DECLSPEC
|
||||
# endif
|
||||
#endif
|
||||
|
||||
#if defined(__STDC_VERSION__) && (__STDC_VERSION__ >= 201112L)
|
||||
#define OSHMEM_HAVE_C11 1
|
||||
#else
|
||||
#define OSHMEM_HAVE_C11 0
|
||||
#endif
|
||||
|
||||
#include <shmem-compat.h>
|
||||
|
||||
#if defined(c_plusplus) || defined(__cplusplus)
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
|
||||
/*
|
||||
* OpenSHMEM API (www.openshmem.org)
|
||||
*/
|
||||
|
||||
/*
|
||||
* Environment variables
|
||||
*/
|
||||
|
||||
/* Following environment variables are Mellanox extension */
|
||||
|
||||
/* size of symmetric heap in bytes.
|
||||
* Can be qualified with the letter 'K', 'M', 'G' or 'T'
|
||||
*/
|
||||
#define SHMEM_HEAP_SIZE "SHMEM_SYMMETRIC_HEAP_SIZE"
|
||||
|
||||
/*
|
||||
* Type of allocator used by symmetric heap
|
||||
*/
|
||||
#define SHMEM_HEAP_TYPE "SHMEM_SYMMETRIC_HEAP_ALLOCATOR"
|
||||
|
||||
/*
|
||||
* Constants and definitions
|
||||
*/
|
||||
#define SHMEM_MAJOR_VERSION 1
|
||||
#define SHMEM_MINOR_VERSION 3
|
||||
#define SHMEM_VENDOR_STRING "http://www.open-mpi.org/"
|
||||
#define SHMEM_MAX_NAME_LEN 256
|
||||
|
||||
/*
|
||||
* Deprecated (but still valid) names
|
||||
*/
|
||||
#define _SHMEM_MAJOR_VERSION SHMEM_MAJOR_VERSION
|
||||
#define _SHMEM_MINOR_VERSION SHMEM_MINOR_VERSION
|
||||
#define _SHMEM_MAX_NAME_LEN SHMEM_MAX_NAME_LEN
|
||||
|
||||
#ifndef OSHMEM_SPEC_VERSION
|
||||
#define OSHMEM_SPEC_VERSION (SHMEM_MAJOR_VERSION * 10000 + SHMEM_MINOR_VERSION * 100)
|
||||
#endif
|
||||
|
||||
enum shmem_wait_ops {
|
||||
SHMEM_CMP_EQ,
|
||||
SHMEM_CMP_NE,
|
||||
SHMEM_CMP_GT,
|
||||
SHMEM_CMP_LE,
|
||||
SHMEM_CMP_LT,
|
||||
SHMEM_CMP_GE
|
||||
};
|
||||
|
||||
/*
|
||||
* Deprecated (but still valid) names
|
||||
*/
|
||||
#define _SHMEM_CMP_EQ SHMEM_CMP_EQ
|
||||
#define _SHMEM_CMP_NE SHMEM_CMP_NE
|
||||
#define _SHMEM_CMP_GT SHMEM_CMP_GT
|
||||
#define _SHMEM_CMP_LE SHMEM_CMP_LE
|
||||
#define _SHMEM_CMP_LT SHMEM_CMP_LT
|
||||
#define _SHMEM_CMP_GE SHMEM_CMP_GE
|
||||
|
||||
#define _SHMEM_BARRIER_SYNC_SIZE (1)
|
||||
#define _SHMEM_BCAST_SYNC_SIZE (1 + _SHMEM_BARRIER_SYNC_SIZE)
|
||||
#define _SHMEM_COLLECT_SYNC_SIZE (1 + _SHMEM_BCAST_SYNC_SIZE)
|
||||
#define _SHMEM_REDUCE_SYNC_SIZE (1 + _SHMEM_BCAST_SYNC_SIZE)
|
||||
#define _SHMEM_ALLTOALL_SYNC_SIZE (_SHMEM_BARRIER_SYNC_SIZE)
|
||||
#define _SHMEM_ALLTOALLS_SYNC_SIZE (_SHMEM_BARRIER_SYNC_SIZE)
|
||||
#define _SHMEM_REDUCE_MIN_WRKDATA_SIZE (1)
|
||||
#define _SHMEM_SYNC_VALUE (-1)
|
||||
|
||||
#define SHMEM_BARRIER_SYNC_SIZE _SHMEM_BARRIER_SYNC_SIZE
|
||||
#define SHMEM_BCAST_SYNC_SIZE _SHMEM_BCAST_SYNC_SIZE
|
||||
#define SHMEM_COLLECT_SYNC_SIZE _SHMEM_COLLECT_SYNC_SIZE
|
||||
#define SHMEM_REDUCE_SYNC_SIZE _SHMEM_REDUCE_SYNC_SIZE
|
||||
#define SHMEM_ALLTOALL_SYNC_SIZE _SHMEM_ALLTOALL_SYNC_SIZE
|
||||
#define SHMEM_ALLTOALLS_SYNC_SIZE _SHMEM_ALLTOALLS_SYNC_SIZE
|
||||
#define SHMEM_REDUCE_MIN_WRKDATA_SIZE _SHMEM_REDUCE_MIN_WRKDATA_SIZE
|
||||
#define SHMEM_SYNC_VALUE _SHMEM_SYNC_VALUE
|
||||
|
||||
|
||||
/*
|
||||
* Initialization routines
|
||||
*/
|
||||
OSHMEM_DECLSPEC void shmem_init(void);
|
||||
OSHMEM_DECLSPEC void shmem_finalize(void);
|
||||
OSHMEM_DECLSPEC void shmem_global_exit(int status);
|
||||
|
||||
/*
|
||||
* Query routines
|
||||
*/
|
||||
OSHMEM_DECLSPEC int shmem_n_pes(void);
|
||||
OSHMEM_DECLSPEC int shmem_my_pe(void);
|
||||
|
||||
/*
|
||||
* Info routines
|
||||
*/
|
||||
OSHMEM_DECLSPEC void shmem_info_get_version(int *major, int *minor);
|
||||
OSHMEM_DECLSPEC void shmem_info_get_name(char *name);
|
||||
|
||||
/*
|
||||
* Accessability routines
|
||||
*/
|
||||
OSHMEM_DECLSPEC int shmem_pe_accessible(int pe);
|
||||
OSHMEM_DECLSPEC int shmem_addr_accessible(const void *addr, int pe);
|
||||
|
||||
/*
|
||||
* Symmetric heap routines
|
||||
*/
|
||||
OSHMEM_DECLSPEC void* shmem_malloc(size_t size);
|
||||
OSHMEM_DECLSPEC void* shmem_align(size_t align, size_t size);
|
||||
OSHMEM_DECLSPEC void* shmem_realloc(void *ptr, size_t size);
|
||||
OSHMEM_DECLSPEC void shmem_free(void* ptr);
|
||||
|
||||
/*
|
||||
* Remote pointer operations
|
||||
*/
|
||||
OSHMEM_DECLSPEC void *shmem_ptr(const 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);
|
||||
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);
|
||||
#if OSHMEM_HAVE_C11
|
||||
#define shmem_p(dst, val, pe) \
|
||||
_Generic(&*(dst), \
|
||||
char*: shmem_char_p, \
|
||||
short*: shmem_short_p, \
|
||||
int*: shmem_int_p, \
|
||||
long*: shmem_long_p, \
|
||||
long long*: shmem_longlong_p, \
|
||||
float*: shmem_float_p, \
|
||||
double*: shmem_double_p, \
|
||||
long double*: shmem_longdouble_p)(dst, val, pe)
|
||||
#endif
|
||||
|
||||
/*
|
||||
* Block data put routines
|
||||
*/
|
||||
OSHMEM_DECLSPEC void shmem_char_put(char *target, const char *source, size_t len, int pe);
|
||||
OSHMEM_DECLSPEC void shmem_short_put(short *target, const short *source, size_t len, int pe);
|
||||
OSHMEM_DECLSPEC void shmem_int_put(int* target, const int* source, size_t len, int pe);
|
||||
OSHMEM_DECLSPEC void shmem_long_put(long *target, const long *source, size_t len, int pe);
|
||||
OSHMEM_DECLSPEC void shmem_float_put(float *target, const float *source, size_t len, int pe);
|
||||
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);
|
||||
#if OSHMEM_HAVE_C11
|
||||
#define shmem_put(dst, src, len, pe) \
|
||||
_Generic(&*(dst), \
|
||||
char*: shmem_char_put, \
|
||||
short*: shmem_short_put, \
|
||||
int*: shmem_int_put, \
|
||||
long*: shmem_long_put, \
|
||||
long long*: shmem_longlong_put, \
|
||||
float*: shmem_float_put, \
|
||||
double*: shmem_double_put, \
|
||||
long double*: shmem_longdouble_put)(dst, src, len, pe)
|
||||
#endif
|
||||
|
||||
OSHMEM_DECLSPEC void shmem_put8(void *target, const void *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);
|
||||
OSHMEM_DECLSPEC void shmem_putmem(void *target, const void *source, size_t len, int pe);
|
||||
|
||||
|
||||
/*
|
||||
* Strided put routines
|
||||
*/
|
||||
OSHMEM_DECLSPEC void shmem_char_iput(char* target, const char* source, ptrdiff_t tst, ptrdiff_t sst,size_t len, int pe);
|
||||
OSHMEM_DECLSPEC void shmem_short_iput(short* target, const short* source, ptrdiff_t tst, ptrdiff_t sst,size_t len, int pe);
|
||||
OSHMEM_DECLSPEC void shmem_int_iput(int* target, const int* 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_float_iput(float* target, const float* source, ptrdiff_t tst, ptrdiff_t sst,size_t len, int pe);
|
||||
OSHMEM_DECLSPEC void shmem_double_iput(double* target, const double* source, ptrdiff_t tst, ptrdiff_t sst,size_t len, int pe);
|
||||
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);
|
||||
#if OSHMEM_HAVE_C11
|
||||
#define shmem_iput(dst, src, tst, sst, len, pe) \
|
||||
_Generic(&*(dst), \
|
||||
char*: shmem_char_iput, \
|
||||
short*: shmem_short_iput, \
|
||||
int*: shmem_int_iput, \
|
||||
long*: shmem_long_iput, \
|
||||
long long*: shmem_longlong_iput, \
|
||||
float*: shmem_float_iput, \
|
||||
double*: shmem_double_iput, \
|
||||
long double*: shmem_longdouble_iput)(dst, src, tst, sst, len, pe)
|
||||
#endif
|
||||
|
||||
OSHMEM_DECLSPEC void shmem_iput8(void* target, const void* 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);
|
||||
|
||||
/*
|
||||
* Nonblocking put routines
|
||||
*/
|
||||
OSHMEM_DECLSPEC void shmem_char_put_nbi(char *target, const char *source, size_t len, int pe);
|
||||
OSHMEM_DECLSPEC void shmem_short_put_nbi(short *target, const short *source, size_t len, int pe);
|
||||
OSHMEM_DECLSPEC void shmem_int_put_nbi(int* target, const int* source, size_t len, int pe);
|
||||
OSHMEM_DECLSPEC void shmem_long_put_nbi(long *target, const long *source, size_t len, int pe);
|
||||
OSHMEM_DECLSPEC void shmem_longlong_put_nbi(long long *target, const long long *source, size_t len, int pe);
|
||||
OSHMEM_DECLSPEC void shmem_float_put_nbi(float *target, const float *source, size_t len, int pe);
|
||||
OSHMEM_DECLSPEC void shmem_double_put_nbi(double *target, const double *source, size_t len, int pe);
|
||||
OSHMEM_DECLSPEC void shmem_longdouble_put_nbi(long double *target, const long double *source, size_t len, int pe);
|
||||
#if OSHMEM_HAVE_C11
|
||||
#define shmem_put_nbi(dst, src, len, pe) \
|
||||
_Generic(&*(dst), \
|
||||
char*: shmem_char_put_nbi, \
|
||||
short*: shmem_short_put_nbi, \
|
||||
int*: shmem_int_put_nbi, \
|
||||
long*: shmem_long_put_nbi, \
|
||||
long long*: shmem_longlong_put_nbi, \
|
||||
float*: shmem_float_put_nbi, \
|
||||
double*: shmem_double_put_nbi, \
|
||||
long double*: shmem_longdouble_put_nbi)(dst, src, len, pe)
|
||||
#endif
|
||||
|
||||
OSHMEM_DECLSPEC void shmem_put8_nbi(void *target, const void *source, size_t len, int pe);
|
||||
OSHMEM_DECLSPEC void shmem_put16_nbi(void *target, const void *source, size_t len, int pe);
|
||||
OSHMEM_DECLSPEC void shmem_put32_nbi(void *target, const void *source, size_t len, int pe);
|
||||
OSHMEM_DECLSPEC void shmem_put64_nbi(void *target, const void *source, size_t len, int pe);
|
||||
OSHMEM_DECLSPEC void shmem_put128_nbi(void *target, const void *source, size_t len, int pe);
|
||||
OSHMEM_DECLSPEC void shmem_putmem_nbi(void *target, const void *source, size_t len, int pe);
|
||||
|
||||
/*
|
||||
* Elemental get routines
|
||||
*/
|
||||
OSHMEM_DECLSPEC char shmem_char_g(const char* addr, int pe);
|
||||
OSHMEM_DECLSPEC short shmem_short_g(const short* addr, int pe);
|
||||
OSHMEM_DECLSPEC int shmem_int_g(const int* addr, int pe);
|
||||
OSHMEM_DECLSPEC long shmem_long_g(const long* addr, int pe);
|
||||
OSHMEM_DECLSPEC float shmem_float_g(const float* addr, int pe);
|
||||
OSHMEM_DECLSPEC double shmem_double_g(const double* addr, int pe);
|
||||
OSHMEM_DECLSPEC long long shmem_longlong_g(const long long* addr, int pe);
|
||||
OSHMEM_DECLSPEC long double shmem_longdouble_g(const long double* addr, int pe);
|
||||
#if OSHMEM_HAVE_C11
|
||||
#define shmem_g(addr, pe) \
|
||||
_Generic(&*(addr), \
|
||||
char*: shmem_char_g, \
|
||||
short*: shmem_short_g, \
|
||||
int*: shmem_int_g, \
|
||||
long*: shmem_long_g, \
|
||||
long long*: shmem_longlong_g, \
|
||||
float*: shmem_float_g, \
|
||||
double*: shmem_double_g, \
|
||||
long double*: shmem_longdouble_g)(addr, pe)
|
||||
#endif
|
||||
|
||||
/*
|
||||
* Block data get routines
|
||||
*/
|
||||
OSHMEM_DECLSPEC void shmem_char_get(char *target, const char *source, size_t len, int pe);
|
||||
OSHMEM_DECLSPEC void shmem_short_get(short *target, const short *source, size_t len, int pe);
|
||||
OSHMEM_DECLSPEC void shmem_int_get(int *target, const int *source, size_t len, int pe);
|
||||
OSHMEM_DECLSPEC void shmem_long_get(long *target, const long *source, size_t len, int pe);
|
||||
OSHMEM_DECLSPEC void shmem_float_get(float *target, const float *source, size_t len, int pe);
|
||||
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);
|
||||
#if OSHMEM_HAVE_C11
|
||||
#define shmem_get(dst, src, len, pe) \
|
||||
_Generic(&*(dst), \
|
||||
char*: shmem_char_get, \
|
||||
short*: shmem_short_get, \
|
||||
int*: shmem_int_get, \
|
||||
long*: shmem_long_get, \
|
||||
long long*: shmem_longlong_get, \
|
||||
float*: shmem_float_get, \
|
||||
double*: shmem_double_get, \
|
||||
long double*: shmem_longdouble_get)(dst, src, len, pe)
|
||||
#endif
|
||||
|
||||
OSHMEM_DECLSPEC void shmem_get8(void *target, const void *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);
|
||||
OSHMEM_DECLSPEC void shmem_getmem(void *target, const void *source, size_t len, int pe);
|
||||
|
||||
/*
|
||||
* Strided get routines
|
||||
*/
|
||||
OSHMEM_DECLSPEC void shmem_char_iget(char* target, const char* source, ptrdiff_t tst, ptrdiff_t sst,size_t len, int pe);
|
||||
OSHMEM_DECLSPEC void shmem_short_iget(short* target, const short* source, ptrdiff_t tst, ptrdiff_t sst,size_t len, int pe);
|
||||
OSHMEM_DECLSPEC void shmem_int_iget(int* target, const int* source, ptrdiff_t tst, ptrdiff_t sst,size_t len, int pe);
|
||||
OSHMEM_DECLSPEC void shmem_float_iget(float* target, const float* source, ptrdiff_t tst, ptrdiff_t sst,size_t len, int pe);
|
||||
OSHMEM_DECLSPEC void shmem_double_iget(double* target, const double* source, ptrdiff_t tst, ptrdiff_t sst,size_t len, int pe);
|
||||
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);
|
||||
#if OSHMEM_HAVE_C11
|
||||
#define shmem_iget(dst, src, tst, sst, len, pe) \
|
||||
_Generic(&*(dst), \
|
||||
char*: shmem_char_iget, \
|
||||
short*: shmem_short_iget, \
|
||||
int*: shmem_int_iget, \
|
||||
long*: shmem_long_iget, \
|
||||
long long*: shmem_longlong_iget, \
|
||||
float*: shmem_float_iget, \
|
||||
double*: shmem_double_iget, \
|
||||
long double*: shmem_longdouble_iget)(dst, src, tst, sst, len, pe)
|
||||
#endif
|
||||
|
||||
OSHMEM_DECLSPEC void shmem_iget8(void* target, const void* 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);
|
||||
|
||||
/*
|
||||
* Nonblocking data get routines
|
||||
*/
|
||||
OSHMEM_DECLSPEC void shmem_getmem_nbi(void *target, const void *source, size_t len, int pe);
|
||||
OSHMEM_DECLSPEC void shmem_char_get_nbi(char *target, const char *source, size_t len, int pe);
|
||||
OSHMEM_DECLSPEC void shmem_short_get_nbi(short *target, const short *source, size_t len, int pe);
|
||||
OSHMEM_DECLSPEC void shmem_int_get_nbi(int *target, const int *source, size_t len, int pe);
|
||||
OSHMEM_DECLSPEC void shmem_long_get_nbi(long *target, const long *source, size_t len, int pe);
|
||||
OSHMEM_DECLSPEC void shmem_longlong_get_nbi(long long *target, const long long *source, size_t len, int pe);
|
||||
OSHMEM_DECLSPEC void shmem_float_get_nbi(float *target, const float *source, size_t len, int pe);
|
||||
OSHMEM_DECLSPEC void shmem_double_get_nbi(double *target, const double *source, size_t len, int pe);
|
||||
OSHMEM_DECLSPEC void shmem_longdouble_get_nbi(long double *target, const long double *source, size_t len, int pe);
|
||||
#if OSHMEM_HAVE_C11
|
||||
#define shmem_get_nbi(dst, src, len, pe) \
|
||||
_Generic(&*(dst), \
|
||||
char*: shmem_char_get_nbi, \
|
||||
short*: shmem_short_get_nbi, \
|
||||
int*: shmem_int_get_nbi, \
|
||||
long*: shmem_long_get_nbi, \
|
||||
long long*: shmem_longlong_get_nbi, \
|
||||
float*: shmem_float_get_nbi, \
|
||||
double*: shmem_double_get_nbi, \
|
||||
long double*: shmem_longdouble_get_nbi)(dst, src, len, pe)
|
||||
#endif
|
||||
|
||||
OSHMEM_DECLSPEC void shmem_get8_nbi(void *target, const void *source, size_t len, int pe);
|
||||
OSHMEM_DECLSPEC void shmem_get16_nbi(void *target, const void *source, size_t len, int pe);
|
||||
OSHMEM_DECLSPEC void shmem_get32_nbi(void *target, const void *source, size_t len, int pe);
|
||||
OSHMEM_DECLSPEC void shmem_get64_nbi(void *target, const void *source, size_t len, int pe);
|
||||
OSHMEM_DECLSPEC void shmem_get128_nbi(void *target, const void *source, size_t len, int pe);
|
||||
|
||||
/*
|
||||
* Atomic operations
|
||||
*/
|
||||
/* Atomic swap */
|
||||
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 float shmem_float_swap(float *target, float value, int pe);
|
||||
OSHMEM_DECLSPEC double shmem_double_swap(double *target, double value, int pe);
|
||||
#if OSHMEM_HAVE_C11
|
||||
#define shmem_swap(dst, val, pe) \
|
||||
_Generic(&*(dst), \
|
||||
int*: shmem_int_swap, \
|
||||
long*: shmem_long_swap, \
|
||||
long long*: shmem_longlong_swap, \
|
||||
float*: shmem_float_swap, \
|
||||
double*: shmem_double_swap)(dst, val, pe)
|
||||
#endif
|
||||
|
||||
/* Atomic set */
|
||||
OSHMEM_DECLSPEC void shmem_int_set(int *target, int value, int pe);
|
||||
OSHMEM_DECLSPEC void shmem_long_set(long *target, long value, int pe);
|
||||
OSHMEM_DECLSPEC void shmem_longlong_set(long long*target, long long value, int pe);
|
||||
OSHMEM_DECLSPEC void shmem_float_set(float *target, float value, int pe);
|
||||
OSHMEM_DECLSPEC void shmem_double_set(double *target, double value, int pe);
|
||||
#if OSHMEM_HAVE_C11
|
||||
#define shmem_set(dst, val, pe) \
|
||||
_Generic(&*(dst), \
|
||||
int*: shmem_int_set, \
|
||||
long*: shmem_long_set, \
|
||||
long long*: shmem_longlong_set, \
|
||||
float*: shmem_float_set, \
|
||||
double*: shmem_double_set)(dst, val, pe)
|
||||
#endif
|
||||
|
||||
/* 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);
|
||||
|
||||
#if OSHMEM_HAVE_C11
|
||||
#define shmem_cswap(dst, cond, val, pe) \
|
||||
_Generic(&*(dst), \
|
||||
int*: shmem_int_cswap, \
|
||||
long*: shmem_long_cswap, \
|
||||
long long*: shmem_longlong_cswap)(dst, cond, val, pe)
|
||||
#endif
|
||||
|
||||
/* 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);
|
||||
#if OSHMEM_HAVE_C11
|
||||
#define shmem_fadd(dst, val, pe) \
|
||||
_Generic(&*(dst), \
|
||||
int*: shmem_int_fadd, \
|
||||
long*: shmem_long_fadd, \
|
||||
long long*: shmem_longlong_fadd)(dst, val, pe)
|
||||
#endif
|
||||
|
||||
/* Atomic Fetch */
|
||||
OSHMEM_DECLSPEC int shmem_int_fetch(const int *target, int pe);
|
||||
OSHMEM_DECLSPEC long shmem_long_fetch(const long *target, int pe);
|
||||
OSHMEM_DECLSPEC long long shmem_longlong_fetch(const long long *target, int pe);
|
||||
OSHMEM_DECLSPEC float shmem_float_fetch(const float *target, int pe);
|
||||
OSHMEM_DECLSPEC double shmem_double_fetch(const double *target, int pe);
|
||||
#if OSHMEM_HAVE_C11
|
||||
#define shmem_fetch(dst, pe) \
|
||||
_Generic(&*(dst), \
|
||||
int*: shmem_int_fetch, \
|
||||
long*: shmem_long_fetch, \
|
||||
long long*: shmem_longlong_fetch, \
|
||||
float*: shmem_float_fetch, \
|
||||
double*: shmem_double_fetch)(dst, pe)
|
||||
#endif
|
||||
|
||||
/* 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);
|
||||
#if OSHMEM_HAVE_C11
|
||||
#define shmem_finc(dst, pe) \
|
||||
_Generic(&*(dst), \
|
||||
int*: shmem_int_finc, \
|
||||
long*: shmem_long_finc, \
|
||||
long long*: shmem_longlong_finc)(dst, pe)
|
||||
#endif
|
||||
|
||||
/* 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);
|
||||
#if OSHMEM_HAVE_C11
|
||||
#define shmem_add(dst, val, pe) \
|
||||
_Generic(&*(dst), \
|
||||
int*: shmem_int_add, \
|
||||
long*: shmem_long_add, \
|
||||
long long*: shmem_longlong_add)(dst, val, pe)
|
||||
#endif
|
||||
|
||||
/* 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);
|
||||
#if OSHMEM_HAVE_C11
|
||||
#define shmem_inc(dst, pe) \
|
||||
_Generic(&*(dst), \
|
||||
int*: shmem_int_inc, \
|
||||
long*: shmem_long_inc, \
|
||||
long long*: shmem_longlong_inc)(dst, pe)
|
||||
#endif
|
||||
|
||||
|
||||
/*
|
||||
* Lock functions
|
||||
*/
|
||||
OSHMEM_DECLSPEC void shmem_set_lock(volatile long *lock);
|
||||
OSHMEM_DECLSPEC void shmem_clear_lock(volatile long *lock);
|
||||
OSHMEM_DECLSPEC int shmem_test_lock(volatile long *lock);
|
||||
|
||||
/*
|
||||
* P2P sync routines
|
||||
*/
|
||||
OSHMEM_DECLSPEC void shmem_short_wait(volatile short *addr, short value);
|
||||
OSHMEM_DECLSPEC void shmem_int_wait(volatile int *addr, int value);
|
||||
OSHMEM_DECLSPEC void shmem_long_wait(volatile long *addr, long value);
|
||||
OSHMEM_DECLSPEC void shmem_longlong_wait(volatile long long *addr, long long value);
|
||||
OSHMEM_DECLSPEC void shmem_wait(volatile long *addr, long value);
|
||||
|
||||
OSHMEM_DECLSPEC void shmem_short_wait_until(volatile short *addr, int cmp, short value);
|
||||
OSHMEM_DECLSPEC void shmem_int_wait_until(volatile int *addr, int cmp, int value);
|
||||
OSHMEM_DECLSPEC void shmem_long_wait_until(volatile long *addr, int cmp, long value);
|
||||
OSHMEM_DECLSPEC void shmem_longlong_wait_until(volatile long long *addr, int cmp, long long value);
|
||||
OSHMEM_DECLSPEC void shmem_wait_until(volatile long *addr, int cmp, long value);
|
||||
|
||||
/*
|
||||
* Barrier sync routines
|
||||
*/
|
||||
OSHMEM_DECLSPEC void shmem_barrier(int PE_start, int logPE_stride, int PE_size, long *pSync);
|
||||
OSHMEM_DECLSPEC void shmem_barrier_all(void);
|
||||
OSHMEM_DECLSPEC void shmem_fence(void);
|
||||
OSHMEM_DECLSPEC void shmem_quiet(void);
|
||||
|
||||
/*
|
||||
* Collective routines
|
||||
*/
|
||||
OSHMEM_DECLSPEC void shmem_broadcast32(void *target, const void *source, size_t nlong, int PE_root, int PE_start, int logPE_stride, int PE_size, long *pSync);
|
||||
OSHMEM_DECLSPEC void shmem_broadcast64(void *target, const void *source, size_t nlong, int PE_root, int PE_start, int logPE_stride, int PE_size, long *pSync);
|
||||
OSHMEM_DECLSPEC void shmem_broadcast(void *target, const void *source, size_t nlong, int PE_root, int PE_start, int logPE_stride, int PE_size, long *pSync);
|
||||
OSHMEM_DECLSPEC void shmem_collect32(void *target, const void *source, size_t nlong, int PE_start, int logPE_stride, int PE_size, long *pSync);
|
||||
OSHMEM_DECLSPEC void shmem_collect64(void *target, const void *source, size_t nlong, int PE_start, int logPE_stride, int PE_size, long *pSync);
|
||||
OSHMEM_DECLSPEC void shmem_fcollect32(void *target, const void *source, size_t nlong, int PE_start, int logPE_stride, int PE_size, long *pSync);
|
||||
OSHMEM_DECLSPEC void shmem_fcollect64(void *target, const void *source, size_t nlong, int PE_start, int logPE_stride, int PE_size, long *pSync);
|
||||
OSHMEM_DECLSPEC void shmem_alltoall32(void *target, const void *source, size_t nelems, int PE_start, int logPE_stride, int PE_size, long *pSync);
|
||||
OSHMEM_DECLSPEC void shmem_alltoall64(void *target, const void *source, size_t nelems, int PE_start, int logPE_stride, int PE_size, long *pSync);
|
||||
OSHMEM_DECLSPEC void shmem_alltoalls32(void *target, const void *source, ptrdiff_t dst, ptrdiff_t sst, size_t nelems, int PE_start, int logPE_stride, int PE_size, long *pSync);
|
||||
OSHMEM_DECLSPEC void shmem_alltoalls64(void *target, const void *source, ptrdiff_t dst, ptrdiff_t sst, size_t nelems, int PE_start, int logPE_stride, int PE_size, long *pSync);
|
||||
|
||||
|
||||
/*
|
||||
* Reduction routines
|
||||
*/
|
||||
OSHMEM_DECLSPEC void shmem_short_and_to_all(short *target, const short *source, int nreduce, int PE_start, int logPE_stride, int PE_size, short *pWrk, long *pSync);
|
||||
OSHMEM_DECLSPEC void shmem_int_and_to_all(int *target, const 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, const 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, const long long *source, int nreduce, int PE_start, int logPE_stride, int PE_size, long long *pWrk, long *pSync);
|
||||
|
||||
OSHMEM_DECLSPEC void shmem_short_or_to_all(short *target, const 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, const 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, const 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, const long long *source, int nreduce, int PE_start, int logPE_stride, int PE_size, long long *pWrk, long *pSync);
|
||||
|
||||
OSHMEM_DECLSPEC void shmem_short_xor_to_all(short *target, const 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, const 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, const 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, const long long *source, int nreduce, int PE_start, int logPE_stride, int PE_size, long long *pWrk, long *pSync);
|
||||
|
||||
OSHMEM_DECLSPEC void shmem_short_max_to_all(short *target, const 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, const int *source, int nreduce, int PE_start, int logPE_stride, int PE_size, int *pWrk, long *pSync);
|
||||
OSHMEM_DECLSPEC void shmem_long_max_to_all(long *target, const long *source, int nreduce, int PE_start, int logPE_stride, int PE_size, long *pWrk, long *pSync);
|
||||
OSHMEM_DECLSPEC void shmem_longlong_max_to_all(long long *target, const long long *source, int nreduce, int PE_start, int logPE_stride, int PE_size, long long *pWrk, long *pSync);
|
||||
OSHMEM_DECLSPEC void shmem_float_max_to_all(float *target, const 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, const 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, const long double *source, int nreduce, int PE_start, int logPE_stride, int PE_size, long double *pWrk, long *pSync);
|
||||
|
||||
OSHMEM_DECLSPEC void shmem_short_min_to_all(short *target, const 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, const int *source, int nreduce, int PE_start, int logPE_stride, int PE_size, int *pWrk, long *pSync);
|
||||
OSHMEM_DECLSPEC void shmem_long_min_to_all(long *target, const long *source, int nreduce, int PE_start, int logPE_stride, int PE_size, long *pWrk, long *pSync);
|
||||
OSHMEM_DECLSPEC void shmem_longlong_min_to_all(long long *target, const long long *source, int nreduce, int PE_start, int logPE_stride, int PE_size, long long *pWrk, long *pSync);
|
||||
OSHMEM_DECLSPEC void shmem_float_min_to_all(float *target, const 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, const 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, const long double *source, int nreduce, int PE_start, int logPE_stride, int PE_size, long double *pWrk, long *pSync);
|
||||
|
||||
OSHMEM_DECLSPEC void shmem_short_sum_to_all(short *target, const 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, const int *source, int nreduce, int PE_start, int logPE_stride, int PE_size, int *pWrk, long *pSync);
|
||||
OSHMEM_DECLSPEC void shmem_long_sum_to_all(long *target, const long *source, int nreduce, int PE_start, int logPE_stride, int PE_size, long *pWrk, long *pSync);
|
||||
OSHMEM_DECLSPEC void shmem_longlong_sum_to_all(long long *target, const long long *source, int nreduce, int PE_start, int logPE_stride, int PE_size, long long *pWrk, long *pSync);
|
||||
OSHMEM_DECLSPEC void shmem_float_sum_to_all(float *target, const float *source, int nreduce, int PE_start, int logPE_stride, int PE_size, float *pWrk, long *pSync);
|
||||
OSHMEM_DECLSPEC void shmem_double_sum_to_all(double *target, const double *source, int nreduce, int PE_start, int logPE_stride, int PE_size, double *pWrk, long *pSync);
|
||||
OSHMEM_DECLSPEC void shmem_longdouble_sum_to_all(long double *target, const 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, const 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, const 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_short_prod_to_all(short *target, const 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, const int *source, int nreduce, int PE_start, int logPE_stride, int PE_size, int *pWrk, long *pSync);
|
||||
OSHMEM_DECLSPEC void shmem_long_prod_to_all(long *target, const long *source, int nreduce, int PE_start, int logPE_stride, int PE_size, long *pWrk, long *pSync);
|
||||
OSHMEM_DECLSPEC void shmem_longlong_prod_to_all(long long *target, const long long *source, int nreduce, int PE_start, int logPE_stride, int PE_size, long long *pWrk, long *pSync);
|
||||
OSHMEM_DECLSPEC void shmem_float_prod_to_all(float *target, const float *source, int nreduce, int PE_start, int logPE_stride, int PE_size, float *pWrk, long *pSync);
|
||||
OSHMEM_DECLSPEC void shmem_double_prod_to_all(double *target, const double *source, int nreduce, int PE_start, int logPE_stride, int PE_size, double *pWrk, long *pSync);
|
||||
OSHMEM_DECLSPEC void shmem_longdouble_prod_to_all(long double *target, const 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, const 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, const OSHMEM_COMPLEX_TYPE(double) *source, int nreduce, int PE_start, int logPE_stride, int PE_size, OSHMEM_COMPLEX_TYPE(double) *pWrk, long *pSync);
|
||||
|
||||
/*
|
||||
* Platform specific cache management routines
|
||||
*/
|
||||
OSHMEM_DECLSPEC void shmem_udcflush(void);
|
||||
OSHMEM_DECLSPEC void shmem_udcflush_line(void* target);
|
||||
OSHMEM_DECLSPEC void shmem_set_cache_inv(void);
|
||||
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);
|
||||
|
||||
#if defined(c_plusplus) || defined(__cplusplus)
|
||||
}
|
||||
#endif
|
||||
|
||||
|
||||
#endif /* OSHMEM_SHMEM_H */
|
||||
@@ -1,206 +0,0 @@
|
||||
/* oshmem/include/shmemx.h. This file contains vendor extension functions */
|
||||
/*
|
||||
* Copyright (c) 2014-2015 Mellanox Technologies, Inc.
|
||||
* All rights reserved.
|
||||
* $COPYRIGHT$
|
||||
*
|
||||
* Additional copyrights may follow
|
||||
*
|
||||
* $HEADER$
|
||||
*/
|
||||
|
||||
#ifndef OSHMEM_SHMEMX_H
|
||||
#define OSHMEM_SHMEMX_H
|
||||
|
||||
#include <shmem.h>
|
||||
|
||||
#if defined(c_plusplus) || defined(__cplusplus)
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
/*
|
||||
* All OpenSHMEM extension APIs that are not part of this specification must be defined in the shmemx.h include
|
||||
* file. These extensions shall use the shmemx_ prefix for all routine, variable, and constant names.
|
||||
*/
|
||||
|
||||
/*
|
||||
* Elemental put routines
|
||||
*/
|
||||
OSHMEM_DECLSPEC void shmemx_int16_p(int16_t* addr, int16_t value, int pe);
|
||||
OSHMEM_DECLSPEC void shmemx_int32_p(int32_t* addr, int32_t value, int pe);
|
||||
OSHMEM_DECLSPEC void shmemx_int64_p(int64_t* addr, int64_t value, int pe);
|
||||
|
||||
/*
|
||||
* Elemental put routines
|
||||
*/
|
||||
|
||||
/*
|
||||
* Block data put routines
|
||||
*/
|
||||
|
||||
/*
|
||||
* Strided put routines
|
||||
*/
|
||||
|
||||
/*
|
||||
* Elemental get routines
|
||||
*/
|
||||
OSHMEM_DECLSPEC int16_t shmemx_int16_g(const int16_t* addr, int pe);
|
||||
OSHMEM_DECLSPEC int32_t shmemx_int32_g(const int32_t* addr, int pe);
|
||||
OSHMEM_DECLSPEC int64_t shmemx_int64_g(const int64_t* addr, int pe);
|
||||
|
||||
/*
|
||||
* Block data get routines
|
||||
*/
|
||||
|
||||
/*
|
||||
* Strided get routines
|
||||
*/
|
||||
|
||||
/*
|
||||
* Atomic operations
|
||||
*/
|
||||
/* Atomic swap */
|
||||
OSHMEM_DECLSPEC int32_t shmemx_int32_swap(int32_t *target, int32_t value, int pe);
|
||||
OSHMEM_DECLSPEC int64_t shmemx_int64_swap(int64_t *target, int64_t value, int pe);
|
||||
|
||||
/* Atomic set */
|
||||
OSHMEM_DECLSPEC void shmemx_int32_set(int32_t *target, int32_t value, int pe);
|
||||
OSHMEM_DECLSPEC void shmemx_int64_set(int64_t *target, int64_t value, int pe);
|
||||
|
||||
/* Atomic conditional swap */
|
||||
OSHMEM_DECLSPEC int32_t shmemx_int32_cswap(int32_t *target, int32_t cond, int32_t value, int pe);
|
||||
OSHMEM_DECLSPEC int64_t shmemx_int64_cswap(int64_t *target, int64_t cond, int64_t value, int pe);
|
||||
|
||||
/* Atomic Fetch&Add */
|
||||
OSHMEM_DECLSPEC int32_t shmemx_int32_fadd(int32_t *target, int32_t value, int pe);
|
||||
OSHMEM_DECLSPEC int64_t shmemx_int64_fadd(int64_t *target, int64_t value, int pe);
|
||||
|
||||
/* Atomic Fetch */
|
||||
OSHMEM_DECLSPEC int32_t shmemx_int32_fetch(const int32_t *target, int pe);
|
||||
OSHMEM_DECLSPEC int64_t shmemx_int64_fetch(const int64_t *target, int pe);
|
||||
|
||||
/* Atomic Fetch&Inc */
|
||||
OSHMEM_DECLSPEC int32_t shmemx_int32_finc(int32_t *target, int pe);
|
||||
OSHMEM_DECLSPEC int64_t shmemx_int64_finc(int64_t *target, int pe);
|
||||
|
||||
/* Atomic Add*/
|
||||
OSHMEM_DECLSPEC void shmemx_int32_add(int32_t *target, int32_t value, int pe);
|
||||
OSHMEM_DECLSPEC void shmemx_int64_add(int64_t *target, int64_t value, int pe);
|
||||
|
||||
/* Atomic Inc */
|
||||
OSHMEM_DECLSPEC void shmemx_int32_inc(int32_t *target, int pe);
|
||||
OSHMEM_DECLSPEC void shmemx_int64_inc(int64_t *target, int pe);
|
||||
|
||||
/*
|
||||
* P2P sync routines
|
||||
*/
|
||||
OSHMEM_DECLSPEC void shmemx_int32_wait(int32_t *addr, int32_t value);
|
||||
OSHMEM_DECLSPEC void shmemx_int64_wait(int64_t *addr, int64_t value);
|
||||
|
||||
OSHMEM_DECLSPEC void shmemx_int32_wait_until(int32_t *addr, int cmp, int32_t value);
|
||||
OSHMEM_DECLSPEC void shmemx_int64_wait_until(int64_t *addr, int cmp, int64_t value);
|
||||
|
||||
/*
|
||||
* Reduction routines
|
||||
*/
|
||||
OSHMEM_DECLSPEC void shmemx_int16_and_to_all(int16_t *target, const int16_t *source, int nreduce, int PE_start, int logPE_stride, int PE_size, int16_t *pWrk, long *pSync);
|
||||
OSHMEM_DECLSPEC void shmemx_int32_and_to_all(int32_t *target, const int32_t *source, int nreduce, int PE_start, int logPE_stride, int PE_size, int32_t *pWrk, long *pSync);
|
||||
OSHMEM_DECLSPEC void shmemx_int64_and_to_all(int64_t *target, const int64_t *source, int nreduce, int PE_start, int logPE_stride, int PE_size, int64_t *pWrk, long *pSync);
|
||||
|
||||
OSHMEM_DECLSPEC void shmemx_int16_or_to_all(int16_t *target, const int16_t *source, int nreduce, int PE_start, int logPE_stride, int PE_size, int16_t *pWrk, long *pSync);
|
||||
OSHMEM_DECLSPEC void shmemx_int32_or_to_all(int32_t *target, const int32_t *source, int nreduce, int PE_start, int logPE_stride, int PE_size, int32_t *pWrk, long *pSync);
|
||||
OSHMEM_DECLSPEC void shmemx_int64_or_to_all(int64_t *target, const int64_t *source, int nreduce, int PE_start, int logPE_stride, int PE_size, int64_t *pWrk, long *pSync);
|
||||
|
||||
OSHMEM_DECLSPEC void shmemx_int16_xor_to_all(int16_t *target, const int16_t *source, int nreduce, int PE_start, int logPE_stride, int PE_size, int16_t *pWrk, long *pSync);
|
||||
OSHMEM_DECLSPEC void shmemx_int32_xor_to_all(int32_t *target, const int32_t *source, int nreduce, int PE_start, int logPE_stride, int PE_size, int32_t *pWrk, long *pSync);
|
||||
OSHMEM_DECLSPEC void shmemx_int64_xor_to_all(int64_t *target, const int64_t *source, int nreduce, int PE_start, int logPE_stride, int PE_size, int64_t *pWrk, long *pSync);
|
||||
|
||||
OSHMEM_DECLSPEC void shmemx_int16_max_to_all(int16_t *target, const int16_t *source, int nreduce, int PE_start, int logPE_stride, int PE_size, int16_t *pWrk, long *pSync);
|
||||
OSHMEM_DECLSPEC void shmemx_int32_max_to_all(int32_t *target, const int32_t *source, int nreduce, int PE_start, int logPE_stride, int PE_size, int32_t *pWrk, long *pSync);
|
||||
OSHMEM_DECLSPEC void shmemx_int64_max_to_all(int64_t *target, const int64_t *source, int nreduce, int PE_start, int logPE_stride, int PE_size, int64_t *pWrk, long *pSync);
|
||||
|
||||
OSHMEM_DECLSPEC void shmemx_int16_min_to_all(int16_t *target, const int16_t *source, int nreduce, int PE_start, int logPE_stride, int PE_size, int16_t *pWrk, long *pSync);
|
||||
OSHMEM_DECLSPEC void shmemx_int32_min_to_all(int32_t *target, const int32_t *source, int nreduce, int PE_start, int logPE_stride, int PE_size, int32_t *pWrk, long *pSync);
|
||||
OSHMEM_DECLSPEC void shmemx_int64_min_to_all(int64_t *target, const int64_t *source, int nreduce, int PE_start, int logPE_stride, int PE_size, int64_t *pWrk, long *pSync);
|
||||
|
||||
OSHMEM_DECLSPEC void shmemx_int16_sum_to_all(int16_t *target, const int16_t *source, int nreduce, int PE_start, int logPE_stride, int PE_size, int16_t *pWrk, long *pSync);
|
||||
OSHMEM_DECLSPEC void shmemx_int32_sum_to_all(int32_t *target, const int32_t *source, int nreduce, int PE_start, int logPE_stride, int PE_size, int32_t *pWrk, long *pSync);
|
||||
OSHMEM_DECLSPEC void shmemx_int64_sum_to_all(int64_t *target, const int64_t *source, int nreduce, int PE_start, int logPE_stride, int PE_size, int64_t *pWrk, long *pSync);
|
||||
|
||||
OSHMEM_DECLSPEC void shmemx_int16_prod_to_all(int16_t *target, const int16_t *source, int nreduce, int PE_start, int logPE_stride, int PE_size, int16_t *pWrk, long *pSync);
|
||||
OSHMEM_DECLSPEC void shmemx_int32_prod_to_all(int32_t *target, const int32_t *source, int nreduce, int PE_start, int logPE_stride, int PE_size, int32_t *pWrk, long *pSync);
|
||||
OSHMEM_DECLSPEC void shmemx_int64_prod_to_all(int64_t *target, const int64_t *source, int nreduce, int PE_start, int logPE_stride, int PE_size, int64_t *pWrk, long *pSync);
|
||||
|
||||
/*
|
||||
* Backward compatibility section
|
||||
*/
|
||||
#define shmem_int16_p shmemx_int16_p
|
||||
#define shmem_int32_p shmemx_int32_p
|
||||
#define shmem_int64_p shmemx_int64_p
|
||||
|
||||
#define shmem_int16_g shmemx_int16_g
|
||||
#define shmem_int32_g shmemx_int32_g
|
||||
#define shmem_int64_g shmemx_int64_g
|
||||
|
||||
#define shmem_int32_swap shmemx_int32_swap
|
||||
#define shmem_int64_swap shmemx_int64_swap
|
||||
|
||||
#define shmem_int32_set shmemx_int32_set
|
||||
#define shmem_int64_set shmemx_int64_set
|
||||
|
||||
#define shmem_int32_cswap shmemx_int32_cswap
|
||||
#define shmem_int64_cswap shmemx_int64_cswap
|
||||
|
||||
#define shmem_int32_fadd shmemx_int32_fadd
|
||||
#define shmem_int64_fadd shmemx_int64_fadd
|
||||
|
||||
#define shmem_int32_fetch shmemx_int32_fetch
|
||||
#define shmem_int64_fetch shmemx_int64_fetch
|
||||
|
||||
#define shmem_int32_finc shmemx_int32_finc
|
||||
#define shmem_int64_finc shmemx_int64_finc
|
||||
|
||||
#define shmem_int32_add shmemx_int32_add
|
||||
#define shmem_int64_add shmemx_int64_add
|
||||
#define shmem_int32_inc shmemx_int32_inc
|
||||
#define shmem_int64_inc shmemx_int64_inc
|
||||
|
||||
#define shmem_int32_wait shmemx_int32_wait
|
||||
#define shmem_int64_wait shmemx_int64_wait
|
||||
#define shmem_int32_wait_until shmemx_int32_wait_until
|
||||
#define shmem_int64_wait_until shmemx_int64_wait_until
|
||||
|
||||
#define shmem_int16_and_to_all shmemx_int16_and_to_all
|
||||
#define shmem_int32_and_to_all shmemx_int32_and_to_all
|
||||
#define shmem_int64_and_to_all shmemx_int64_and_to_all
|
||||
|
||||
#define shmem_int16_or_to_all shmemx_int16_or_to_all
|
||||
#define shmem_int32_or_to_all shmemx_int32_or_to_all
|
||||
#define shmem_int64_or_to_all shmemx_int64_or_to_all
|
||||
|
||||
#define shmem_int16_xor_to_all shmemx_int16_xor_to_all
|
||||
#define shmem_int32_xor_to_all shmemx_int32_xor_to_all
|
||||
#define shmem_int64_xor_to_all shmemx_int64_xor_to_all
|
||||
|
||||
#define shmem_int16_max_to_all shmemx_int16_max_to_all
|
||||
#define shmem_int32_max_to_all shmemx_int32_max_to_all
|
||||
#define shmem_int64_max_to_all shmemx_int64_max_to_all
|
||||
|
||||
#define shmem_int16_min_to_all shmemx_int16_min_to_all
|
||||
#define shmem_int32_min_to_all shmemx_int32_min_to_all
|
||||
#define shmem_int64_min_to_all shmemx_int64_min_to_all
|
||||
|
||||
#define shmem_int16_sum_to_all shmemx_int16_sum_to_all
|
||||
#define shmem_int32_sum_to_all shmemx_int32_sum_to_all
|
||||
#define shmem_int64_sum_to_all shmemx_int64_sum_to_all
|
||||
|
||||
#define shmem_int16_prod_to_all shmemx_int16_prod_to_all
|
||||
#define shmem_int32_prod_to_all shmemx_int32_prod_to_all
|
||||
#define shmem_int64_prod_to_all shmemx_int64_prod_to_all
|
||||
|
||||
#if defined(c_plusplus) || defined(__cplusplus)
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif /* OSHMEM_SHMEMX_H */
|
||||
Reference in New Issue
Block a user