results.h 1.22 KB
Newer Older
1
2
3
4
#include <stdio.h>
#include <stdlib.h>
#include <mpi.h>

Iker Martín's avatar
Iker Martín committed
5
6
#define RESULTS_INIT_DATA_QTY 100

7
8
9
typedef struct {
  // Iters data
  double *iters_time;
Iker Martín's avatar
Iker Martín committed
10
  int *iters_type, iter_index, iters_size;
11

Iker Martín's avatar
Iker Martín committed
12
13
14
15
  // Spawn, Thread, Sync, Async and Exec time
  double spawn_start, *spawn_time, *spawn_real_time;
  double sync_start, sync_end,  *sync_time;
  double async_start, async_end, *async_time;
16
  double exec_start, exec_time;
Iker Martín's avatar
Iker Martín committed
17
  //Overcharge time is time spent in malleability that is from IO modules 
18
19
} results_data;

20
21
void send_results(results_data *results, int root, int resizes, MPI_Comm intercomm);
void recv_results(results_data *results, int root, int resizes, MPI_Comm intercomm);
22

Iker Martín's avatar
Iker Martín committed
23
24
25
26
27
28
29
30
31
32
void set_results_post_reconfig(results_data *results, int grp, int sdr, int adr);
void reset_results_index(results_data *results);

void compute_results_iter(results_data *results, int myId, int root, MPI_Comm comm);

void print_iter_results(results_data results, int last_normal_iter_index);
void print_global_results(results_data results, int resizes);
void init_results_data(results_data *results, int resizes, int iters_size);
void realloc_results_iters(results_data *results, int needed);
void free_results_data(results_data *results);