#include "mpi.h" int main( int argc, char **argv ) { //Second level of spawns if (argc>2){ int provided; MPI_Init_thread( &argc, &argv, MPI_THREAD_MULTIPLE, &provided ); MPI_Comm parent; MPI_Comm_get_parent(&parent); printf("launched x86\n"); printf("free lowlevel CRASHING (HANGS W I_MPI_DEBUG)\n"); MPI_Comm_free(0); printf("end free lowlevel CRASHING\n"); MPI_Finalize(); sleep(10); return 0; } //First level of spawns if (argc>1){ int provided; int number_of_spawns = 4; MPI_Comm client; MPI_Status status; int size, again; MPI_Init_thread( &argc, &argv, MPI_THREAD_MULTIPLE, &provided ); MPI_Comm_size(MPI_COMM_WORLD, &size); int rank; MPI_Comm_rank(MPI_COMM_WORLD,&rank); char *array_of_commands[number_of_spawns]; char **array_of_argv[number_of_spawns]; MPI_Info array_of_info[number_of_spawns]; int n_process[number_of_spawns]; int i=0; printf("PRINTING LIST OF SPAWNING HOSTS:\n"); for (i=0; i