-/* Copyright (c) 2009-2010, 2012-2017. The SimGrid Team.
+/* Copyright (c) 2009-2018. The SimGrid Team.
* All rights reserved. */
/* This program is free software; you can redistribute it and/or modify it
#ifndef SMPI_PROCESS_HPP
#define SMPI_PROCESS_HPP
+#include "private.hpp"
#include "simgrid/s4u/Mailbox.hpp"
#include "src/instr/instr_smpi.hpp"
#include "xbt/synchro.h"
MPI_Comm comm_intra_ = MPI_COMM_NULL;
MPI_Comm* comm_world_ = nullptr;
void* data_ = nullptr; /* user data */
- int index_ = MPI_UNDEFINED;
- char state_;
+ SmpiProcessState state_;
int sampling_ = 0; /* inside an SMPI_SAMPLE_ block? */
- char* instance_id_ = nullptr;
+ std::string instance_id_;
bool replaying_ = false; /* is the process replaying a trace */
msg_bar_t finalization_barrier_;
- int return_value_ = 0;
smpi_trace_call_location_t trace_call_loc_;
- smx_actor_t process_ = nullptr;
+ simgrid::s4u::ActorPtr actor_ = nullptr;
+ smpi_privatization_region_t privatized_region_;
+ int optind=0; /*for getopt replacement */
#if HAVE_PAPI
/** Contains hardware data as read by PAPI **/
int papi_event_set_;
papi_counter_t papi_counter_data_;
#endif
public:
- explicit Process(int index, msg_bar_t barrier);
- void set_data(int index, int* argc, char*** argv);
+ explicit Process(simgrid::s4u::ActorPtr actor, msg_bar_t barrier);
+ ~Process();
+ void set_data(int* argc, char*** argv);
void finalize();
int finalized();
int initialized();
void set_user_data(void *data);
void *get_user_data();
smpi_trace_call_location_t* call_location();
- int index();
- MPI_Comm comm_world();
+ void set_privatized_region(smpi_privatization_region_t region);
+ smpi_privatization_region_t privatized_region();
smx_mailbox_t mailbox();
smx_mailbox_t mailbox_small();
xbt_mutex_t mailboxes_mutex();
xbt_os_timer_t timer();
void simulated_start();
double simulated_elapsed();
+ MPI_Comm comm_world();
MPI_Comm comm_self();
MPI_Comm comm_intra();
void set_comm_intra(MPI_Comm comm);
void set_sampling(int s);
int sampling();
- msg_bar_t finalization_barrier();
- int return_value();
- void set_return_value(int val);
static void init(int *argc, char ***argv);
- smx_actor_t process();
+ simgrid::s4u::ActorPtr get_actor();
+ int get_optind();
+ void set_optind(int optind);
};