Yet Another eXchange Tool 0.11.3
Loading...
Searching...
No Matches
xt_ddt.c File Reference
#include <stdbool.h>
#include <string.h>
#include <mpi.h>
#include "core/core.h"
#include "core/ppm_xfuncs.h"
#include "xt/xt_mpi.h"
#include "xt_ddt.h"
#include "xt_ddt_internal.h"
Include dependency graph for xt_ddt.c:

Go to the source code of this file.

Macros

#define XtPragmaACC(args)
 
#define add_rhs_byte_displ(rtype, ptr, disp)
 

Functions

static void xt_ddt_pack_8 (size_t count, ssize_t *restrict displs, const uint8_t *restrict src, uint8_t *restrict dst, enum xt_memtype memtype)
 
static void xt_ddt_pack_16 (size_t count, ssize_t *restrict displs, const uint16_t *restrict src, uint16_t *restrict dst, enum xt_memtype memtype)
 
static void xt_ddt_pack_32 (size_t count, ssize_t *restrict displs, const uint32_t *restrict src, uint32_t *restrict dst, enum xt_memtype memtype)
 
static void xt_ddt_pack_32_2 (size_t count, ssize_t *restrict displs, const uint32_t *restrict src, uint32_t *restrict dst, enum xt_memtype memtype)
 
static void xt_ddt_pack_96 (size_t count, ssize_t *restrict displs, const uint32_t *restrict src, uint32_t *restrict dst, enum xt_memtype memtype)
 
static void xt_ddt_pack_64 (size_t count, ssize_t *restrict displs, const uint64_t *restrict src, uint64_t *restrict dst, enum xt_memtype memtype)
 
static void xt_ddt_pack_128 (size_t count, ssize_t *restrict displs, const uint64_t *restrict src, uint64_t *restrict dst, enum xt_memtype memtype)
 
static void xt_ddt_pack_160 (size_t count, ssize_t *restrict displs, const uint32_t *restrict src, uint32_t *restrict dst, enum xt_memtype memtype)
 
static void xt_ddt_pack_256 (size_t count, ssize_t *restrict displs, const uint64_t *restrict src, uint64_t(*restrict dst)[4], enum xt_memtype memtype)
 
static void xt_ddt_unpack_8 (size_t count, ssize_t *restrict displs, const uint8_t *restrict src, uint8_t *restrict dst, enum xt_memtype memtype)
 
static void xt_ddt_unpack_16 (size_t count, ssize_t *restrict displs, const uint16_t *restrict src, uint16_t *restrict dst, enum xt_memtype memtype)
 
static void xt_ddt_unpack_32 (size_t count, ssize_t *restrict displs, const uint32_t *restrict src, uint32_t *restrict dst, enum xt_memtype memtype)
 
static void xt_ddt_unpack_32_2 (size_t count, ssize_t *restrict displs, const uint32_t(*restrict src)[2], uint32_t *restrict dst, enum xt_memtype memtype)
 
static void xt_ddt_unpack_96 (size_t count, ssize_t *restrict displs, const uint32_t(*restrict src)[3], uint32_t *restrict dst, enum xt_memtype memtype)
 
static void xt_ddt_unpack_64 (size_t count, ssize_t *restrict displs, const uint64_t *restrict src, uint64_t *restrict dst, enum xt_memtype memtype)
 
static void xt_ddt_unpack_128 (size_t count, ssize_t *restrict displs, const uint64_t(*restrict src)[2], uint64_t *restrict dst, enum xt_memtype memtype)
 
static void xt_ddt_unpack_160 (size_t count, ssize_t *restrict displs, const uint32_t(*restrict src)[5], uint32_t *restrict dst, enum xt_memtype memtype)
 
static void xt_ddt_unpack_256 (size_t count, ssize_t *restrict displs, const uint64_t(*restrict src)[4], uint64_t *restrict dst, enum xt_memtype memtype)
 
size_t xt_ddt_get_pack_size_internal (Xt_ddt ddt)
 
size_t xt_ddt_get_pack_size (MPI_Datatype mpi_ddt)
 
static void xt_ddt_copy_displs (Xt_ddt ddt, enum xt_memtype memtype)
 
void xt_ddt_pack_internal (Xt_ddt ddt, const void *src, void *dst, enum xt_memtype memtype)
 
void xt_ddt_pack (MPI_Datatype mpi_ddt, const void *src, void *dst)
 
void xt_ddt_unpack_internal (Xt_ddt ddt, const void *src, void *dst, enum xt_memtype memtype)
 
void xt_ddt_unpack (MPI_Datatype mpi_ddt, const void *src, void *dst)
 

Variables

struct xt_ddt_kernels xt_ddt_valid_kernels []
 

Detailed Description

Author
Jörg Behrens behre.nosp@m.ns@d.nosp@m.krz.d.nosp@m.e Moritz Hanke hanke.nosp@m.@dkr.nosp@m.z.de Thomas Jahns jahns.nosp@m.@dkr.nosp@m.z.de

Definition in file xt_ddt.c.

Macro Definition Documentation

◆ add_rhs_byte_displ

#define add_rhs_byte_displ ( rtype,
ptr,
disp )
Value:
((const rtype *)(const void *)((const unsigned char *)(ptr) + (disp)))

Definition at line 202 of file xt_ddt.c.

◆ XtPragmaACC

#define XtPragmaACC ( args)

Definition at line 59 of file xt_ddt.c.

Function Documentation

◆ xt_ddt_copy_displs()

static void xt_ddt_copy_displs ( Xt_ddt ddt,
enum xt_memtype memtype )
static

Definition at line 176 of file xt_ddt.c.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ xt_ddt_get_pack_size()

size_t xt_ddt_get_pack_size ( MPI_Datatype mpi_ddt)

gets the buffer size required to pack the data in mpi_ddt

Parameters
[in]mpi_ddtMPI Datatype
Returns
required packing buffer size
Examples
test_ddt.c.

Definition at line 171 of file xt_ddt.c.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ xt_ddt_get_pack_size_internal()

size_t xt_ddt_get_pack_size_internal ( Xt_ddt ddt)

gets the buffer size required to pack the data in ddt

Parameters
[in]ddtxt_ddt object
Returns
required packing buffer size

Definition at line 166 of file xt_ddt.c.

Here is the caller graph for this function:

◆ xt_ddt_pack()

void xt_ddt_pack ( MPI_Datatype mpi_ddt,
void const * src,
void * dst )

packs the data from the source buffer into destination buffer, based on the data layout described by MPI datatype

Parameters
[in]mpi_ddtMPI datatype
[in]srcsource buffer
[out]dstdestination buffer
Examples
test_ddt.c.

Definition at line 368 of file xt_ddt.c.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ xt_ddt_pack_128()

static void xt_ddt_pack_128 ( size_t count,
ssize_t *restrict displs,
const uint64_t *restrict src,
uint64_t *restrict dst,
enum xt_memtype memtype )
static

Definition at line 291 of file xt_ddt.c.

◆ xt_ddt_pack_16()

static void xt_ddt_pack_16 ( size_t count,
ssize_t *restrict displs,
const uint16_t *restrict src,
uint16_t *restrict dst,
enum xt_memtype memtype )
static

Definition at line 218 of file xt_ddt.c.

◆ xt_ddt_pack_160()

static void xt_ddt_pack_160 ( size_t count,
ssize_t *restrict displs,
const uint32_t *restrict src,
uint32_t *restrict dst,
enum xt_memtype memtype )
static

Definition at line 308 of file xt_ddt.c.

◆ xt_ddt_pack_256()

static void xt_ddt_pack_256 ( size_t count,
ssize_t *restrict displs,
const uint64_t *restrict src,
uint64_t(*) dst[4],
enum xt_memtype memtype )
static

Definition at line 325 of file xt_ddt.c.

◆ xt_ddt_pack_32()

static void xt_ddt_pack_32 ( size_t count,
ssize_t *restrict displs,
const uint32_t *restrict src,
uint32_t *restrict dst,
enum xt_memtype memtype )
static

Definition at line 231 of file xt_ddt.c.

◆ xt_ddt_pack_32_2()

static void xt_ddt_pack_32_2 ( size_t count,
ssize_t *restrict displs,
const uint32_t *restrict src,
uint32_t *restrict dst,
enum xt_memtype memtype )
static

Definition at line 244 of file xt_ddt.c.

◆ xt_ddt_pack_64()

static void xt_ddt_pack_64 ( size_t count,
ssize_t *restrict displs,
const uint64_t *restrict src,
uint64_t *restrict dst,
enum xt_memtype memtype )
static

Definition at line 278 of file xt_ddt.c.

◆ xt_ddt_pack_8()

static void xt_ddt_pack_8 ( size_t count,
ssize_t *restrict displs,
const uint8_t *restrict src,
uint8_t *restrict dst,
enum xt_memtype memtype )
static

Definition at line 205 of file xt_ddt.c.

◆ xt_ddt_pack_96()

static void xt_ddt_pack_96 ( size_t count,
ssize_t *restrict displs,
const uint32_t *restrict src,
uint32_t *restrict dst,
enum xt_memtype memtype )
static

Definition at line 261 of file xt_ddt.c.

◆ xt_ddt_pack_internal()

void xt_ddt_pack_internal ( Xt_ddt ddt,
void const * src,
void * dst,
enum xt_memtype memtype )

packs the data from the source buffer into destination buffer

Parameters
[in]ddtxt_ddt object
[in]srcsource buffer
[out]dstdestination buffer
[in]memtypetype of source and destination memory
Remarks
both src and dst have to point to the same type of memory

Definition at line 341 of file xt_ddt.c.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ xt_ddt_unpack()

void xt_ddt_unpack ( MPI_Datatype mpi_ddt,
void const * src,
void * dst )

unpacks the data from the source buffer into destination buffer, based on the data layout described by MPI datatype

Parameters
[in]mpi_ddtMPI datatype
[in]srcsource buffer
[out]dstdestination buffer
Examples
test_ddt.c.

Definition at line 580 of file xt_ddt.c.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ xt_ddt_unpack_128()

static void xt_ddt_unpack_128 ( size_t count,
ssize_t *restrict displs,
const uint64_t(*) src[2],
uint64_t *restrict dst,
enum xt_memtype memtype )
static

Definition at line 500 of file xt_ddt.c.

◆ xt_ddt_unpack_16()

static void xt_ddt_unpack_16 ( size_t count,
ssize_t *restrict displs,
const uint16_t *restrict src,
uint16_t *restrict dst,
enum xt_memtype memtype )
static

Definition at line 422 of file xt_ddt.c.

◆ xt_ddt_unpack_160()

static void xt_ddt_unpack_160 ( size_t count,
ssize_t *restrict displs,
const uint32_t(*) src[5],
uint32_t *restrict dst,
enum xt_memtype memtype )
static

Definition at line 516 of file xt_ddt.c.

◆ xt_ddt_unpack_256()

static void xt_ddt_unpack_256 ( size_t count,
ssize_t *restrict displs,
const uint64_t(*) src[4],
uint64_t *restrict dst,
enum xt_memtype memtype )
static

Definition at line 535 of file xt_ddt.c.

◆ xt_ddt_unpack_32()

static void xt_ddt_unpack_32 ( size_t count,
ssize_t *restrict displs,
const uint32_t *restrict src,
uint32_t *restrict dst,
enum xt_memtype memtype )
static

Definition at line 437 of file xt_ddt.c.

◆ xt_ddt_unpack_32_2()

static void xt_ddt_unpack_32_2 ( size_t count,
ssize_t *restrict displs,
const uint32_t(*) src[2],
uint32_t *restrict dst,
enum xt_memtype memtype )
static

Definition at line 452 of file xt_ddt.c.

◆ xt_ddt_unpack_64()

static void xt_ddt_unpack_64 ( size_t count,
ssize_t *restrict displs,
const uint64_t *restrict src,
uint64_t *restrict dst,
enum xt_memtype memtype )
static

Definition at line 485 of file xt_ddt.c.

◆ xt_ddt_unpack_8()

static void xt_ddt_unpack_8 ( size_t count,
ssize_t *restrict displs,
const uint8_t *restrict src,
uint8_t *restrict dst,
enum xt_memtype memtype )
static

Definition at line 408 of file xt_ddt.c.

◆ xt_ddt_unpack_96()

static void xt_ddt_unpack_96 ( size_t count,
ssize_t *restrict displs,
const uint32_t(*) src[3],
uint32_t *restrict dst,
enum xt_memtype memtype )
static

Definition at line 468 of file xt_ddt.c.

◆ xt_ddt_unpack_internal()

void xt_ddt_unpack_internal ( Xt_ddt ddt,
void const * src,
void * dst,
enum xt_memtype memtype )

unpacks the data from the source buffer into destination buffer

Parameters
[in]ddtxt_ddt object
[in]srcsource buffer
[out]dstdestination buffer
[in]memtypetype of source and destination memory
Remarks
both src and dst have to point to the same type of memory

Definition at line 553 of file xt_ddt.c.

Here is the call graph for this function:
Here is the caller graph for this function:

Variable Documentation

◆ xt_ddt_valid_kernels

struct xt_ddt_kernels xt_ddt_valid_kernels[]

Definition at line 127 of file xt_ddt.c.