A
lgorithmique
N
umérique
D
istribuée
Public GIT Repository
projects
/
simgrid.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Have the communicators created together share a unique ID.
[simgrid.git]
/
src
/
smpi
/
mpi
/
smpi_f2c.cpp
diff --git
a/src/smpi/mpi/smpi_f2c.cpp
b/src/smpi/mpi/smpi_f2c.cpp
index
ffd795f
..
868644c
100644
(file)
--- a/
src/smpi/mpi/smpi_f2c.cpp
+++ b/
src/smpi/mpi/smpi_f2c.cpp
@@
-1,14
+1,19
@@
-/* Copyright (c) 2007-201
7
. The SimGrid Team. All rights reserved. */
+/* Copyright (c) 2007-201
9
. 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. */
/* 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 "private.h"
#include "smpi_f2c.hpp"
#include "smpi_f2c.hpp"
-#include "smpi_process.hpp"
+#include "private.hpp"
+#include "src/smpi/include/smpi_actor.hpp"
#include <cstdio>
#include <cstdio>
+int mpi_in_place_;
+int mpi_bottom_;
+int mpi_status_ignore_;
+int mpi_statuses_ignore_;
+
namespace simgrid{
namespace smpi{
namespace simgrid{
namespace smpi{
@@
-34,12
+39,12
@@
int F2C::f2c_id(){
};
char* F2C::get_key(char* key, int id) {
};
char* F2C::get_key(char* key, int id) {
- std::snprintf(key, KEY_SIZE, "%
x
", static_cast<unsigned>(id));
+ std::snprintf(key, KEY_SIZE, "%
u
", static_cast<unsigned>(id));
return key;
}
char* F2C::get_key_id(char* key, int id) {
return key;
}
char* F2C::get_key_id(char* key, int id) {
- std::snprintf(key, KEY_SIZE, "%
x_%d", static_cast<unsigned>(id), smpi_process()->index
());
+ std::snprintf(key, KEY_SIZE, "%
u_%ld", static_cast<unsigned>(id), simgrid::s4u::this_actor::get_pid
());
return key;
}
return key;
}
@@
-75,7
+80,7
@@
int F2C::c2f()
f2c_lookup_ = new std::unordered_map<std::string, F2C*>;
}
f2c_lookup_ = new std::unordered_map<std::string, F2C*>;
}
- for (auto elm : *f2c_lookup_)
+ for (auto
const&
elm : *f2c_lookup_)
if (elm.second == this)
return std::stoi(elm.first);
if (elm.second == this)
return std::stoi(elm.first);
@@
-90,11
+95,8
@@
F2C* F2C::f2c(int id)
if(id >= 0){
char key[KEY_SIZE];
if(id >= 0){
char key[KEY_SIZE];
- try {
- return f2c_lookup_->at(get_key(key, id));
- } catch (std::out_of_range& unfound) {
- return nullptr;
- }
+ auto comm = f2c_lookup_->find(get_key(key, id));
+ return comm == f2c_lookup_->end() ? nullptr : comm->second;
}else
return nullptr;
}
}else
return nullptr;
}