libxmp/libxmpf in Omni Compiler
1.3.4
|
#include <stdio.h>
#include <stdlib.h>
#include <mpi.h>
#include "xmp_internal.h"
◆ _XMP_mpi_onesided_alloc_win()
void _XMP_mpi_onesided_alloc_win |
( |
MPI_Win * |
win, |
|
|
void ** |
addr, |
|
|
size_t |
size, |
|
|
MPI_Comm |
comm, |
|
|
bool |
is_acc |
|
) |
| |
104 #if defined(_XMP_XACC_CUDA)
107 #elif defined(_XMP_XACC_OPENCL)
108 _XMP_fatal(
"_XMP_mpi_onesided_alloc_win: XACC/OpenCL does not support onesided communication");
111 _XMP_fatal(
"_XMP_mpi_onesided_alloc_win: XACC is not enabled");
114 MPI_Win_allocate(size,
◆ _XMP_mpi_onesided_create_win()
void _XMP_mpi_onesided_create_win |
( |
MPI_Win * |
win, |
|
|
void * |
addr, |
|
|
size_t |
size, |
|
|
MPI_Comm |
comm |
|
) |
| |
◆ _XMP_mpi_onesided_dealloc_win()
void _XMP_mpi_onesided_dealloc_win |
( |
MPI_Win * |
win, |
|
|
void ** |
addr, |
|
|
bool |
is_acc |
|
) |
| |
131 void *win_base = NULL;
134 MPI_Win_get_attr(*win, MPI_WIN_BASE, &win_base, &flag);
138 if(*addr != win_base){
147 #if defined(_XMP_XACC_CUDA)
149 #elif defined(_XMP_XACC_OPENCL)
150 _XMP_fatal(
"_XMP_mpi_onesided_dealloc_win: XACC/OpenCL does not support onesided communication");
153 _XMP_fatal(
"_XMP_mpi_onesided_dealloc_win: XACC is not enabled");
◆ _XMP_mpi_onesided_destroy_win()
void _XMP_mpi_onesided_destroy_win |
( |
MPI_Win * |
win | ) |
|
◆ _XMP_mpi_onesided_finalize()
void _XMP_mpi_onesided_finalize |
( |
| ) |
|
73 MPI_Barrier(MPI_COMM_WORLD);
78 #if defined(_XMP_XACC) && defined(_XMP_XACC_CUDA)
83 MPI_Barrier(MPI_COMM_WORLD);
◆ _XMP_mpi_onesided_initialize()
void _XMP_mpi_onesided_initialize |
( |
const size_t |
heap_size | ) |
|
27 XACC_DEBUG(
"_XMP_mpi_onesided_initialize start");
29 char *p = getenv(
"XMP_ONESIDED_MPI_MULTI_WIN");
39 XACC_DEBUG(
"alloc memory size=%zd\n", heap_size);
52 #if defined(_XMP_XACC) && defined(_XMP_XACC_CUDA)
◆ _XMP_flag_multi_win
int _XMP_flag_multi_win = 0 |
◆ _xmp_mpi_distarray_win
MPI_Win _xmp_mpi_distarray_win |
◆ _xmp_mpi_distarray_win_acc
MPI_Win _xmp_mpi_distarray_win_acc |
◆ _xmp_mpi_onesided_buf
char* _xmp_mpi_onesided_buf |
◆ _xmp_mpi_onesided_buf_acc
char* _xmp_mpi_onesided_buf_acc |
◆ _xmp_mpi_onesided_heap_size
size_t _xmp_mpi_onesided_heap_size |
◆ _xmp_mpi_onesided_win
MPI_Win _xmp_mpi_onesided_win |
◆ _xmp_mpi_onesided_win_acc
MPI_Win _xmp_mpi_onesided_win_acc |
void _XMP_mpi_onesided_destroy_win(MPI_Win *win)
Definition: xmp_onesided_mpi.c:124
MPI_Win _xmp_mpi_onesided_win
Definition: xmp_onesided_mpi.c:12
MPI_Win _xmp_mpi_onesided_win_acc
Definition: xmp_onesided_mpi.c:17
MPI_Win _xmp_mpi_distarray_win_acc
Definition: xmp_onesided_mpi.c:18
void _XACC_memory_alloc(_XACC_memory_t *memory, size_t size)
Definition: xacc_util_cl.c:52
char * _xmp_mpi_onesided_buf_acc
Definition: xmp_onesided_mpi.c:16
void _XMP_mpi_destroy_shift_queue(bool is_acc)
Destroy shift queue.
Definition: xmp_coarray_mpi.c:166
void _XMP_mpi_onesided_create_win(MPI_Win *win, void *addr, size_t size, MPI_Comm comm)
Definition: xmp_onesided_mpi.c:89
void _XMP_mpi_build_shift_queue(bool is_acc)
Set initial value to the shift queue.
Definition: xmp_coarray_mpi.c:153
char * _xmp_mpi_onesided_buf
Definition: xmp_onesided_mpi.c:11
void _XMP_mpi_onesided_dealloc_win(MPI_Win *win, void **addr, bool is_acc)
Definition: xmp_onesided_mpi.c:129
size_t _xmp_mpi_onesided_heap_size
Definition: xmp_onesided_mpi.c:10
#define XACC_DEBUG(...)
Definition: xmp_internal.h:768
MPI_Win _xmp_mpi_distarray_win
Definition: xmp_onesided_mpi.c:13
int _XMP_flag_multi_win
Definition: xmp_onesided_mpi.c:23
void _XMP_fatal(char *msg)
Definition: xmp_util.c:42
void _XMP_mpi_onesided_alloc_win(MPI_Win *win, void **addr, size_t size, MPI_Comm comm, bool is_acc)
Definition: xmp_onesided_mpi.c:99
void _XACC_memory_free(_XACC_memory_t *memory)
Definition: xacc_util_cl.c:64