#include #include #include #include "../IOcodes/read_ini.h" #define ROOT 0 int work(int n); void iterate(double *matrix, int n); void computeMatrix(double *matrix, int n); void initMatrix(double **matrix, int n); int main(int argc, char *argv[]) { int numP, myId; MPI_Init(&argc, &argv); MPI_Comm_size(MPI_COMM_WORLD, &numP); MPI_Comm_rank(MPI_COMM_WORLD, &myId); /* MPI_Comm_get_parent(&comm_parents); if(comm_parents != MPI_COMM_NULL ) { // Si son procesos hijos deben recoger la distribucion if(myId == ROOT) { printf("Nuevo set de procesos de %d\n", numP); } } else { // Primer set de procesos inicializan valores } */ int res = work(10000); if(res) { // Ultimo set de procesos comprueba resultados //RESULTADOS } configuration *config_file = read_ini_file("test.ini"); print_config(config_file); free_config(config_file); MPI_Finalize(); return 0; } /* * Bucle de computo principal */ int work(int n) { int iter, MAXITER=5; //FIXME BORRAR MAXITER double *matrix; initMatrix(&matrix, n); for(iter=0; iter TIME) { computeMatrix(matrix, n); actual_time = MPI_Wtime(); } } /* * Realiza una multiplicación de matrices de tamaño n */ void computeMatrix(double *matrix, int n) { int row, col, i, aux; for(row=0; i