YetAnotherCoupler 3.4.0
|
#include "config.h"
#include <assert.h>
#include <inttypes.h>
#include <limits.h>
#include <stdbool.h>
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
#include <mpi.h>
#include "yac_mpi_internal.h"
#include "geometry.h"
#include "ensure_array_size.h"
#include "ppm/core.h"
Go to the source code of this file.
Macros | |
#define | XSTR(s) STR(s) |
#define | STR(s) #s |
#define | USE_P2P_ALLTOALLV |
#define | YAC_ALLTOALL_P2P_TYPE(NAME, TYPE, TYPE_SIZE, MPI_TYPE) |
#define | OPENMPI_WORKAROUND |
Functions | |
int | yac_mpi_is_initialised () |
void | yac_yaxt_init (MPI_Comm comm) |
void | yac_yaxt_init_f2c (MPI_Fint comm) |
static void | yac_yaxt_cleanup () |
void | yac_mpi_init () |
void | yac_mpi_cleanup () |
void | yac_mpi_finalize () |
void | yac_mpi_error (int error_code, MPI_Comm comm) |
void | yac_alltoallv_p2p (void const *send_buffer, size_t const *sendcounts, size_t const *sdispls, void *recv_buffer, size_t const *recvcounts, size_t const *rdispls, size_t dt_size, MPI_Datatype dt, MPI_Comm comm) |
void | yac_alltoallv_p2p_group (void const *send_buffer, int const *sendcounts, int const *sdispls, void *recv_buffer, int const *recvcounts, int const *rdispls, size_t dt_size, MPI_Datatype dt, struct yac_group_comm group_comm) |
static int | nearest_power_of_two (int x) |
void | yac_allreduce_sum_dble (double *buffer, int count, struct yac_group_comm group_comm) |
static int | log2_ (int x) |
void | yac_allgather_uint64 (const uint64_t *sendbuf, uint64_t *recvbuf, int count, struct yac_group_comm group_comm) |
void | yac_bcast_group (void *buffer, int count, MPI_Datatype datatype, int root, struct yac_group_comm group_comm) |
struct yac_group_comm | yac_group_comm_new (MPI_Comm comm) |
void | yac_group_comm_delete (struct yac_group_comm group_comm) |
int | yac_group_comm_get_rank (struct yac_group_comm group_comm) |
int | yac_group_comm_get_size (struct yac_group_comm group_comm) |
int | yac_group_comm_get_global_rank (struct yac_group_comm group_comm) |
int | yac_group_comm_get_global_size (struct yac_group_comm group_comm) |
void | yac_group_comm_split (struct yac_group_comm group_comm, int split_rank, struct yac_group_comm *local_group_comm, struct yac_group_comm *remote_group_comm) |
MPI_Datatype | yac_get_bounding_circle_mpi_datatype (MPI_Comm comm) |
MPI_Datatype | yac_create_resized (MPI_Datatype dt, size_t new_size, MPI_Comm comm) |
void | yac_generate_alltoallv_args (int count, size_t const *sendcounts, size_t *recvcounts, size_t *sdispls, size_t *rdispls, MPI_Comm comm) |
void | yac_get_comm_buffers (int count, size_t **sendcounts, size_t **recvcounts, size_t **sdispls, size_t **rdispls, MPI_Comm comm) |
void | yac_free_comm_buffers (size_t *sendcounts, size_t *recvcounts, size_t *sdispls, size_t *rdispls) |
Variables | |
static int | mpi_initialised_by_yac = 0 |
static int | yaxt_initialised_by_yac = 0 |
static int | init_count = 0 |
static int | yaxt_init_count = 0 |
static size_t * | comm_buffer = NULL |
static size_t | comm_buffer_array_size = 0 |
static int | comm_buffer_in_use = 0 |
#define OPENMPI_WORKAROUND |
#define USE_P2P_ALLTOALLV |
#define YAC_ALLTOALL_P2P_TYPE | ( | NAME, | |
TYPE, | |||
TYPE_SIZE, | |||
MPI_TYPE ) |
|
static |
|
static |
void yac_allgather_uint64 | ( | const uint64_t * | sendbuf, |
uint64_t * | recvbuf, | ||
int | count, | ||
struct yac_group_comm | group_comm ) |
Definition at line 361 of file yac_mpi.c.
void yac_allreduce_sum_dble | ( | double * | buffer, |
int | count, | ||
struct yac_group_comm | group_comm ) |
Definition at line 289 of file yac_mpi.c.
void yac_alltoallv_p2p | ( | void const * | send_buffer, |
size_t const * | sendcounts, | ||
size_t const * | sdispls, | ||
void * | recv_buffer, | ||
size_t const * | recvcounts, | ||
size_t const * | rdispls, | ||
size_t | dt_size, | ||
MPI_Datatype | dt, | ||
MPI_Comm | comm ) |
void yac_alltoallv_p2p_group | ( | void const * | send_buffer, |
int const * | sendcounts, | ||
int const * | sdispls, | ||
void * | recv_buffer, | ||
int const * | recvcounts, | ||
int const * | rdispls, | ||
size_t | dt_size, | ||
MPI_Datatype | dt, | ||
struct yac_group_comm | group_comm ) |
void yac_bcast_group | ( | void * | buffer, |
int | count, | ||
MPI_Datatype | datatype, | ||
int | root, | ||
struct yac_group_comm | group_comm ) |
Definition at line 405 of file yac_mpi.c.
MPI_Datatype yac_create_resized | ( | MPI_Datatype | dt, |
size_t | new_size, | ||
MPI_Comm | comm ) |
void yac_free_comm_buffers | ( | size_t * | sendcounts, |
size_t * | recvcounts, | ||
size_t * | sdispls, | ||
size_t * | rdispls ) |
void yac_generate_alltoallv_args | ( | int | count, |
size_t const * | sendcounts, | ||
size_t * | recvcounts, | ||
size_t * | sdispls, | ||
size_t * | rdispls, | ||
MPI_Comm | comm ) |
MPI_Datatype yac_get_bounding_circle_mpi_datatype | ( | MPI_Comm | comm | ) |
void yac_get_comm_buffers | ( | int | count, |
size_t ** | sendcounts, | ||
size_t ** | recvcounts, | ||
size_t ** | sdispls, | ||
size_t ** | rdispls, | ||
MPI_Comm | comm ) |
void yac_group_comm_delete | ( | struct yac_group_comm | group_comm | ) |
Definition at line 480 of file yac_mpi.c.
int yac_group_comm_get_global_rank | ( | struct yac_group_comm | group_comm | ) |
Definition at line 493 of file yac_mpi.c.
int yac_group_comm_get_global_size | ( | struct yac_group_comm | group_comm | ) |
int yac_group_comm_get_rank | ( | struct yac_group_comm | group_comm | ) |
Definition at line 485 of file yac_mpi.c.
int yac_group_comm_get_size | ( | struct yac_group_comm | group_comm | ) |
Definition at line 489 of file yac_mpi.c.
struct yac_group_comm yac_group_comm_new | ( | MPI_Comm | comm | ) |
Definition at line 470 of file yac_mpi.c.
void yac_group_comm_split | ( | struct yac_group_comm | group_comm, |
int | split_rank, | ||
struct yac_group_comm * | local_group_comm, | ||
struct yac_group_comm * | remote_group_comm ) |
Definition at line 505 of file yac_mpi.c.
void yac_mpi_cleanup | ( | ) |
void yac_mpi_error | ( | int | error_code, |
MPI_Comm | comm ) |
report error return of MPI call
[in] | error_code | return code of an MPI call |
[in] | comm | communicator which was used for the respective MPI call |
void yac_mpi_finalize | ( | ) |
void yac_mpi_init | ( | ) |
int yac_mpi_is_initialised | ( | ) |
|
static |
void yac_yaxt_init | ( | MPI_Comm | comm | ) |
void yac_yaxt_init_f2c | ( | MPI_Fint | comm | ) |