CommDist.h 1.67 KB
Newer Older
1
2
3
#ifndef COMMDIST_H
#define COMMDIST_H

iker_martin's avatar
iker_martin committed
4
5
6
7
#include <stdio.h>
#include <stdlib.h>
#include <mpi.h>
#include <string.h>
8
#include "malleabilityStates.h"
9
#include "malleabilityDataStructures.h"
iker_martin's avatar
iker_martin committed
10

11
int sync_communication(void *send, void **recv, int qty, MPI_Datatype datatype, int myId, int numP, int numO, int is_children_group, int comm_type, MPI_Comm comm);
12
//int async_communication(char *send, char **recv, int qty, int myId, int numP, int numO, int is_children_group, int red_method, int red_strategies, MPI_Comm comm, MPI_Request **requests, size_t *request_qty);
iker_martin's avatar
iker_martin committed
13

14
int async_communication_start(void *send, void **recv, int qty, MPI_Datatype datatype, int myId, int numP, int numO, int is_children_group, int red_method, int red_strategies, MPI_Comm comm, MPI_Request **requests, size_t *request_qty, MPI_Win *win);
15
int async_communication_check(int myId, int is_children_group, int red_strategies, MPI_Comm comm, MPI_Request *requests, size_t request_qty);
16
void async_communication_wait(MPI_Comm comm, MPI_Request *requests, size_t request_qty, int post_ibarrier);
17
18
19
void async_communication_end(int red_method, int red_strategies, MPI_Request *requests, size_t request_qty, MPI_Win *win);
//int send_async(char *array, int qty, int myId, int numP, MPI_Comm intercomm, int numP_child, MPI_Request **comm_req, int red_method, int red_strategies);
//void recv_async(char **array, int qty, int myId, int numP, MPI_Comm intercomm, int numP_parents, int red_method, int red_strategies);
20
21


iker_martin's avatar
iker_martin committed
22
void malloc_comm_array(char **array, int qty, int myId, int numP);
23
24
int malleability_red_contains_strat(int comm_strategies, int strategy, int *result);
int malleability_red_add_strat(int *comm_strategies, int strategy);
25
#endif