AdjoinableMPI
 All Classes Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
window.h
Go to the documentation of this file.
1 /*
2 ##########################################################
3 # This file is part of the AdjoinableMPI library #
4 # released under the MIT License. #
5 # The full COPYRIGHT notice can be found in the top #
6 # level directory of the AdjoinableMPI distribution. #
7 ##########################################################
8 */
9 #ifndef _AMPI_WINDOW_H_
10 #define _AMPI_WINDOW_H_
11 
21 #include <stddef.h>
22 #include "ampi/userIF/libConfig.h"
26 #define AMPI_WINDOW_STACK_CHUNK_SIZE 1000
27 /*
28  * @{
29  * \name Structures and functions related to the tracing of one-sided
30  * communication.
31  */
32 
33 typedef struct {
34  void *origin_addr;
36  MPI_Datatype origin_datatype;
38  MPI_Aint target_disp;
40  MPI_Datatype target_datatype;
42  void *adjointBuf;
44  void *idx;
46 
47 typedef struct {
49  int top;
50  size_t size;
51  MPI_Aint num_reqs;
53 
54 
63 
64 
65 
69 typedef struct {
70  void **map;
71  void *base;
72  void *idx;
73  MPI_Aint size;
75  MPI_Win **plainWindow;
76  int num_reqs;
77  MPI_Comm comm;
78  MPI_Aint disp;
79 } AMPI_Win;
80 
81 
85 void AMPI_WIN_sync(AMPI_Win win);
89 #endif