|
| 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, char const *caller, int line) |
| |
| 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_size_t (const size_t *sendbuf, size_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) |
| |
| size_t | yac_string_get_pack_size (char const *caller, char const *string, MPI_Comm comm, int allow_null) |
| | Compute number of bytes required to pack a string for MPI transport.
|
| |
| void | yac_string_pack (char const *caller, char const *string, void *buffer, int buffer_size, int *position, MPI_Comm comm, int allow_null) |
| | Pack a C string into a provided buffer using MPI_Pack semantics.
|
| |
| char * | yac_string_unpack (void const *buffer, int buffer_size, int *position, MPI_Comm comm) |
| | Unpack a C string from a buffer packed with yac_string_pack.
|
| |
| size_t yac_string_get_pack_size |
( |
char const * | caller, |
|
|
char const * | string, |
|
|
MPI_Comm | comm, |
|
|
int | allow_null ) |
Compute number of bytes required to pack a string for MPI transport.
This function returns the number of bytes that will be required to pack the given C string using MPI_Pack semantics on the provided communicator. If allow_null is non-zero, a NULL string is permitted and the returned size accounts for the representation of a NULL string.
- Parameters
-
| [in] | caller | Name of the calling function (used for diagnostics). |
| [in] | string | NULL-terminated C string to measure, or NULL if allowed. |
| [in] | comm | MPI communicator whose datatype sizing semantics are used. |
| [in] | allow_null | Non-zero if NULL strings are permitted. |
- Returns
- Number of bytes required to pack
string (may be zero).
Definition at line 645 of file yac_mpi.c.
| void yac_string_pack |
( |
char const * | caller, |
|
|
char const * | string, |
|
|
void * | buffer, |
|
|
int | buffer_size, |
|
|
int * | position, |
|
|
MPI_Comm | comm, |
|
|
int | allow_null ) |
Pack a C string into a provided buffer using MPI_Pack semantics.
Packs the given NULL-terminated string (or the representation of NULL if allow_null is non-zero) into buffer starting at *position. The position is updated to point immediately after the packed data.
The function will use buffer_size to ensure no overflow is performed; if there is insufficient space, behavior depends on the MPI implementation (typically MPI_Pack will return an error).
- Parameters
-
| [in] | caller | Name of the calling function (used for diagnostics). |
| [in] | string | NULL-terminated C string to pack, or NULL if allowed. |
| [out] | buffer | Destination buffer for packed data. |
| [in] | buffer_size | Size of buffer in bytes. |
| [in,out] | position | Pointer to current pack position; updated on return. |
| [in] | comm | MPI communicator used for packing. |
| [in] | allow_null | Non-zero if NULL strings are permitted. |
Definition at line 666 of file yac_mpi.c.
| char * yac_string_unpack |
( |
void const * | buffer, |
|
|
int | buffer_size, |
|
|
int * | position, |
|
|
MPI_Comm | comm ) |
Unpack a C string from a buffer packed with yac_string_pack.
Unpacks a string from buffer at *position using MPI_Unpack semantics. The returned pointer is a newly allocated NULL-terminated C string which the caller is responsible for freeing with free(). If a NULL-string sentinel was packed (when allow_null was used during packing), this function returns NULL.
- Parameters
-
| [in] | buffer | Source buffer containing packed data. |
| [in] | buffer_size | Size of buffer in bytes. |
| [in,out] | position | Pointer to current unpack position; updated on return. |
| [in] | comm | MPI communicator used for unpacking. |
- Returns
- Pointer to freshly allocated NUL-terminated string, or NULL if a NULL sentinel was unpacked. Caller must free the returned pointer.
Definition at line 696 of file yac_mpi.c.