X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/38cc0d89b17367770fa9a0e1ac3284d6b7a4fd3e..eab85056cbbc13c9f86b98e59cb84a37e2fbe546:/src/smpi/internals/smpi_deployment.cpp diff --git a/src/smpi/internals/smpi_deployment.cpp b/src/smpi/internals/smpi_deployment.cpp index 85de568017..76052cfc13 100644 --- a/src/smpi/internals/smpi_deployment.cpp +++ b/src/smpi/internals/smpi_deployment.cpp @@ -21,16 +21,13 @@ public: : name(name) , size(max_no_processes) , present_processes(0) - , index(process_count) , comm_world(comm) , finalization_barrier(finalization_barrier) - { - } + { } const char* name; int size; int present_processes; - int index; // Badly named. This should be "no_processes_when_registering" ;) MPI_Comm comm_world; msg_bar_t finalization_barrier; }; @@ -42,7 +39,6 @@ using simgrid::smpi::app::Instance; static std::map smpi_instances; extern int process_count; // How many processes have been allocated over all instances? -extern int* index_to_process_data; /** \ingroup smpi_simulation * \brief Registers a running instance of a MPI program. @@ -78,18 +74,15 @@ void SMPI_app_instance_register(const char *name, xbt_main_func_t code, int num_ smpi_instances.insert(std::pair(name, instance)); } -void smpi_deployment_register_process(const char* instance_id, int rank, int index) +void smpi_deployment_register_process(const char* instance_id, int rank, simgrid::s4u::ActorPtr actor) { - if (smpi_instances.empty()) { // no instance registered, we probably used smpirun. - index_to_process_data[index]=index; + if (smpi_instances.empty()) // no instance registered, we probably used smpirun. return; - } Instance& instance = smpi_instances.at(instance_id); instance.present_processes++; - index_to_process_data[index] = instance.index + rank; - instance.comm_world->group()->set_mapping(index, rank); + instance.comm_world->group()->set_mapping(actor, rank); } MPI_Comm* smpi_deployment_comm_world(const char* instance_id)