#include #include #include #include #include #include #include #include "../IOcodes/results.h" #include "malleabilityZombies.h" #define PIDS_QTY 320 void zombies_suspend(); int offset_pids, *pids = NULL; void gestor_usr2() {} void zombies_collect_suspended(MPI_Comm comm, int myId, int numP, int numC, int root, void *results_void, int n_stages) { int pid = getpid(); int *pids_counts = malloc(numP * sizeof(int)); int *pids_displs = malloc(numP * sizeof(int)); int i, count=1; if(myId < numC) { count = 0; if(myId == root) { for(i=0; i < numC; i++) { pids_counts[i] = 0; } for(i=numC; i= numC) { // FIXME No deberia estar aqui // Needed to ensure iteration times are collected before suspending these processes results_data *results = (results_data *) results_void; compute_results_iter(results, myId, numP,root, comm); compute_results_stages(results, myId, numP, n_stages, root, comm); zombies_suspend(); } } void zombies_service_init() { offset_pids = 0; pids = malloc(PIDS_QTY * sizeof(int)); for(int i=0; i