}
void mpi_reduce_local_ (void *inbuf, void *inoutbuf, int* count, int* datatype, int* op, int* ierr){
-
*ierr = MPI_Reduce_local(inbuf, inoutbuf, *count, simgrid::smpi::Datatype::f2c(*datatype), simgrid::smpi::Op::f2c(*op));
}
void mpi_comm_create_(int* comm, int* group, int* newcomm, int* ierr) {
MPI_Comm tmp;
-
*ierr = MPI_Comm_create(simgrid::smpi::Comm::f2c(*comm),simgrid::smpi::Group::f2c(*group), &tmp);
if(*ierr == MPI_SUCCESS) {
*newcomm = tmp->add_f();
void mpi_comm_group_(int* comm, int* group_out, int* ierr) {
MPI_Group tmp;
-
*ierr = MPI_Comm_group(simgrid::smpi::Comm::f2c(*comm), &tmp);
if(*ierr == MPI_SUCCESS) {
*group_out = tmp->c2f();
}
void mpi_comm_delete_attr_ (int* comm, int* comm_keyval, int* ierr){
-
*ierr = MPI_Comm_delete_attr (simgrid::smpi::Comm::f2c(*comm), *comm_keyval);
}
}
void mpi_comm_compare_ (int* comm1, int* comm2, int *result, int* ierr){
-
*ierr = MPI_Comm_compare(simgrid::smpi::Comm::f2c(*comm1), simgrid::smpi::Comm::f2c(*comm2), result);
}
}
void mpi_type_delete_attr_ (int* type, int* type_keyval, int* ierr){
-
*ierr = MPI_Type_delete_attr ( simgrid::smpi::Datatype::f2c(*type), *type_keyval);
}
}
void mpi_type_get_true_extent_ (int* datatype, MPI_Aint * lb, MPI_Aint * extent, int* ierr){
-
*ierr = MPI_Type_get_true_extent(simgrid::smpi::Datatype::f2c(*datatype), lb, extent);
}
*datatype = tmp->c2f();
}
}
-
-
}
int PMPI_Iallreduce(const void *sendbuf, void *recvbuf, int count, MPI_Datatype datatype, MPI_Op op, MPI_Comm comm, MPI_Request *request)
{
-
CHECK_COMM(6)
CHECK_BUFFER(1, sendbuf, count)
CHECK_BUFFER(2, recvbuf, count)
int ret = fh->seek(offset,whence);
smpi_bench_begin();
return ret;
-
}
int PMPI_File_seek_shared(MPI_File fh, MPI_Offset offset, int whence){
int ret = fh->seek_shared(offset,whence);
smpi_bench_begin();
return ret;
-
}
int PMPI_File_get_position(MPI_File fh, MPI_Offset* offset){
int PMPI_Group_union(MPI_Group group1, MPI_Group group2, MPI_Group * newgroup)
{
-
if (group1 == MPI_GROUP_NULL || group2 == MPI_GROUP_NULL) {
return MPI_ERR_GROUP;
} else if (newgroup == nullptr) {
int PMPI_Group_intersection(MPI_Group group1, MPI_Group group2, MPI_Group * newgroup)
{
-
if (group1 == MPI_GROUP_NULL || group2 == MPI_GROUP_NULL) {
return MPI_ERR_GROUP;
} else if (newgroup == nullptr) {
int papi_event_set_;
papi_counter_t papi_counter_data_;
#endif
+
public:
static simgrid::xbt::Extension<simgrid::s4u::Actor, ActorExt> EXTENSION_ID;
void call(MPI_File file, int errorcode);
static void unref(Errhandler* errhandler);
static Errhandler* f2c(int id);
-
};
-
}
}
-#endif
\ No newline at end of file
+#endif
std::vector<int> index_to_rank_map_;
int refcount_ = 1; /* refcount_: start > 0 so that this group never gets freed */
+
public:
Group() = default;
explicit Group(int size) : size_(size), rank_to_actor_map_(size, nullptr), index_to_rank_map_(size, MPI_UNDEFINED) {}
double smpi_adjust_comp_speed(){
double speedup=1;
if (smpi_cfg_comp_adjustment_file()[0] != '\0') {
-
smpi_trace_call_location_t* loc = smpi_process()->call_location();
std::string key = loc->get_composed_key();
std::unordered_map<std::string, double>::const_iterator it = location2speedup.find(key);
simgrid::config::alias("smpi/privatization", {"smpi/privatize_global_variables", "smpi/privatize-global-variables"});
simgrid::config::alias("smpi/reduce_scatter", {"smpi/reduce-scatter"});
_smpi_options_initialized=true;
-
}
void smpi_check_options()
}
delete[] to_exclude;
return MPI_SUCCESS;
-
}
static bool is_rank_in_range(int rank, int first, int last)
if (!done) {
done = true;
simgrid::s4u::Exec::on_completion.connect([](simgrid::s4u::Actor const& actor, simgrid::s4u::Exec const& exec) {
-
simgrid::smpi::plugin::lb.record_actor_computation(actor, exec.get_cost());
});