AdjoinableMPI
Main Page
Related Pages
Modules
Classes
Files
File List
File Members
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
;
35
int
origin_count
;
36
MPI_Datatype
origin_datatype
;
37
int
target_rank
;
38
MPI_Aint
target_disp
;
39
int
target_count
;
40
MPI_Datatype
target_datatype
;
41
void
*
adjointTempBuf
;
42
void
*
adjointBuf
;
43
int
adjointCount
;
44
void
*
idx
;
45
}
AMPI_WinRequest
;
46
47
typedef
struct
{
48
AMPI_WinRequest
*
v
;
49
int
top
;
50
size_t
size
;
51
MPI_Aint
num_reqs
;
52
}
AMPI_Win_stack
;
53
54
55
void
AMPI_WIN_STACK_push
(
AMPI_Win_stack
*s,
AMPI_WinRequest
req);
56
AMPI_WinRequest
AMPI_WIN_STACK_pop
(
AMPI_Win_stack
*s);
57
void
AMPI_WIN_STACK_stack_init
(
AMPI_Win_stack
*s);
58
void
AMPI_WIN_STACK_destroy
(
AMPI_Win_stack
*s);
59
int
AMPI_WIN_STACK_full
(
AMPI_Win_stack
*s);
60
void
AMPI_WIN_STACK_expand
(
AMPI_Win_stack
*s);
61
void
AMPI_WIN_STACK_shrink
(
AMPI_Win_stack
*s);
62
int
AMPI_WIN_STACK_empty
(
AMPI_Win_stack
*s);
63
64
65
69
typedef
struct
{
70
void
**
map
;
71
void
*
base
;
72
void
*
idx
;
73
MPI_Aint
size
;
74
AMPI_Win_stack
*
req_stack
;
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
ampi
userIF
window.h
Generated on Mon Feb 22 2016 23:45:09 for AdjoinableMPI by
1.8.4