return smpi_main(smpi_simulated_main_,argc,argv);
}
-int __attribute__((weak)) MAIN_(){
+int __attribute__((weak)) MAIN__(){
return smpi_main(smpi_simulated_main_,xargc, xargv);
};
#endif
int smpi_main(int (*realmain) (int argc, char *argv[]),int argc, char *argv[])
{
srand(SMPI_RAND_SEED);
-
+
if(getenv("SMPI_PRETEND_CC") != NULL) {
/* Hack to ensure that smpicc can pretend to be a simple compiler. Particularly handy to pass it to the configuration tools */
return 0;
SIMIX_function_register_default(realmain);
SIMIX_launch_application(argv[2]);
+ int allgather_id = find_coll_description(mpi_coll_allgather_description,
+ sg_cfg_get_string("smpi/allgather"));
+ mpi_coll_allgather_fun = (int (*)(void *, int, MPI_Datatype,
+ void*, int, MPI_Datatype, MPI_Comm))
+ mpi_coll_allgather_description[allgather_id].coll;
+
+ int allreduce_id = find_coll_description(mpi_coll_allreduce_description,
+ sg_cfg_get_string("smpi/allreduce"));
+ mpi_coll_allreduce_fun = (int (*)(void *sbuf, void *rbuf, int rcount, \
+ MPI_Datatype dtype, MPI_Op op, MPI_Comm comm))
+ mpi_coll_allreduce_description[allreduce_id].coll;
+
+ int alltoall_id = find_coll_description(mpi_coll_alltoall_description,
+ sg_cfg_get_string("smpi/alltoall"));
+ mpi_coll_alltoall_fun = (int (*)(void *, int, MPI_Datatype,
+ void*, int, MPI_Datatype, MPI_Comm))
+ mpi_coll_alltoall_description[alltoall_id].coll;
+
+ int alltoallv_id = find_coll_description(mpi_coll_alltoallv_description,
+ sg_cfg_get_string("smpi/alltoallv"));
+ mpi_coll_alltoallv_fun = (int (*)(void *, int*, int*, MPI_Datatype,
+ void*, int*, int*, MPI_Datatype, MPI_Comm))
+ mpi_coll_alltoallv_description[alltoallv_id].coll;
+
+ int bcast_id = find_coll_description(mpi_coll_bcast_description,
+ sg_cfg_get_string("smpi/bcast"));
+ mpi_coll_bcast_fun = (int (*)(void *buf, int count, MPI_Datatype datatype, \
+ int root, MPI_Comm com))
+ mpi_coll_bcast_description[bcast_id].coll;
+
+ int reduce_id = find_coll_description(mpi_coll_reduce_description,
+ sg_cfg_get_string("smpi/reduce"));
+ mpi_coll_reduce_fun = (int (*)(void *buf, void *rbuf, int count, MPI_Datatype datatype, \
+ MPI_Op op, int root, MPI_Comm comm))
+ mpi_coll_reduce_description[reduce_id].coll;
+
smpi_global_init();
/* Clean IO before the run */