/usr/include/gmr.h is in libarmci-mpi-dev 0.0~git20160222-2.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 | /*
* Copyright (C) 2010. See COPYRIGHT in top-level directory.
*/
#ifndef HAVE_GMR_H
#define HAVE_GMR_H
#include <mpi.h>
#include <armci.h>
#include <armcix.h>
typedef armci_size_t gmr_size_t;
typedef struct {
void *base;
gmr_size_t size;
} gmr_slice_t;
typedef struct gmr_s {
MPI_Win window; /* MPI Window for this GMR */
ARMCI_Group group; /* Copy of the ARMCI group on which this GMR was allocated */
struct gmr_s *prev; /* Linked list pointers for GMR list */
struct gmr_s *next;
gmr_slice_t *slices; /* Array of GMR slices for this allocation */
int nslices;
} gmr_t;
extern gmr_t *gmr_list;
gmr_t *gmr_create(gmr_size_t local_size, void **base_ptrs, ARMCI_Group *group);
void gmr_destroy(gmr_t *mreg, ARMCI_Group *group);
int gmr_destroy_all(void);
gmr_t *gmr_lookup(void *ptr, int proc);
int gmr_get(gmr_t *mreg, void *src, void *dst, int size, int target);
int gmr_put(gmr_t *mreg, void *src, void *dst, int size, int target);
int gmr_accumulate(gmr_t *mreg, void *src, void *dst, int count, MPI_Datatype type, int proc);
int gmr_get_accumulate(gmr_t *mreg, void *src, void *out, void *dst, int count, MPI_Datatype type,
MPI_Op op, int proc);
int gmr_fetch_and_op(gmr_t *mreg, void *src, void *out, void *dst, MPI_Datatype type, MPI_Op op, int proc);
int gmr_get_typed(gmr_t *mreg, void *src, int src_count, MPI_Datatype src_type,
void *dst, int dst_count, MPI_Datatype dst_type, int proc);
int gmr_put_typed(gmr_t *mreg, void *src, int src_count, MPI_Datatype src_type,
void *dst, int dst_count, MPI_Datatype dst_type, int proc);
int gmr_accumulate_typed(gmr_t *mreg, void *src, int src_count, MPI_Datatype src_type,
void *dst, int dst_count, MPI_Datatype dst_type, int proc);
int gmr_get_accumulate_typed(gmr_t *mreg, void *src, int src_count, MPI_Datatype src_type,
void *out, int out_count, MPI_Datatype out_type, void *dst, int dst_count, MPI_Datatype dst_type,
MPI_Op op, int proc);
int gmr_lockall(gmr_t *mreg);
int gmr_unlockall(gmr_t *mreg);
int gmr_flush(gmr_t *mreg, int proc, int local_only);
int gmr_flushall(gmr_t *mreg, int local_only);
int gmr_sync(gmr_t *mreg);
void gmr_progress(void);
#endif /* HAVE_GMR_H */
|