communications had a bad impact)
!!! WARNING !!!
In order to save space the arbitrary choice changed. The processes now
have to be named p0, p1, ..., pN instead of process0, process1, processN
The resulting gain becomes impressive for large traces.
git-svn-id: svn+ssh://scm.gforge.inria.fr/svn/simgrid/simgrid/trunk@7055
48e7efb5-ca39-0410-a469-
dd3cf9ba447f
// char *to = xbt_dynar_get_as(action, 2, char *);
DEBUG2("Entering Send: %s (size: %lg)", name, parse_double(size));
MSG_task_send(MSG_task_create(name, 0, parse_double(size), NULL), to);
// char *to = xbt_dynar_get_as(action, 2, char *);
DEBUG2("Entering Send: %s (size: %lg)", name, parse_double(size));
MSG_task_send(MSG_task_create(name, 0, parse_double(size), NULL), to);
- INFO2("%s %f", name, MSG_get_clock()-clock);
+ DEBUG2("%s %f", name, MSG_get_clock()-clock);
comm_helper =
MSG_process_create_with_arguments(spawn_name, spawned_send,
NULL, MSG_host_self(), 2, myargv);
comm_helper =
MSG_process_create_with_arguments(spawn_name, spawned_send,
NULL, MSG_host_self(), 2, myargv);
- INFO2("%s %f",xbt_str_join(action, " "), MSG_get_clock()-clock);
+ DEBUG2("%s %f",xbt_str_join(action, " "), MSG_get_clock()-clock);
DEBUG1("Receiving: %s", name);
MSG_task_receive(&task, mailbox_name);
// MSG_task_receive(&task, MSG_process_get_name(MSG_process_self()));
DEBUG1("Receiving: %s", name);
MSG_task_receive(&task, mailbox_name);
// MSG_task_receive(&task, MSG_process_get_name(MSG_process_self()));
- INFO2("%s %f", name, MSG_get_clock()-clock);
+ DEBUG2("%s %f", name, MSG_get_clock()-clock);
MSG_task_destroy(task);
free(name);
}
MSG_task_destroy(task);
free(name);
}
NULL, MSG_host_self(),
1, myargv);
NULL, MSG_host_self(),
1, myargv);
- INFO2("%s %f", xbt_str_join(action, " "),
+ DEBUG2("%s %f", xbt_str_join(action, " "),
MSG_get_clock()-clock);
free(name);
MSG_get_clock()-clock);
free(name);
DEBUG1("Entering %s", name);
sprintf(task_name,"%s_wait",MSG_process_get_name(MSG_process_self()));
DEBUG1("Entering %s", name);
sprintf(task_name,"%s_wait",MSG_process_get_name(MSG_process_self()));
- INFO1("wait: %s", task_name);
+ DEBUG1("wait: %s", task_name);
MSG_task_receive(&task,task_name);
MSG_task_destroy(task);
MSG_task_receive(&task,task_name);
MSG_task_destroy(task);
- INFO2("%s %f", name, MSG_get_clock()-clock);
+ DEBUG2("%s %f", name, MSG_get_clock()-clock);
free(name);
}
static void barrier (xbt_dynar_t action)
{
char *name = xbt_str_join(action, " ");
free(name);
}
static void barrier (xbt_dynar_t action)
{
char *name = xbt_str_join(action, " ");
- INFO1("barrier: %s", name);
+ DEBUG1("barrier: %s", name);
char *name;
char task_name[80];
char spawn_name[80];
char *name;
char task_name[80];
char spawn_name[80];
char *comm_size = xbt_dynar_get_as(action, 2, char *);
char *comp_size = xbt_dynar_get_as(action, 3, char *);
m_process_t comm_helper=NULL;
char *comm_size = xbt_dynar_get_as(action, 2, char *);
char *comp_size = xbt_dynar_get_as(action, 3, char *);
m_process_t comm_helper=NULL;
name = bprintf("reduce_%d", counters->reduce_counter++);
name = bprintf("reduce_%d", counters->reduce_counter++);
- if (!strcmp(process_name, "process0")){
+ if (!strcmp(process_name, "p0")){
DEBUG2("%s: %s is the Root",name, process_name);
for(i=1;i<communicator_size;i++){
DEBUG2("%s: %s is the Root",name, process_name);
for(i=1;i<communicator_size;i++){
- sprintf(spawn_name,"%s_process%d", name, i);
+ sprintf(spawn_name,"%s_p%d_%s", name, i,
+ MSG_process_get_name(MSG_process_self()));
sprintf(task_name,"%s_wait", spawn_name);
sprintf(task_name,"%s_wait", spawn_name);
+ myargv = (char**) calloc (2, sizeof (char*));
+
+ myargv[0] = xbt_strdup(spawn_name);
+ myargv[1] = NULL;
+
- MSG_process_create(task_name, spawned_recv,
- (void *) xbt_strdup(spawn_name),
- MSG_host_self());
+ MSG_process_create_with_arguments(task_name, spawned_recv,
+ NULL, MSG_host_self(),
+ 1, myargv);
}
for(i=1;i<communicator_size;i++){
}
for(i=1;i<communicator_size;i++){
- sprintf(task_name,"%s_process%d_wait", name, i);
+ sprintf(task_name,"%s_p%d_p0_wait", name, i);
MSG_task_receive(&task,task_name);
MSG_task_destroy(task);
task=NULL;
MSG_task_receive(&task,task_name);
MSG_task_destroy(task);
task=NULL;
DEBUG1("%s: computed", name);
} else {
DEBUG2("%s: %s sends", name, process_name);
DEBUG1("%s: computed", name);
} else {
DEBUG2("%s: %s sends", name, process_name);
- sprintf(task_name,"%s_%s", name, process_name);
+ sprintf(task_name,"%s_%s_p0", name, process_name);
DEBUG1("put on %s", task_name);
MSG_task_send(MSG_task_create(name, 0, parse_double(comm_size), NULL),
task_name);
}
MSG_process_set_data(MSG_process_self(), (void*)counters);
DEBUG1("put on %s", task_name);
MSG_task_send(MSG_task_create(name, 0, parse_double(comm_size), NULL),
task_name);
}
MSG_process_set_data(MSG_process_self(), (void*)counters);
- INFO2("%s %f", xbt_str_join(action, " "), MSG_get_clock()-clock);
+ DEBUG2("%s %f", xbt_str_join(action, " "), MSG_get_clock()-clock);
}
name = bprintf("bcast_%d", counters->bcast_counter++);
}
name = bprintf("bcast_%d", counters->bcast_counter++);
- if (!strcmp(process_name, "process0")){
+ if (!strcmp(process_name, "p0")){
DEBUG2("%s: %s is the Root",name, process_name);
for(i=1;i<communicator_size;i++){
DEBUG2("%s: %s is the Root",name, process_name);
for(i=1;i<communicator_size;i++){
}
for(i=1;i<communicator_size;i++){
}
for(i=1;i<communicator_size;i++){
- sprintf(task_name,"process%d_wait", i);
+ sprintf(task_name,"p%d_wait", i);
DEBUG1("get on %s", task_name);
MSG_task_receive(&task,task_name);
MSG_task_destroy(task);
DEBUG1("get on %s", task_name);
MSG_task_receive(&task,task_name);
MSG_task_destroy(task);
}
MSG_process_set_data(MSG_process_self(), (void*)counters);
}
MSG_process_set_data(MSG_process_self(), (void*)counters);
- INFO2("%s %f", xbt_str_join(action, " "), MSG_get_clock()-clock);
+ DEBUG2("%s %f", xbt_str_join(action, " "), MSG_get_clock()-clock);
double clock = MSG_get_clock();
DEBUG1("Entering %s", name);
MSG_process_sleep(parse_double(duration));
double clock = MSG_get_clock();
DEBUG1("Entering %s", name);
MSG_process_sleep(parse_double(duration));
- INFO2("%s %f ", name, MSG_get_clock()-clock);
+ DEBUG2("%s %f ", name, MSG_get_clock()-clock);
name = bprintf("allReduce_%d", counters->allReduce_counter++);
name = bprintf("allReduce_%d", counters->allReduce_counter++);
- if (!strcmp(process_name, "process0")){
+ if (!strcmp(process_name, "p0")){
DEBUG2("%s: %s is the Root",name, process_name);
for(i=1;i<communicator_size;i++){
DEBUG2("%s: %s is the Root",name, process_name);
for(i=1;i<communicator_size;i++){
- sprintf(spawn_name,"%s_process%d", name, i);
+ sprintf(spawn_name,"%s_p%d_%s", name, i,
+ MSG_process_get_name(MSG_process_self()));
sprintf(task_name,"%s_wait", spawn_name);
sprintf(task_name,"%s_wait", spawn_name);
+ myargv = (char**) calloc (2, sizeof (char*));
+
+ myargv[0] = xbt_strdup(spawn_name);
+ myargv[1] = NULL;
+
- MSG_process_create(task_name, spawned_recv,
- (void *) xbt_strdup(spawn_name),
- MSG_host_self());
+ MSG_process_create_with_arguments(task_name, spawned_recv,
+ NULL, MSG_host_self(),
+ 1, myargv);
}
for(i=1;i<communicator_size;i++){
}
for(i=1;i<communicator_size;i++){
- sprintf(task_name,"%s_process%d_wait", name, i);
+ sprintf(task_name,"%s_p%d_p0_wait", name, i);
MSG_task_receive(&task,task_name);
MSG_task_destroy(task);
task=NULL;
MSG_task_receive(&task,task_name);
MSG_task_destroy(task);
task=NULL;
}
for(i=1;i<communicator_size;i++){
}
for(i=1;i<communicator_size;i++){
- sprintf(task_name,"process%d_wait", i);
+ sprintf(task_name,"p%d_wait", i);
DEBUG1("get on %s", task_name);
MSG_task_receive(&task,task_name);
MSG_task_destroy(task);
DEBUG1("get on %s", task_name);
MSG_task_receive(&task,task_name);
MSG_task_destroy(task);
} else {
DEBUG2("%s: %s sends", name, process_name);
} else {
DEBUG2("%s: %s sends", name, process_name);
- sprintf(task_name,"%s_%s", name, process_name);
+ sprintf(task_name,"%s_%s_p0", name, process_name);
DEBUG1("put on %s", task_name);
MSG_task_send(MSG_task_create(name, 0, parse_double(comm_size), NULL),
task_name);
DEBUG1("put on %s", task_name);
MSG_task_send(MSG_task_create(name, 0, parse_double(comm_size), NULL),
task_name);
}
MSG_process_set_data(MSG_process_self(), (void*)counters);
}
MSG_process_set_data(MSG_process_self(), (void*)counters);
- INFO2("%s %f", xbt_str_join(action, " "), MSG_get_clock()-clock);
+ DEBUG2("%s %f", xbt_str_join(action, " "), MSG_get_clock()-clock);
DEBUG1("Entering %s", name);
MSG_task_execute(task);
MSG_task_destroy(task);
DEBUG1("Entering %s", name);
MSG_task_execute(task);
MSG_task_destroy(task);
- INFO2("%s %f", name, MSG_get_clock()-clock);
+ DEBUG2("%s %f", name, MSG_get_clock()-clock);
-process0 comm_size 3
-process0 allReduce 5e8 5e8
-process1 allReduce 5e8 5e8
-process2 allReduce 5e8 5e8
+p0 comm_size 3
+p0 allReduce 5e8 5e8
+p1 allReduce 5e8 5e8
+p2 allReduce 5e8 5e8
-process0 compute 5e8
-process1 compute 5e8
-process2 compute 5e8
+p0 compute 5e8
+p1 compute 5e8
+p2 compute 5e8
-process0 comm_size 3
-process0 bcast 5e8
-process1 bcast 5e8
-process2 bcast 5e8
+p0 comm_size 3
+p0 bcast 5e8
+p1 bcast 5e8
+p2 bcast 5e8
-process0 compute 5e8
-process1 compute 2e8
-process2 compute 5e8
+p0 compute 5e8
+p1 compute 2e8
+p2 compute 5e8
-process0 bcast 5e8
-process1 bcast 5e8
-process2 bcast 5e8
+p0 bcast 5e8
+p1 bcast 5e8
+p2 bcast 5e8
-process0 compute 5e8
-process1 compute 2e8
-process2 compute 5e8
+p0 compute 5e8
+p1 compute 2e8
+p2 compute 5e8
-process0 reduce 5e8 5e8
-process1 reduce 5e8 5e8
-process2 reduce 5e8 5e8
+p0 reduce 5e8 5e8
+p1 reduce 5e8 5e8
+p2 reduce 5e8 5e8
-process0 comm_size 3
-process0 reduce 5e8 5e8
-process1 reduce 5e8 5e8
-process2 reduce 5e8 5e8
+p0 comm_size 3
+p0 reduce 5e8 5e8
+p1 reduce 5e8 5e8
+p2 reduce 5e8 5e8
-process0 compute 5e8
-process1 compute 5e8
-process2 compute 5e8
+p0 compute 5e8
+p1 compute 5e8
+p2 compute 5e8
<?xml version='1.0'?>
<!DOCTYPE platform SYSTEM "simgrid.dtd">
<platform version="2">
<?xml version='1.0'?>
<!DOCTYPE platform SYSTEM "simgrid.dtd">
<platform version="2">
- <process host="Tremblay" function="process0"/>
- <process host="Jupiter" function="process1"/>
- <process host="Fafard" function="process2"/>
+ <process host="Tremblay" function="p0"/>
+ <process host="Jupiter" function="p1"/>
+ <process host="Fafard" function="p2"/>