#include "src/smpi/include/smpi_actor.hpp"
#include "src/surf/HostImpl.hpp"
-#include <climits>
+#include <limits>
XBT_LOG_NEW_DEFAULT_SUBCATEGORY(smpi_comm, smpi, "Logging specific to SMPI (comm)");
MPI_Comm Comm::find_intra_comm(int * leader){
//get the indices of all processes sharing the same simix host
int intra_comm_size = 0;
- int min_index = INT_MAX; // the minimum index will be the leader
+ aid_t min_index = std::numeric_limits<aid_t>::max(); // the minimum index will be the leader
sg_host_self()->get_impl()->foreach_actor([this, &intra_comm_size, &min_index](auto& actor) {
- if (this->group()->rank(actor.get_pid()) != MPI_UNDEFINED) { // Is this process in the current group?
+ aid_t index = actor.get_pid();
+ if (this->group()->rank(index) != MPI_UNDEFINED) { // Is this process in the current group?
intra_comm_size++;
- int index = actor.get_pid();
if (index < min_index)
min_index = index;
}
extern "C" void _sampi_free(void* ptr)
{
size_t alloc_size = alloc_table.at(ptr);
- int my_proc_id = simgrid::s4u::this_actor::get_pid();
+ aid_t my_proc_id = simgrid::s4u::this_actor::get_pid();
memory_size[my_proc_id] -= alloc_size;
xbt_free(ptr);
}
void APMPI_Migrate(MPI_Comm comm)
{
smpi_bench_end();
- int my_proc_id = simgrid::s4u::this_actor::get_pid();
+ aid_t my_proc_id = simgrid::s4u::this_actor::get_pid();
TRACE_migration_call(comm->rank() + 1, new simgrid::instr::AmpiMigrateTIData(memory_size[my_proc_id]));
smpi_bench_begin();
}
static const std::map<std::string, std::string, std::less<>> ampi_colors = {{"migrate", "0.2 0.5 0.2"},
{"iteration", "0.5 0.5 0.5"}};
-void TRACE_Iteration_in(int rank, simgrid::instr::TIData* extra)
+void TRACE_Iteration_in(aid_t pid, simgrid::instr::TIData* extra)
{
if (not TRACE_smpi_is_enabled()) {
delete extra;
return;
}
- smpi_container(rank)->get_state("MPI_STATE")->add_entity_value("iteration", ampi_colors.at("iteration"));
- smpi_container(rank)->get_state("MPI_STATE")->push_event("iteration", extra);
+ smpi_container(pid)->get_state("MPI_STATE")->add_entity_value("iteration", ampi_colors.at("iteration"));
+ smpi_container(pid)->get_state("MPI_STATE")->push_event("iteration", extra);
}
-void TRACE_Iteration_out(int rank, simgrid::instr::TIData* extra)
+void TRACE_Iteration_out(aid_t pid, simgrid::instr::TIData* extra)
{
if (not TRACE_smpi_is_enabled()) return;
- smpi_container(rank)->get_state("MPI_STATE")->pop_event(extra);
+ smpi_container(pid)->get_state("MPI_STATE")->pop_event(extra);
}
-void TRACE_migration_call(int rank, simgrid::instr::TIData* extra)
+void TRACE_migration_call(aid_t pid, simgrid::instr::TIData* extra)
{
if (not TRACE_smpi_is_enabled()) return;
const std::string operation = "migrate";
if(smpi_process()->replaying()) {//When replaying, we register an event.
- smpi_container(rank)->get_state("MIGRATE_STATE")->add_entity_value(operation);
+ smpi_container(pid)->get_state("MIGRATE_STATE")->add_entity_value(operation);
- auto* type = static_cast<simgrid::instr::EventType*>(smpi_container(rank)->type_->by_name(operation));
- new simgrid::instr::NewEvent(smpi_process()->simulated_elapsed(), smpi_container(rank), type,
+ auto* type = static_cast<simgrid::instr::EventType*>(smpi_container(pid)->type_->by_name(operation));
+ new simgrid::instr::NewEvent(smpi_process()->simulated_elapsed(), smpi_container(pid), type,
type->get_entity_value(operation));
} else {
// FIXME From rktesser: Ugly workaround!
delete extra;
return;
}
- smpi_container(rank)->get_state("MIGRATE_STATE")->add_entity_value(operation, ampi_colors.at(operation));
- smpi_container(rank)->get_state("MIGRATE_STATE")->push_event(operation, extra);
- smpi_container(rank)->get_state("MIGRATE_STATE")->pop_event();
+ smpi_container(pid)->get_state("MIGRATE_STATE")->add_entity_value(operation, ampi_colors.at(operation));
+ smpi_container(pid)->get_state("MIGRATE_STATE")->push_event(operation, extra);
+ smpi_container(pid)->get_state("MIGRATE_STATE")->pop_event();
}
}
#include "smpi/smpi.h"
#include "src/instr/instr_private.hpp"
-XBT_PRIVATE void TRACE_Iteration_in(int rank, simgrid::instr::TIData* extra);
-XBT_PRIVATE void TRACE_Iteration_out(int rank, simgrid::instr::TIData* extra);
-XBT_PRIVATE void TRACE_migration_call(int rank, simgrid::instr::TIData* extra);
+XBT_PRIVATE void TRACE_Iteration_in(aid_t pid, simgrid::instr::TIData* extra);
+XBT_PRIVATE void TRACE_Iteration_out(aid_t pid, simgrid::instr::TIData* extra);
+XBT_PRIVATE void TRACE_migration_call(aid_t pid, simgrid::instr::TIData* extra);
#endif