update openmpi linux

This commit is contained in:
Bassem Girgis
2019-08-10 19:03:19 -05:00
parent 9b1ac8cf33
commit 8e4b370e8a
1038 changed files with 1569 additions and 25304 deletions

View File

@@ -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)

View File

@@ -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)
}

View File

@@ -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'
!

View File

@@ -1 +0,0 @@
../shmem.fh

View File

@@ -1 +0,0 @@
../shmem.h

View File

@@ -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);

View File

@@ -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);

View File

@@ -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 */

View File

@@ -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 */

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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 */

View File

@@ -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 */

View File

@@ -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 */

View File

@@ -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

View File

@@ -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 */

View File

@@ -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 */