Shamrock 2025.10.0
Astrophysical Code
Loading...
Searching...
No Matches
Namespaces | Functions
sparse_exchange.cpp File Reference
#include "shamalgs/collective/sparse_exchange.hpp"
#include "shambase/exception.hpp"
#include "shambase/memory.hpp"
#include "shambase/narrowing.hpp"
#include "shambase/stacktrace.hpp"
#include "shamalgs/collective/RequestList.hpp"
#include "shamalgs/collective/exchanges.hpp"
#include "shambackends/USMPtrHolder.hpp"
#include "shambackends/fmt_bindings/fmt_defs.hpp"
#include "shambackends/math.hpp"
#include "shamcomm/mpi.hpp"
#include "shamcomm/worldInfo.hpp"
#include <stdexcept>
+ Include dependency graph for sparse_exchange.cpp:

Go to the source code of this file.

Namespaces

namespace  shamalgs
 namespace to contain everything implemented by shamalgs
 

Functions

CommMessageInfo shamalgs::collective::unpack (u64_2 comm_info)
 
std::vector< u64_2 > shamalgs::collective::fetch_global_message_data (const std::vector< CommMessageInfo > &messages_send)
 fetch u64_2 from global message data
 
std::vector< CommMessageInfoshamalgs::collective::decode_all_message (const std::vector< u64_2 > &global_data)
 decode message to get message
 
void shamalgs::collective::compute_tags (std::vector< CommMessageInfo > &message_all)
 compute message tags
 
CommTable shamalgs::collective::build_sparse_exchange_table (const std::vector< CommMessageInfo > &messages_send, size_t max_alloc_size)
 
void shamalgs::collective::sparse_exchange (std::shared_ptr< sham::DeviceScheduler > dev_sched, const std::vector< const u8 * > &bytebuffer_send, const std::vector< u8 * > &bytebuffer_recv, const CommTable &comm_table)
 
template<sham::USMKindTarget target>
void shamalgs::collective::sparse_exchange (std::shared_ptr< sham::DeviceScheduler > dev_sched, std::vector< std::unique_ptr< sham::DeviceBuffer< u8, target > > > &bytebuffer_send, std::vector< std::unique_ptr< sham::DeviceBuffer< u8, target > > > &bytebuffer_recv, const CommTable &comm_table)
 
template void shamalgs::collective::sparse_exchange< sham::device > (std::shared_ptr< sham::DeviceScheduler > dev_sched, std::vector< std::unique_ptr< sham::DeviceBuffer< u8, sham::device > > > &bytebuffer_send, std::vector< std::unique_ptr< sham::DeviceBuffer< u8, sham::device > > > &bytebuffer_recv, const CommTable &comm_table)
 
template void shamalgs::collective::sparse_exchange< sham::host > (std::shared_ptr< sham::DeviceScheduler > dev_sched, std::vector< std::unique_ptr< sham::DeviceBuffer< u8, sham::host > > > &bytebuffer_send, std::vector< std::unique_ptr< sham::DeviceBuffer< u8, sham::host > > > &bytebuffer_recv, const CommTable &comm_table)
 

Detailed Description

Author
Timothée David–Cléris (tim.s.nosp@m.hamr.nosp@m.ock@p.nosp@m.roto.nosp@m.n.me)

Definition in file sparse_exchange.cpp.

Function Documentation

◆ build_sparse_exchange_table()

CommTable shamalgs::collective::build_sparse_exchange_table ( const std::vector< CommMessageInfo > &  messages_send,
size_t  max_alloc_size 
)

Definition at line 113 of file sparse_exchange.cpp.

◆ compute_tags()

void shamalgs::collective::compute_tags ( std::vector< CommMessageInfo > &  message_all)

compute message tags

Definition at line 96 of file sparse_exchange.cpp.

+ Here is the call graph for this function:

◆ decode_all_message()

std::vector< CommMessageInfo > shamalgs::collective::decode_all_message ( const std::vector< u64_2 > &  global_data)

decode message to get message

Definition at line 86 of file sparse_exchange.cpp.

+ Here is the call graph for this function:

◆ fetch_global_message_data()

std::vector< u64_2 > shamalgs::collective::fetch_global_message_data ( const std::vector< CommMessageInfo > &  messages_send)

fetch u64_2 from global message data

Definition at line 57 of file sparse_exchange.cpp.

+ Here is the call graph for this function:

◆ sparse_exchange() [1/2]

void shamalgs::collective::sparse_exchange ( std::shared_ptr< sham::DeviceScheduler dev_sched,
const std::vector< const u8 * > &  bytebuffer_send,
const std::vector< u8 * > &  bytebuffer_recv,
const CommTable comm_table 
)

Definition at line 247 of file sparse_exchange.cpp.

◆ sparse_exchange() [2/2]

template<sham::USMKindTarget target>
void shamalgs::collective::sparse_exchange ( std::shared_ptr< sham::DeviceScheduler dev_sched,
std::vector< std::unique_ptr< sham::DeviceBuffer< u8, target > > > &  bytebuffer_send,
std::vector< std::unique_ptr< sham::DeviceBuffer< u8, target > > > &  bytebuffer_recv,
const CommTable comm_table 
)

Definition at line 296 of file sparse_exchange.cpp.

◆ unpack()

CommMessageInfo shamalgs::collective::unpack ( u64_2  comm_info)

Definition at line 32 of file sparse_exchange.cpp.