Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
factorize
[simgrid.git] / src / smpi / include / private.hpp
index e31f526..fbf827a 100644 (file)
@@ -1,4 +1,4 @@
-/* Copyright (c) 2007-2018. The SimGrid Team. All rights reserved.          */
+/* Copyright (c) 2007-2019. The SimGrid Team. All rights reserved.          */
 
 /* This program is free software; you can redistribute it and/or modify it
  * under the terms of the license (GNU LGPL) which comes with this package. */
 #include <unordered_map>
 #include <vector>
 
-#define MPI_REQ_PERSISTENT 0x1
-#define MPI_REQ_NON_PERSISTENT 0x2
-#define MPI_REQ_SEND 0x4
-#define MPI_REQ_RECV 0x8
-//#define MPI_REQ_RECV_DELETE 0x10
-#define MPI_REQ_ISEND 0x20
-#define MPI_REQ_SSEND 0x40
-#define MPI_REQ_PREPARED 0x80
-#define MPI_REQ_FINISHED 0x100
-#define MPI_REQ_RMA 0x200
-#define MPI_REQ_ACCUMULATE 0x400
+constexpr unsigned MPI_REQ_PERSISTENT     = 0x1;
+constexpr unsigned MPI_REQ_NON_PERSISTENT = 0x2;
+constexpr unsigned MPI_REQ_SEND           = 0x4;
+constexpr unsigned MPI_REQ_RECV           = 0x8;
+constexpr unsigned MPI_REQ_RECV_DELETE    = 0x10;
+constexpr unsigned MPI_REQ_ISEND          = 0x20;
+constexpr unsigned MPI_REQ_SSEND          = 0x40;
+constexpr unsigned MPI_REQ_PREPARED       = 0x80;
+constexpr unsigned MPI_REQ_FINISHED       = 0x100;
+constexpr unsigned MPI_REQ_RMA            = 0x200;
+constexpr unsigned MPI_REQ_ACCUMULATE     = 0x400;
+constexpr unsigned MPI_REQ_GENERALIZED    = 0x800;
+constexpr unsigned MPI_REQ_COMPLETE       = 0x1000;
 
 enum class SmpiProcessState { UNINITIALIZED, INITIALIZING, INITIALIZED, FINALIZED };
 
-#define COLL_TAG_REDUCE -112
-#define COLL_TAG_SCATTER -223
-#define COLL_TAG_SCATTERV -334
-#define COLL_TAG_GATHER -445
-#define COLL_TAG_ALLGATHER -556
-#define COLL_TAG_ALLGATHERV -667
-#define COLL_TAG_BARRIER -778
-#define COLL_TAG_REDUCE_SCATTER -889
-#define COLL_TAG_ALLTOALLV -1000
-#define COLL_TAG_ALLTOALL -1112
-#define COLL_TAG_GATHERV -2223
-#define COLL_TAG_BCAST -3334
-#define COLL_TAG_ALLREDUCE -4445
+constexpr int COLL_TAG_REDUCE         = -112;
+constexpr int COLL_TAG_SCATTER        = -223;
+constexpr int COLL_TAG_SCATTERV       = -334;
+constexpr int COLL_TAG_GATHER         = -445;
+constexpr int COLL_TAG_ALLGATHER      = -556;
+constexpr int COLL_TAG_ALLGATHERV     = -667;
+constexpr int COLL_TAG_BARRIER        = -778;
+constexpr int COLL_TAG_REDUCE_SCATTER = -889;
+constexpr int COLL_TAG_ALLTOALLV      = -1000;
+constexpr int COLL_TAG_ALLTOALL       = -1112;
+constexpr int COLL_TAG_GATHERV        = -2223;
+constexpr int COLL_TAG_BCAST          = -3334;
+constexpr int COLL_TAG_ALLREDUCE      = -4445;
 // SMPI_RMA_TAG has to be the smallest one, as it will be decremented for accumulate ordering.
-#define SMPI_RMA_TAG -6666
+constexpr int SMPI_RMA_TAG            = -6666;
+
+#define MPI_REQUEST_IGNORED ((MPI_Request*)-100)
 
 /* Convert between Fortran and C */
 
@@ -62,15 +66,17 @@ XBT_PRIVATE simgrid::smpi::ActorExt* smpi_process();
 XBT_PRIVATE simgrid::smpi::ActorExt* smpi_process_remote(simgrid::s4u::ActorPtr actor);
 XBT_PRIVATE int smpi_process_count();
 
-XBT_PRIVATE void smpi_deployment_register_process(const std::string instance_id, int rank,
+XBT_PRIVATE void smpi_deployment_register_process(const std::string& instance_id, int rank,
                                                   simgrid::s4u::ActorPtr actor);
-XBT_PRIVATE MPI_Comm* smpi_deployment_comm_world(const std::string instance_id);
-XBT_PRIVATE simgrid::s4u::Barrier* smpi_deployment_finalization_barrier(const std::string instance_id);
+XBT_PRIVATE MPI_Comm* smpi_deployment_comm_world(const std::string& instance_id);
+XBT_PRIVATE simgrid::s4u::Barrier* smpi_deployment_finalization_barrier(const std::string& instance_id);
 XBT_PRIVATE void smpi_deployment_cleanup_instances();
 
-XBT_PRIVATE void smpi_comm_copy_buffer_callback(smx_activity_t comm, void* buff, size_t buff_size);
+XBT_PRIVATE void smpi_comm_copy_buffer_callback(simgrid::kernel::activity::CommImpl* comm, void* buff,
+                                                size_t buff_size);
 
-XBT_PRIVATE void smpi_comm_null_copy_buffer_callback(smx_activity_t comm, void* buff, size_t buff_size);
+XBT_PRIVATE void smpi_comm_null_copy_buffer_callback(simgrid::kernel::activity::CommImpl* comm, void* buff,
+                                                     size_t buff_size);
 
 XBT_PRIVATE int smpi_enabled();
 XBT_PRIVATE void smpi_global_init();
@@ -191,7 +197,7 @@ void mpi_win_set_info_(int* win, int* info, int* ierr);
 void mpi_win_get_info_(int* win, int* info, int* ierr);
 void mpi_win_get_group_(int* win, int* group, int* ierr);
 void mpi_win_get_attr_(int* win, int* type_keyval, int* attribute_val, int* flag, int* ierr);
-void mpi_win_set_attr_(int* win, int* type_keyval, void* att, int* ierr);
+void mpi_win_set_attr_(int* win, int* type_keyval, int* att, int* ierr);
 void mpi_win_delete_attr_(int* win, int* comm_keyval, int* ierr);
 void mpi_win_create_keyval_(void* copy_fn, void* delete_fn, int* keyval, void* extra_state, int* ierr);
 void mpi_win_free_keyval_(int* keyval, int* ierr);
@@ -243,7 +249,7 @@ void mpi_type_dup_(int* datatype, int* newdatatype, int* ierr);
 void mpi_type_set_name_(int* datatype, char* name, int* ierr, int size);
 void mpi_type_get_name_(int* datatype, char* name, int* len, int* ierr);
 void mpi_type_get_attr_(int* type, int* type_keyval, int* attribute_val, int* flag, int* ierr);
-void mpi_type_set_attr_(int* type, int* type_keyval, void* attribute_val, int* ierr);
+void mpi_type_set_attr_(int* type, int* type_keyval, int* attribute_val, int* ierr);
 void mpi_type_delete_attr_(int* type, int* type_keyval, int* ierr);
 void mpi_type_create_keyval_(void* copy_fn, void* delete_fn, int* keyval, void* extra_state, int* ierr);
 void mpi_type_free_keyval_(int* keyval, int* ierr);
@@ -265,7 +271,7 @@ void mpi_group_excl_(int* group, int* n, int* ranks, int* newgroup, int* ierr);
 void mpi_group_range_incl_(int* group, int* n, int ranges[][3], int* newgroup, int* ierr);
 void mpi_group_range_excl_(int* group, int* n, int ranges[][3], int* newgroup, int* ierr);
 void mpi_comm_get_attr_(int* comm, int* comm_keyval, int* attribute_val, int* flag, int* ierr);
-void mpi_comm_set_attr_(int* comm, int* comm_keyval, void* attribute_val, int* ierr);
+void mpi_comm_set_attr_(int* comm, int* comm_keyval, int* attribute_val, int* ierr);
 void mpi_comm_delete_attr_(int* comm, int* comm_keyval, int* ierr);
 void mpi_comm_create_keyval_(void* copy_fn, void* delete_fn, int* keyval, void* extra_state, int* ierr);
 void mpi_comm_free_keyval_(int* keyval, int* ierr);
@@ -337,7 +343,7 @@ void mpi_comm_remote_size_(int* comm, int* size, int* ierr);
 void mpi_issend_(void* buf, int* count, int* datatype, int* dest, int* tag, int* comm, int* request, int* ierr);
 void mpi_probe_(int* source, int* tag, int* comm, MPI_Status* status, int* ierr);
 void mpi_attr_delete_(int* comm, int* keyval, int* ierr);
-void mpi_attr_put_(int* comm, int* keyval, void* attr_value, int* ierr);
+void mpi_attr_put_(int* comm, int* keyval, int* attr_value, int* ierr);
 void mpi_rsend_init_(void* buf, int* count, int* datatype, int* dest, int* tag, int* comm, int* request, int* ierr);
 void mpi_keyval_create_(void* copy_fn, void* delete_fn, int* keyval, void* extra_state, int* ierr);
 void mpi_keyval_free_(int* keyval, int* ierr);