23 #include <sys/types.h> 29 #include "sion_debug.h" 30 #include "sion_internal.h" 32 #include "sion_filedesc.h" 41 #include <firmware/include/personality.h> 42 int sion_get_IO_comm_ompi(MPI_Comm *commSame) {
44 Personality_t personality;
45 int rc, rank, factor, bridgeid;
47 MPI_Comm_rank(MPI_COMM_WORLD, &rank);
50 Kernel_GetPersonality(&personality,
sizeof(Personality_t));
53 bridgeid = personality.Network_Config.cnBridge_E;
54 factor *= personality.Network_Config.Enodes;
55 bridgeid += personality.Network_Config.cnBridge_D*factor;
56 factor *= personality.Network_Config.Dnodes;
57 bridgeid += personality.Network_Config.cnBridge_C*factor;
58 factor *= personality.Network_Config.Cnodes;
59 bridgeid += personality.Network_Config.cnBridge_B*factor;
60 factor *= personality.Network_Config.Bnodes;
61 bridgeid += personality.Network_Config.cnBridge_A*factor;
64 rc=MPI_Comm_split(MPI_COMM_WORLD, bridgeid, rank, commSame);
70 int sion_get_IO_comm_ompi(MPI_Comm *commSame) {
73 rc=MPI_Comm_dup(MPI_COMM_WORLD, commSame);