Lightweight Parallel Foundations 1.0.1-alpha 2023-06-26T11:02:34Z
A high performance and model-compliant communication layer
Classes | Macros | Typedefs | Functions | Variables
collectives.h File Reference
#include <lpf/core.h>
#include <stdbool.h>
Include dependency graph for collectives.h:

Go to the source code of this file.

Classes

struct  lpf_coll_t
 

Macros

#define _LPF_COLLECTIVES_VERSION   201500L
 

Typedefs

typedef void(* lpf_reducer_t) (size_t n, const void *array, void *value)
 
typedef void(* lpf_combiner_t) (size_t n, const void *combine, void *into)
 

Functions

lpf_err_t lpf_collectives_init (lpf_t ctx, lpf_pid_t s, lpf_pid_t p, size_t max_calls, size_t max_elem_size, size_t max_byte_size, lpf_coll_t *coll)
 
lpf_t lpf_collectives_get_context (lpf_coll_t coll)
 
lpf_err_t lpf_collectives_init_strided (lpf_t ctx, lpf_pid_t s, lpf_pid_t p, lpf_pid_t lo, lpf_pid_t hi, lpf_pid_t str, size_t max_calls, size_t max_elem_size, size_t max_byte_size, lpf_coll_t *coll)
 
lpf_err_t lpf_collectives_destroy (lpf_coll_t coll)
 
lpf_err_t lpf_broadcast (lpf_coll_t coll, lpf_memslot_t src, lpf_memslot_t dst, size_t size, lpf_pid_t root)
 
lpf_err_t lpf_gather (lpf_coll_t coll, lpf_memslot_t src, lpf_memslot_t dst, size_t size, lpf_pid_t root)
 
lpf_err_t lpf_scatter (lpf_coll_t coll, lpf_memslot_t src, lpf_memslot_t dst, size_t size, lpf_pid_t root)
 
lpf_err_t lpf_allgather (lpf_coll_t coll, lpf_memslot_t src, lpf_memslot_t dst, size_t size, bool exclude_myself)
 
lpf_err_t lpf_alltoall (lpf_coll_t coll, lpf_memslot_t src, lpf_memslot_t dst, size_t size)
 
lpf_err_t lpf_reduce (lpf_coll_t coll, void *restrict element, lpf_memslot_t element_slot, size_t size, lpf_reducer_t reducer, lpf_pid_t root)
 
lpf_err_t lpf_allreduce (lpf_coll_t coll, void *restrict element, lpf_memslot_t element_slot, size_t size, lpf_reducer_t reducer)
 
lpf_err_t lpf_combine (lpf_coll_t coll, void *restrict array, lpf_memslot_t slot, size_t num, size_t size, lpf_combiner_t combiner, lpf_pid_t root)
 
lpf_err_t lpf_allcombine (lpf_coll_t coll, void *restrict array, lpf_memslot_t slot, size_t num, size_t size, lpf_combiner_t combiner)
 

Variables

const lpf_coll_t LPF_INVALID_COLL