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
Merge branch 'master' of scm.gforge.inria.fr:/gitroot/simgrid/simgrid
[simgrid.git]
/
src
/
smpi
/
smpi_global.cpp
diff --git
a/src/smpi/smpi_global.cpp
b/src/smpi/smpi_global.cpp
index
d7eec99
..
2e95353
100644
(file)
--- a/
src/smpi/smpi_global.cpp
+++ b/
src/smpi/smpi_global.cpp
@@
-74,6
+74,8
@@
int process_count = 0;
int smpi_universe_size = 0;
int* index_to_process_data = nullptr;
extern double smpi_total_benched_time;
int smpi_universe_size = 0;
int* index_to_process_data = nullptr;
extern double smpi_total_benched_time;
+extern xbt_dict_t smpi_type_keyvals;
+extern xbt_dict_t smpi_comm_keyvals;
xbt_os_timer_t global_timer;
MPI_Comm MPI_COMM_WORLD = MPI_COMM_UNINITIALIZED;
MPI_Errhandler *MPI_ERRORS_RETURN = nullptr;
xbt_os_timer_t global_timer;
MPI_Comm MPI_COMM_WORLD = MPI_COMM_UNINITIALIZED;
MPI_Errhandler *MPI_ERRORS_RETURN = nullptr;
@@
-98,8
+100,8
@@
void smpi_process_init(int *argc, char ***argv)
{
if (argc != nullptr && argv != nullptr) {
{
if (argc != nullptr && argv != nullptr) {
- smx_
process
_t proc = SIMIX_process_self();
- proc->context->set_cleanup(MSG_process_cleanup_from_SIMIX);
+ smx_
actor
_t proc = SIMIX_process_self();
+ proc->context->set_cleanup(
&
MSG_process_cleanup_from_SIMIX);
char* instance_id = (*argv)[1];
int rank = xbt_str_parse_int((*argv)[2], "Invalid rank: %s");
int index = smpi_process_index_of_smx_process(proc);
char* instance_id = (*argv)[1];
int rank = xbt_str_parse_int((*argv)[2], "Invalid rank: %s");
int index = smpi_process_index_of_smx_process(proc);
@@
-382,7
+384,7
@@
void print_request(const char *message, MPI_Request request)
message, request, request->buf, request->size, request->src, request->dst, request->tag, request->flags);
}
message, request, request->buf, request->size, request->src, request->dst, request->tag, request->flags);
}
-void smpi_comm_copy_buffer_callback(smx_
synchro
_t synchro, void *buff, size_t buff_size)
+void smpi_comm_copy_buffer_callback(smx_
activity
_t synchro, void *buff, size_t buff_size)
{
XBT_DEBUG("Copy the data over");
void* tmpbuff=buff;
{
XBT_DEBUG("Copy the data over");
void* tmpbuff=buff;
@@
-418,7
+420,7
@@
void smpi_comm_copy_buffer_callback(smx_synchro_t synchro, void *buff, size_t bu
if(tmpbuff!=buff)xbt_free(tmpbuff);
}
if(tmpbuff!=buff)xbt_free(tmpbuff);
}
-void smpi_comm_null_copy_buffer_callback(smx_
synchro
_t comm, void *buff, size_t buff_size)
+void smpi_comm_null_copy_buffer_callback(smx_
activity
_t comm, void *buff, size_t buff_size)
{
return;
}
{
return;
}
@@
-639,6
+641,10
@@
void smpi_global_destroy()
}
xbt_free(index_to_process_data);
}
xbt_free(index_to_process_data);
+ if(smpi_type_keyvals!=nullptr)
+ xbt_dict_free(&smpi_type_keyvals);
+ if(smpi_comm_keyvals!=nullptr)
+ xbt_dict_free(&smpi_comm_keyvals);
if(smpi_privatize_global_variables)
smpi_destroy_global_memory_segments();
smpi_free_static();
if(smpi_privatize_global_variables)
smpi_destroy_global_memory_segments();
smpi_free_static();