#include <MultiBuffer.H>
|
void | initialize (int nslices, int nbeams, bool buffer_on_host, bool use_laser, amrex::Box laser_box, int max_leading_slices, int max_trailing_slices) |
|
void | get_data (int slice, MultiBeam &beams, MultiLaser &laser, int beam_slice) |
|
void | put_data (int slice, MultiBeam &beams, MultiLaser &laser, int beam_slice, bool is_last_time_step) |
|
amrex::Real | get_time () |
|
void | put_time (amrex::Real time) |
|
| ~MultiBuffer () |
|
void | unpack_data (int slice, MultiBeam &beams, MultiLaser &laser, int beam_slice) |
|
|
enum class | memory_location { nowhere
, pinned
, device
} |
|
enum | comm_progress : int {
uninitialized
, sim_completed
, async_progress_begin
, ready_to_send
,
send_started
, sent
, receive_started
, received
,
async_progress_end
, ready_to_define
, in_use
, nprogress
} |
|
enum class | offset_type {
beam_idcpu
, beam_real
, beam_int
, laser
,
total
} |
|
using | storage_type = amrex::ParallelDescriptor::lull_t |
|
|
std::size_t | get_metadata_size () |
|
std::size_t * | get_metadata_location (int slice) |
|
void | allocate_buffer (int slice) |
|
void | free_buffer (int slice) |
|
void | make_progress (int slice, bool is_blocking, int current_slice) |
|
void | write_metadata (int slice, MultiBeam &beams, int beam_slice) |
|
std::size_t | get_buffer_offset (int slice, offset_type type, MultiBeam &beams, int ibeam, int comp) |
|
void | memcpy_to_buffer (int slice, std::size_t buffer_offset, const void *src_ptr, std::size_t num_bytes) |
|
void | memcpy_from_buffer (int slice, std::size_t buffer_offset, void *dst_ptr, std::size_t num_bytes) |
|
void | pack_data (int slice, MultiBeam &beams, MultiLaser &laser, int beam_slice) |
|
◆ storage_type
◆ comm_progress
Enumerator |
---|
uninitialized | |
sim_completed | |
async_progress_begin | |
ready_to_send | |
send_started | |
sent | |
receive_started | |
received | |
async_progress_end | |
ready_to_define | |
in_use | |
nprogress | |
◆ memory_location
Enumerator |
---|
nowhere | |
pinned | |
device | |
◆ offset_type
Enumerator |
---|
beam_idcpu | |
beam_real | |
beam_int | |
laser | |
total | |
◆ ~MultiBuffer()
MultiBuffer::~MultiBuffer |
( |
| ) |
|
◆ allocate_buffer()
void MultiBuffer::allocate_buffer |
( |
int |
slice | ) |
|
|
private |
◆ free_buffer()
void MultiBuffer::free_buffer |
( |
int |
slice | ) |
|
|
private |
◆ get_buffer_offset()
◆ get_data()
◆ get_metadata_location()
std::size_t * MultiBuffer::get_metadata_location |
( |
int |
slice | ) |
|
|
private |
◆ get_metadata_size()
std::size_t MultiBuffer::get_metadata_size |
( |
| ) |
|
|
private |
◆ get_time()
amrex::Real MultiBuffer::get_time |
( |
| ) |
|
◆ initialize()
void MultiBuffer::initialize |
( |
int |
nslices, |
|
|
int |
nbeams, |
|
|
bool |
buffer_on_host, |
|
|
bool |
use_laser, |
|
|
amrex::Box |
laser_box, |
|
|
int |
max_leading_slices, |
|
|
int |
max_trailing_slices |
|
) |
| |
◆ make_progress()
void MultiBuffer::make_progress |
( |
int |
slice, |
|
|
bool |
is_blocking, |
|
|
int |
current_slice |
|
) |
| |
|
private |
◆ memcpy_from_buffer()
void MultiBuffer::memcpy_from_buffer |
( |
int |
slice, |
|
|
std::size_t |
buffer_offset, |
|
|
void * |
dst_ptr, |
|
|
std::size_t |
num_bytes |
|
) |
| |
|
private |
◆ memcpy_to_buffer()
void MultiBuffer::memcpy_to_buffer |
( |
int |
slice, |
|
|
std::size_t |
buffer_offset, |
|
|
const void * |
src_ptr, |
|
|
std::size_t |
num_bytes |
|
) |
| |
|
private |
◆ pack_data()
◆ put_data()
◆ put_time()
void MultiBuffer::put_time |
( |
amrex::Real |
time | ) |
|
◆ unpack_data()
◆ write_metadata()
void MultiBuffer::write_metadata |
( |
int |
slice, |
|
|
MultiBeam & |
beams, |
|
|
int |
beam_slice |
|
) |
| |
|
private |
◆ buffer_size_roundup
constexpr std::size_t MultiBuffer::buffer_size_roundup = alignof(amrex::Real) / alignof(int) |
|
staticconstexprprivate |
◆ m_async_data_slice
std::array<int, comm_progress::nprogress> MultiBuffer::m_async_data_slice {} |
|
private |
◆ m_async_metadata_slice
std::array<int, comm_progress::nprogress> MultiBuffer::m_async_metadata_slice {} |
|
private |
◆ m_buffer_on_host
bool MultiBuffer::m_buffer_on_host = true |
|
private |
◆ m_comm
◆ m_datanodes
◆ m_is_head_rank
bool MultiBuffer::m_is_head_rank = false |
|
private |
◆ m_is_serial
bool MultiBuffer::m_is_serial = true |
|
private |
◆ m_laser_ncomp
int MultiBuffer::m_laser_ncomp = 4 |
|
private |
◆ m_laser_slice_box
◆ m_max_leading_slices
int MultiBuffer::m_max_leading_slices = std::numeric_limits<int>::max() |
|
private |
◆ m_max_trailing_slices
int MultiBuffer::m_max_trailing_slices = std::numeric_limits<int>::max() |
|
private |
◆ m_metadata
◆ m_nbeams
int MultiBuffer::m_nbeams = 0 |
|
private |
◆ m_nslices
int MultiBuffer::m_nslices = 0 |
|
private |
◆ m_rank_receive_from
int MultiBuffer::m_rank_receive_from = 0 |
|
private |
◆ m_rank_send_to
int MultiBuffer::m_rank_send_to = 0 |
|
private |
◆ m_tag_buffer_start
int MultiBuffer::m_tag_buffer_start = 0 |
|
private |
◆ m_tag_metadata_start
int MultiBuffer::m_tag_metadata_start = 0 |
|
private |
◆ m_tag_time_start
int MultiBuffer::m_tag_time_start = 0 |
|
private |
◆ m_time_send_buffer
amrex::Real MultiBuffer::m_time_send_buffer = 0. |
|
private |
◆ m_time_send_request
◆ m_time_send_started
bool MultiBuffer::m_time_send_started = false |
|
private |
◆ m_use_laser
bool MultiBuffer::m_use_laser = false |
|
private |
The documentation for this class was generated from the following files:
- /home/docs/checkouts/readthedocs.org/user_builds/hipace/checkouts/stable/src/utils/MultiBuffer.H
- /home/docs/checkouts/readthedocs.org/user_builds/hipace/checkouts/stable/src/utils/MultiBuffer.cpp