X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/15e20854c41119eb6c28a5c60eee7df325ad20de..98755faee042e94d1ff52f6e9508b18015bb1ae5:/include/smpi/smpi.h diff --git a/include/smpi/smpi.h b/include/smpi/smpi.h index 4fb2272709..c4e27b890a 100644 --- a/include/smpi/smpi.h +++ b/include/smpi/smpi.h @@ -15,14 +15,18 @@ #include #include +#ifdef __cplusplus +#include +#endif + #ifdef _WIN32 -#define MPI_CALL(type,name,args) \ - type name args; \ - type P##name args +#define MPI_CALL(type, name, args) \ + type name args; \ + type _XBT_CONCAT(P, name) args #else -#define MPI_CALL(type,name,args) \ - type name args __attribute__((weak)); \ - type P##name args +#define MPI_CALL(type, name, args) \ + type name args __attribute__((weak)); \ + type _XBT_CONCAT(P, name) args #endif SG_BEGIN_DECL() @@ -125,7 +129,7 @@ SG_BEGIN_DECL() ERROR(MPI_T_ERR_PVAR_NO_ATOMIC) #define GENERATE_ENUM(ENUM) ENUM, -#define GENERATE_STRING(STRING) #STRING, +#define GENERATE_STRING(STRING) _XBT_STRINGIFY(STRING), enum ERROR_ENUM { FOREACH_ERROR(GENERATE_ENUM) @@ -230,6 +234,7 @@ typedef SMPI_Info* MPI_Info; #define MPI_STATUS_IGNORE ((MPI_Status*)NULL) #define MPI_STATUSES_IGNORE ((MPI_Status*)NULL) +#define MPI_STATUS_SIZE 5 XBT_PUBLIC_DATA const MPI_Datatype MPI_DATATYPE_NULL; XBT_PUBLIC_DATA const MPI_Datatype MPI_CHAR; @@ -359,6 +364,10 @@ typedef SMPI_Request* MPI_Request; #define MPI_REQUEST_NULL ((MPI_Request)NULL) #define MPI_FORTRAN_REQUEST_NULL -1 +typedef SMPI_Errhandler* MPI_Errhandler; +#define MPI_ERRHANDLER_NULL ((MPI_Errhandler)NULL) + + typedef enum SMPI_Topo_type { MPI_GRAPH=1, MPI_CART=2, @@ -417,7 +426,7 @@ MPI_CALL(XBT_PUBLIC int, MPI_Free_mem, (void* base)); MPI_CALL(XBT_PUBLIC double, MPI_Wtime, (void)); MPI_CALL(XBT_PUBLIC double, MPI_Wtick, (void)); -MPI_CALL(XBT_PUBLIC int, MPI_Address, (void* location, MPI_Aint* address)); +MPI_CALL(XBT_PUBLIC int, MPI_Address, (const void* location, MPI_Aint* address)); MPI_CALL(XBT_PUBLIC int, MPI_Get_address, (const void* location, MPI_Aint* address)); MPI_CALL(XBT_PUBLIC int, MPI_Error_class, (int errorcode, int* errorclass)); @@ -438,7 +447,7 @@ MPI_CALL(XBT_PUBLIC int, MPI_Type_lb, (MPI_Datatype datatype, MPI_Aint* disp)); MPI_CALL(XBT_PUBLIC int, MPI_Type_ub, (MPI_Datatype datatype, MPI_Aint* disp)); MPI_CALL(XBT_PUBLIC int, MPI_Type_commit, (MPI_Datatype * datatype)); MPI_CALL(XBT_PUBLIC int, MPI_Type_hindexed, - (int count, int* blocklens, MPI_Aint* indices, MPI_Datatype old_type, MPI_Datatype* newtype)); + (int count, const int* blocklens, const MPI_Aint* indices, MPI_Datatype old_type, MPI_Datatype* newtype)); MPI_CALL(XBT_PUBLIC int, MPI_Type_create_hindexed, (int count, const int* blocklens, const MPI_Aint* indices, MPI_Datatype old_type, MPI_Datatype* newtype)); MPI_CALL(XBT_PUBLIC int, MPI_Type_create_hindexed_block, @@ -454,7 +463,7 @@ MPI_CALL(XBT_PUBLIC int, MPI_Type_create_indexed, MPI_CALL(XBT_PUBLIC int, MPI_Type_create_indexed_block, (int count, int blocklength, const int* indices, MPI_Datatype old_type, MPI_Datatype* newtype)); MPI_CALL(XBT_PUBLIC int, MPI_Type_struct, - (int count, int* blocklens, MPI_Aint* indices, MPI_Datatype* old_types, MPI_Datatype* newtype)); + (int count, const int* blocklens, const MPI_Aint* indices, const MPI_Datatype* old_types, MPI_Datatype* newtype)); MPI_CALL(XBT_PUBLIC int, MPI_Type_create_struct, (int count, const int* blocklens, const MPI_Aint* indices, const MPI_Datatype* old_types, MPI_Datatype* newtype)); MPI_CALL(XBT_PUBLIC int, MPI_Type_vector, @@ -509,6 +518,7 @@ MPI_CALL(XBT_PUBLIC int, MPI_Comm_size, (MPI_Comm comm, int* size)); MPI_CALL(XBT_PUBLIC int, MPI_Comm_get_name, (MPI_Comm comm, char* name, int* len)); MPI_CALL(XBT_PUBLIC int, MPI_Comm_set_name, (MPI_Comm comm, const char* name)); MPI_CALL(XBT_PUBLIC int, MPI_Comm_dup, (MPI_Comm comm, MPI_Comm* newcomm)); +MPI_CALL(XBT_PUBLIC int, MPI_Comm_dup_with_info, (MPI_Comm comm, MPI_Info info, MPI_Comm* newcomm)); MPI_CALL(XBT_PUBLIC int, MPI_Comm_get_attr, (MPI_Comm comm, int comm_keyval, void* attribute_val, int* flag)); MPI_CALL(XBT_PUBLIC int, MPI_Comm_set_attr, (MPI_Comm comm, int comm_keyval, void* attribute_val)); MPI_CALL(XBT_PUBLIC int, MPI_Comm_delete_attr, (MPI_Comm comm, int comm_keyval)); @@ -523,6 +533,10 @@ MPI_CALL(XBT_PUBLIC int, MPI_Comm_create_group, (MPI_Comm comm, MPI_Group group, MPI_CALL(XBT_PUBLIC int, MPI_Comm_free, (MPI_Comm * comm)); MPI_CALL(XBT_PUBLIC int, MPI_Comm_disconnect, (MPI_Comm * comm)); MPI_CALL(XBT_PUBLIC int, MPI_Comm_split, (MPI_Comm comm, int color, int key, MPI_Comm* comm_out)); +MPI_CALL(XBT_PUBLIC int, MPI_Comm_set_info, (MPI_Comm comm, MPI_Info info)); +MPI_CALL(XBT_PUBLIC int, MPI_Comm_get_info, (MPI_Comm comm, MPI_Info* info)); +MPI_CALL(XBT_PUBLIC int, MPI_Comm_split_type, + (MPI_Comm comm, int split_type, int key, MPI_Info info, MPI_Comm* newcomm)); MPI_CALL(XBT_PUBLIC MPI_Comm, MPI_Comm_f2c, (MPI_Fint comm)); MPI_CALL(XBT_PUBLIC MPI_Fint, MPI_Comm_c2f, (MPI_Comm comm)); @@ -556,6 +570,7 @@ MPI_CALL(XBT_PUBLIC int, MPI_Testany, (int count, MPI_Request requests[], int* i MPI_CALL(XBT_PUBLIC int, MPI_Testall, (int count, MPI_Request* requests, int* flag, MPI_Status* statuses)); MPI_CALL(XBT_PUBLIC int, MPI_Testsome, (int incount, MPI_Request requests[], int* outcount, int* indices, MPI_Status status[])); +MPI_CALL(XBT_PUBLIC int, MPI_Test_cancelled, (const MPI_Status * status, int* flag)); MPI_CALL(XBT_PUBLIC int, MPI_Wait, (MPI_Request * request, MPI_Status* status)); MPI_CALL(XBT_PUBLIC int, MPI_Waitany, (int count, MPI_Request requests[], int* index, MPI_Status* status)); MPI_CALL(XBT_PUBLIC int, MPI_Waitall, (int count, MPI_Request requests[], MPI_Status status[])); @@ -734,6 +749,47 @@ MPI_CALL(XBT_PUBLIC int, MPI_Grequest_start, MPI_CALL(XBT_PUBLIC int, MPI_Grequest_complete, (MPI_Request request)); MPI_CALL(XBT_PUBLIC int, MPI_Status_set_cancelled, (MPI_Status * status, int flag)); MPI_CALL(XBT_PUBLIC int, MPI_Status_set_elements, (MPI_Status * status, MPI_Datatype datatype, int count)); +MPI_CALL(XBT_PUBLIC int, MPI_Type_create_subarray, + (int ndims, const int* array_of_sizes, const int* array_of_subsizes, const int* array_of_starts, int order, MPI_Datatype oldtype, + MPI_Datatype* newtype)); + +MPI_CALL(XBT_PUBLIC int, MPI_File_open, (MPI_Comm comm, const char* filename, int amode, MPI_Info info, MPI_File* fh)); +MPI_CALL(XBT_PUBLIC int, MPI_File_close, (MPI_File * fh)); +MPI_CALL(XBT_PUBLIC int, MPI_File_delete, (const char* filename, MPI_Info info)); +MPI_CALL(XBT_PUBLIC int, MPI_File_get_size, (MPI_File fh, MPI_Offset* size)); +MPI_CALL(XBT_PUBLIC int, MPI_File_get_group, (MPI_File fh, MPI_Group* group)); +MPI_CALL(XBT_PUBLIC int, MPI_File_get_amode, (MPI_File fh, int* amode)); +MPI_CALL(XBT_PUBLIC int, MPI_File_set_info, (MPI_File fh, MPI_Info info)); +MPI_CALL(XBT_PUBLIC int, MPI_File_get_info, (MPI_File fh, MPI_Info* info_used)); +MPI_CALL(XBT_PUBLIC int, MPI_File_read_at, + (MPI_File fh, MPI_Offset offset, void* buf, int count, MPI_Datatype datatype, MPI_Status* status)); +MPI_CALL(XBT_PUBLIC int, MPI_File_read_at_all, + (MPI_File fh, MPI_Offset offset, void* buf, int count, MPI_Datatype datatype, MPI_Status* status)); +MPI_CALL(XBT_PUBLIC int, MPI_File_write_at, + (MPI_File fh, MPI_Offset offset, const void* buf, int count, MPI_Datatype datatype, MPI_Status* status)); +MPI_CALL(XBT_PUBLIC int, MPI_File_write_at_all, + (MPI_File fh, MPI_Offset offset, const void* buf, int count, MPI_Datatype datatype, MPI_Status* status)); +MPI_CALL(XBT_PUBLIC int, MPI_File_read, (MPI_File fh, void* buf, int count, MPI_Datatype datatype, MPI_Status* status)); +MPI_CALL(XBT_PUBLIC int, MPI_File_read_all, + (MPI_File fh, void* buf, int count, MPI_Datatype datatype, MPI_Status* status)); +MPI_CALL(XBT_PUBLIC int, MPI_File_write, + (MPI_File fh, const void* buf, int count, MPI_Datatype datatype, MPI_Status* status)); +MPI_CALL(XBT_PUBLIC int, MPI_File_write_all, + (MPI_File fh, const void* buf, int count, MPI_Datatype datatype, MPI_Status* status)); +MPI_CALL(XBT_PUBLIC int, MPI_File_seek, (MPI_File fh, MPI_Offset offset, int whenace)); +MPI_CALL(XBT_PUBLIC int, MPI_File_get_position, (MPI_File fh, MPI_Offset* offset)); +MPI_CALL(XBT_PUBLIC int, MPI_File_read_shared, + (MPI_File fh, void* buf, int count, MPI_Datatype datatype, MPI_Status* status)); +MPI_CALL(XBT_PUBLIC int, MPI_File_write_shared, + (MPI_File fh, const void* buf, int count, MPI_Datatype datatype, MPI_Status* status)); +MPI_CALL(XBT_PUBLIC int, MPI_File_read_ordered, + (MPI_File fh, void* buf, int count, MPI_Datatype datatype, MPI_Status* status)); +MPI_CALL(XBT_PUBLIC int, MPI_File_write_ordered, + (MPI_File fh, const void* buf, int count, MPI_Datatype datatype, MPI_Status* status)); +MPI_CALL(XBT_PUBLIC int, MPI_File_seek_shared, (MPI_File fh, MPI_Offset offset, int whence)); +MPI_CALL(XBT_PUBLIC int, MPI_File_get_position_shared, (MPI_File fh, MPI_Offset* offset)); +MPI_CALL(XBT_PUBLIC int, MPI_File_sync, (MPI_File fh)); + //FIXME: these are not yet implemented @@ -760,8 +816,6 @@ typedef enum MPIR_Combiner_enum{ }MPIR_Combiner_enum; typedef void MPI_Handler_function(MPI_Comm*, int*, ...); - -typedef void* MPI_Errhandler; typedef void* MPI_Message; typedef void MPI_Comm_errhandler_function(MPI_Comm *, int *, ...); typedef void MPI_File_errhandler_function(MPI_File *, int *, ...); @@ -776,9 +830,8 @@ typedef MPI_File_errhandler_function MPI_File_errhandler_fn; typedef MPI_Win_errhandler_function MPI_Win_errhandler_fn; #define MPI_INFO_ENV smpi_process_info_env() XBT_PUBLIC_DATA const MPI_Datatype MPI_PACKED; -XBT_PUBLIC_DATA MPI_Errhandler* MPI_ERRORS_RETURN; -XBT_PUBLIC_DATA MPI_Errhandler* MPI_ERRORS_ARE_FATAL; -XBT_PUBLIC_DATA MPI_Errhandler* MPI_ERRHANDLER_NULL; +XBT_PUBLIC_DATA MPI_Errhandler MPI_ERRORS_RETURN; +XBT_PUBLIC_DATA MPI_Errhandler MPI_ERRORS_ARE_FATAL; MPI_CALL(XBT_PUBLIC MPI_Errhandler, MPI_Errhandler_f2c, (MPI_Fint errhandler)); MPI_CALL(XBT_PUBLIC MPI_Fint, MPI_Errhandler_c2f, (MPI_Errhandler errhandler)); @@ -822,12 +875,13 @@ MPI_CALL(XBT_PUBLIC int, MPI_Rsend_init, (const void* buf, int count, MPI_Datatype datatype, int dest, int tag, MPI_Comm comm, MPI_Request* request)); MPI_CALL(XBT_PUBLIC int, MPI_Irsend, (const void* buf, int count, MPI_Datatype datatype, int dest, int tag, MPI_Comm comm, MPI_Request* request)); -MPI_CALL(XBT_PUBLIC int, MPI_Test_cancelled, (const MPI_Status * status, int* flag)); MPI_CALL(XBT_PUBLIC int, MPI_Get_elements, (MPI_Status * status, MPI_Datatype datatype, int* elements)); MPI_CALL(XBT_PUBLIC int, MPI_Pcontrol, (const int level, ...)); MPI_CALL(XBT_PUBLIC int, MPI_Win_set_errhandler, (MPI_Win win, MPI_Errhandler errhandler)); -MPI_CALL(XBT_PUBLIC int, MPI_Type_get_envelope, +MPI_CALL(XBT_PUBLIC int, MPI_Win_get_errhandler, (MPI_Win win, MPI_Errhandler* errhandler)); +MPI_CALL(XBT_PUBLIC int, MPI_Win_create_errhandler, (MPI_Win_errhandler_fn * function, MPI_Errhandler* errhandler)); +MPI_CALL(XBT_PUBLIC int, MPI_Win_call_errhandler, (MPI_Win win, int errorcode));MPI_CALL(XBT_PUBLIC int, MPI_Type_get_envelope, (MPI_Datatype datatype, int* num_integers, int* num_addresses, int* num_datatypes, int* combiner)); MPI_CALL(XBT_PUBLIC int, MPI_Type_get_contents, (MPI_Datatype datatype, int max_integers, int max_addresses, int max_datatypes, int* array_of_integers, @@ -840,15 +894,7 @@ MPI_CALL(XBT_PUBLIC int, MPI_Pack_external, (char* datarep, void* inbuf, int inc void* outbuf, MPI_Aint outcount, MPI_Aint* position)); MPI_CALL(XBT_PUBLIC int, MPI_Unpack_external, (char* datarep, void* inbuf, MPI_Aint insize, MPI_Aint* position, void* outbuf, int outcount, MPI_Datatype datatype)); -MPI_CALL(XBT_PUBLIC int, MPI_Type_create_subarray, - (int ndims, const int* array_of_sizes, const int* array_of_subsizes, const int* array_of_starts, int order, MPI_Datatype oldtype, - MPI_Datatype* newtype)); MPI_CALL(XBT_PUBLIC int, MPI_Type_match_size, (int typeclass, int size, MPI_Datatype* datatype)); -MPI_CALL(XBT_PUBLIC int, MPI_Comm_set_info, (MPI_Comm comm, MPI_Info info)); -MPI_CALL(XBT_PUBLIC int, MPI_Comm_get_info, (MPI_Comm comm, MPI_Info* info)); -MPI_CALL(XBT_PUBLIC int, MPI_Comm_dup_with_info, (MPI_Comm comm, MPI_Info info, MPI_Comm* newcomm)); -MPI_CALL(XBT_PUBLIC int, MPI_Comm_split_type, - (MPI_Comm comm, int split_type, int key, MPI_Info info, MPI_Comm* newcomm)); MPI_CALL(XBT_PUBLIC int, MPI_Comm_connect, (const char* port_name, MPI_Info info, int root, MPI_Comm comm, MPI_Comm* newcomm)); MPI_CALL(XBT_PUBLIC int, MPI_Unpublish_name, (char* service_name, MPI_Info info, char* port_name)); @@ -876,28 +922,12 @@ MPI_CALL(XBT_PUBLIC int, MPI_File_create_errhandler, (MPI_File_errhandler_function * function, MPI_Errhandler* errhandler)); MPI_CALL(XBT_PUBLIC int, MPI_File_set_errhandler, (MPI_File file, MPI_Errhandler errhandler)); MPI_CALL(XBT_PUBLIC int, MPI_File_get_errhandler, (MPI_File file, MPI_Errhandler* errhandler)); -MPI_CALL(XBT_PUBLIC int, MPI_File_open, (MPI_Comm comm, const char* filename, int amode, MPI_Info info, MPI_File* fh)); -MPI_CALL(XBT_PUBLIC int, MPI_File_close, (MPI_File * fh)); -MPI_CALL(XBT_PUBLIC int, MPI_File_delete, (const char* filename, MPI_Info info)); MPI_CALL(XBT_PUBLIC int, MPI_File_set_size, (MPI_File fh, MPI_Offset size)); MPI_CALL(XBT_PUBLIC int, MPI_File_preallocate, (MPI_File fh, MPI_Offset size)); -MPI_CALL(XBT_PUBLIC int, MPI_File_get_size, (MPI_File fh, MPI_Offset* size)); -MPI_CALL(XBT_PUBLIC int, MPI_File_get_group, (MPI_File fh, MPI_Group* group)); -MPI_CALL(XBT_PUBLIC int, MPI_File_get_amode, (MPI_File fh, int* amode)); -MPI_CALL(XBT_PUBLIC int, MPI_File_set_info, (MPI_File fh, MPI_Info info)); -MPI_CALL(XBT_PUBLIC int, MPI_File_get_info, (MPI_File fh, MPI_Info* info_used)); MPI_CALL(XBT_PUBLIC int, MPI_File_set_view, (MPI_File fh, MPI_Offset disp, MPI_Datatype etype, MPI_Datatype filetype, const char* datarep, MPI_Info info)); MPI_CALL(XBT_PUBLIC int, MPI_File_get_view, (MPI_File fh, MPI_Offset* disp, MPI_Datatype* etype, MPI_Datatype* filetype, char* datarep)); -MPI_CALL(XBT_PUBLIC int, MPI_File_read_at, - (MPI_File fh, MPI_Offset offset, void* buf, int count, MPI_Datatype datatype, MPI_Status* status)); -MPI_CALL(XBT_PUBLIC int, MPI_File_read_at_all, - (MPI_File fh, MPI_Offset offset, void* buf, int count, MPI_Datatype datatype, MPI_Status* status)); -MPI_CALL(XBT_PUBLIC int, MPI_File_write_at, - (MPI_File fh, MPI_Offset offset, const void* buf, int count, MPI_Datatype datatype, MPI_Status* status)); -MPI_CALL(XBT_PUBLIC int, MPI_File_write_at_all, - (MPI_File fh, MPI_Offset offset, const void* buf, int count, MPI_Datatype datatype, MPI_Status* status)); MPI_CALL(XBT_PUBLIC int, MPI_File_iread_at, (MPI_File fh, MPI_Offset offset, void* buf, int count, MPI_Datatype datatype, MPI_Request* request)); MPI_CALL(XBT_PUBLIC int, MPI_File_iwrite_at, @@ -906,13 +936,6 @@ MPI_CALL(XBT_PUBLIC int, MPI_File_iread_at_all, (MPI_File fh, MPI_Offset offset, void* buf, int count, MPI_Datatype datatype, MPI_Request* request)); MPI_CALL(XBT_PUBLIC int, MPI_File_iwrite_at_all, (MPI_File fh, MPI_Offset offset, const void* buf, int count, MPI_Datatype datatype, MPI_Request* request)); -MPI_CALL(XBT_PUBLIC int, MPI_File_read, (MPI_File fh, void* buf, int count, MPI_Datatype datatype, MPI_Status* status)); -MPI_CALL(XBT_PUBLIC int, MPI_File_read_all, - (MPI_File fh, void* buf, int count, MPI_Datatype datatype, MPI_Status* status)); -MPI_CALL(XBT_PUBLIC int, MPI_File_write, - (MPI_File fh, const void* buf, int count, MPI_Datatype datatype, MPI_Status* status)); -MPI_CALL(XBT_PUBLIC int, MPI_File_write_all, - (MPI_File fh, const void* buf, int count, MPI_Datatype datatype, MPI_Status* status)); MPI_CALL(XBT_PUBLIC int, MPI_File_iread, (MPI_File fh, void* buf, int count, MPI_Datatype datatype, MPI_Request* request)); MPI_CALL(XBT_PUBLIC int, MPI_File_iwrite, @@ -921,23 +944,11 @@ MPI_CALL(XBT_PUBLIC int, MPI_File_iread_all, (MPI_File fh, void* buf, int count, MPI_Datatype datatype, MPI_Request* request)); MPI_CALL(XBT_PUBLIC int, MPI_File_iwrite_all, (MPI_File fh, const void* buf, int count, MPI_Datatype datatype, MPI_Request* request)); -MPI_CALL(XBT_PUBLIC int, MPI_File_seek, (MPI_File fh, MPI_Offset offset, int whenace)); -MPI_CALL(XBT_PUBLIC int, MPI_File_get_position, (MPI_File fh, MPI_Offset* offset)); MPI_CALL(XBT_PUBLIC int, MPI_File_get_byte_offset, (MPI_File fh, MPI_Offset offset, MPI_Offset* disp)); -MPI_CALL(XBT_PUBLIC int, MPI_File_read_shared, - (MPI_File fh, void* buf, int count, MPI_Datatype datatype, MPI_Status* status)); -MPI_CALL(XBT_PUBLIC int, MPI_File_write_shared, - (MPI_File fh, const void* buf, int count, MPI_Datatype datatype, MPI_Status* status)); MPI_CALL(XBT_PUBLIC int, MPI_File_iread_shared, (MPI_File fh, void* buf, int count, MPI_Datatype datatype, MPI_Request* request)); MPI_CALL(XBT_PUBLIC int, MPI_File_iwrite_shared, (MPI_File fh, const void* buf, int count, MPI_Datatype datatype, MPI_Request* request)); -MPI_CALL(XBT_PUBLIC int, MPI_File_read_ordered, - (MPI_File fh, void* buf, int count, MPI_Datatype datatype, MPI_Status* status)); -MPI_CALL(XBT_PUBLIC int, MPI_File_write_ordered, - (MPI_File fh, const void* buf, int count, MPI_Datatype datatype, MPI_Status* status)); -MPI_CALL(XBT_PUBLIC int, MPI_File_seek_shared, (MPI_File fh, MPI_Offset offset, int whence)); -MPI_CALL(XBT_PUBLIC int, MPI_File_get_position_shared, (MPI_File fh, MPI_Offset* offset)); MPI_CALL(XBT_PUBLIC int, MPI_File_read_at_all_begin, (MPI_File fh, MPI_Offset offset, void* buf, int count, MPI_Datatype datatype)); MPI_CALL(XBT_PUBLIC int, MPI_File_read_at_all_end, (MPI_File fh, void* buf, MPI_Status* status)); @@ -955,9 +966,10 @@ MPI_CALL(XBT_PUBLIC int, MPI_File_write_ordered_end, (MPI_File fh, const void* b MPI_CALL(XBT_PUBLIC int, MPI_File_get_type_extent, (MPI_File fh, MPI_Datatype datatype, MPI_Aint* extent)); MPI_CALL(XBT_PUBLIC int, MPI_File_set_atomicity, (MPI_File fh, int flag)); MPI_CALL(XBT_PUBLIC int, MPI_File_get_atomicity, (MPI_File fh, int* flag)); -MPI_CALL(XBT_PUBLIC int, MPI_File_sync, (MPI_File fh)); MPI_CALL(XBT_PUBLIC int, MPI_Mrecv, (void* buf, int count, MPI_Datatype datatype, MPI_Message* message, MPI_Status* status)); MPI_CALL(XBT_PUBLIC int, MPI_Mprobe, (int source, int tag, MPI_Comm comm, MPI_Message* message, MPI_Status* status)); +MPI_CALL(XBT_PUBLIC int, MPI_Imrecv, (void* buf, int count, MPI_Datatype datatype, MPI_Message* message, MPI_Request *request)); +MPI_CALL(XBT_PUBLIC int, MPI_Improbe, (int source, int tag, MPI_Comm comm, int *flag, MPI_Message* message, MPI_Status* status)); //FIXME: End of all the not yet implemented stuff // smpi functions @@ -971,16 +983,6 @@ XBT_PUBLIC void smpi_execute_flops(double flops); XBT_PUBLIC void smpi_execute(double duration); XBT_PUBLIC void smpi_execute_benched(double duration); -// PLEASE NOTE: If you remove these functions, the entire smpi_dvfs.cpp file can be removed as well!! -XBT_ATTRIB_DEPRECATED_v324("Please use sg_host_get_pstate_speed(sg_host_self(), pstate_index) instead") XBT_PUBLIC double smpi_get_host_power_peak_at(int pstate_index); -XBT_ATTRIB_DEPRECATED_v324("Please use sg_host_speed(sg_host_self()) instead") XBT_PUBLIC double smpi_get_host_current_power_peak(); -XBT_ATTRIB_DEPRECATED_v324("Please use sg_host_get_nb_pstates(sg_host_self()) instead") XBT_PUBLIC int smpi_get_host_nb_pstates(); -XBT_ATTRIB_DEPRECATED_v324("Please use sg_host_set_pstate(sg_host_self(), pstate_index) instead") XBT_PUBLIC void smpi_set_host_pstate(int pstate_index); -XBT_ATTRIB_DEPRECATED_v324("Please use sg_host_get_pstate(sg_host_self()) instead") XBT_PUBLIC int smpi_get_host_pstate(); - -XBT_ATTRIB_DEPRECATED_v324("Please use sg_host_get_consumed_energy(sg_host_self()) instead") XBT_PUBLIC double smpi_get_host_consumed_energy(); - - XBT_PUBLIC unsigned long long smpi_rastro_resolution(); XBT_PUBLIC unsigned long long smpi_rastro_timestamp(); XBT_PUBLIC void smpi_sample_1(int global, const char* file, int line, int iters, double threshold); @@ -1004,7 +1006,7 @@ XBT_PUBLIC void smpi_trace_set_call_location_(const char* file, int* line); /** Fortran binding + -fsecond-underscore **/ XBT_PUBLIC void smpi_trace_set_call_location__(const char* file, int* line); -#define SMPI_ITER_NAME1(line) iter_count##line +#define SMPI_ITER_NAME1(line) _XBT_CONCAT(iter_count, line) #define SMPI_ITER_NAME(line) SMPI_ITER_NAME1(line) #define SMPI_SAMPLE_LOOP(loop_init, loop_end, loop_iter, global, iters, thres)\ int SMPI_ITER_NAME(__LINE__)=0;\ @@ -1034,14 +1036,14 @@ XBT_PUBLIC void smpi_shared_free(void* data); XBT_PUBLIC int smpi_shared_known_call(const char* func, const char* input); XBT_PUBLIC void* smpi_shared_get_call(const char* func, const char* input); XBT_PUBLIC void* smpi_shared_set_call(const char* func, const char* input, void* data); -#define SMPI_SHARED_CALL(func, input, ...) \ - (smpi_shared_known_call(#func, input) ? smpi_shared_get_call(#func, input) \ - : smpi_shared_set_call(#func, input, (func(__VA_ARGS__)))) +#define SMPI_SHARED_CALL(func, input, ...) \ + (smpi_shared_known_call(_XBT_STRINGIFY(func), input) \ + ? smpi_shared_get_call(_XBT_STRINGIFY(func), input) \ + : smpi_shared_set_call(_XBT_STRINGIFY(func), input, (func(__VA_ARGS__)))) /* Fortran specific stuff */ XBT_PUBLIC int smpi_main(const char* program, int argc, char* argv[]); -XBT_PUBLIC void smpi_process_init(int* argc, char*** argv); /* Trace replay specific stuff */ XBT_PUBLIC void smpi_replay_init(const char* instance_id, int rank, double start_delay_flops); // Only initialization @@ -1057,15 +1059,12 @@ SG_END_DECL() /* C++ declarations for shared_malloc */ #ifdef __cplusplus -#include - XBT_PUBLIC int smpi_is_shared(void* ptr, std::vector>& private_blocks, size_t* offset); std::vector> shift_and_frame_private_blocks(const std::vector>& vec, size_t offset, size_t buff_size); std::vector> merge_private_blocks(const std::vector>& src, const std::vector>& dst); - #endif #endif