ttg_parsec::detail Namespace Reference

Classes

struct  ptr_impl
 
struct  device_ptr_t
 
struct  device_state_t
 
struct  device_state_t< true >
 
struct  parsec_ttg_task_base_t
 
struct  parsec_ttg_task_t
 
struct  parsec_ttg_task_t< TT, true >
 
struct  reducer_task_t
 
struct  msg_t
 
class  rma_delayed_activate
 
struct  ParsecTTBase
 
struct  ttg_parsec_data_wrapper_t
 
struct  ttg_data_copy_container_setter
 
struct  ttg_data_copy_self_t
 
struct  ttg_data_copy_t
 
struct  ttg_data_value_copy_t
 
struct  is_ttvalue_base
 
struct  is_ttvalue_base< T, std::is_base_of< TTValue< std::decay_t< T > >, std::decay_t< T > > >
 
struct  persistent_value_ref
 

Typedefs

typedef parsec_hook_return_t(* parsec_static_op_t) (void *)
 

Enumerations

enum class  ttg_parsec_data_flags : uint8_t {
  NONE = 0 , SINGLE_READER = 1 << 0 , MULTIPLE_READER = 1 << 1 , SINGLE_WRITER = 1 << 2 ,
  MULTIPLE_WRITER = 1 << 3 , IS_MODIFIED = 1 << 4 , MARKED_PUSHOUT = 1 << 5
}
 

Functions

template<typename T , typename A >
parsec_data_t * get_parsec_data (const ttg_parsec::Buffer< T, A > &db)
 
int ttg_device_to_parsec_device (const ttg::device::Device &device)
 
ttg::device::Device parsec_device_to_ttg_device (int parsec_id)
 
template<typename... Views, std::size_t I, std::size_t... Is>
bool register_device_memory (std::tuple< Views &... > &views, std::index_sequence< I, Is... >)
 
template<typename... Views, std::size_t I, std::size_t... Is, bool DeviceAvail = false>
void mark_device_out (std::tuple< Views &... > &views, std::index_sequence< I, Is... >)
 
template<typename... Views, std::size_t I, std::size_t... Is>
void post_device_out (std::tuple< Views &... > &views, std::index_sequence< I, Is... >)
 
template<typename T >
parsec_data_t * get_parsec_data (const ttg_parsec::devicescratch< T > &)
 
template<typename Value >
ttg_data_copy_tcreate_new_datacopy (Value &&value)
 
template<typename T >
ttg_parsec::detail::ttg_data_copy_tget_copy (ttg_parsec::Ptr< T > &p)
 
template<typename T >
detail::ttg_data_copy_tget_copy (ttg_parsec::Ptr< T > &p)
 
ttg_parsec_data_flags operator| (ttg_parsec_data_flags lhs, ttg_parsec_data_flags rhs)
 
ttg_parsec_data_flags operator|= (ttg_parsec_data_flags &lhs, ttg_parsec_data_flags rhs)
 
uint8_t operator& (ttg_parsec_data_flags lhs, ttg_parsec_data_flags rhs)
 
ttg_parsec_data_flags operator&= (ttg_parsec_data_flags &lhs, ttg_parsec_data_flags rhs)
 
bool operator! (ttg_parsec_data_flags lhs)
 
ttg_data_copy_t *& ttg_data_copy_container ()
 
bool & initialized_mpi ()
 
ttg_data_copy_tfind_copy_in_task (parsec_ttg_task_base_t *task, const void *ptr)
 
int find_index_of_copy_in_task (parsec_ttg_task_base_t *task, const void *ptr)
 
bool add_copy_to_task (ttg_data_copy_t *copy, parsec_ttg_task_base_t *task)
 
void remove_data_copy (ttg_data_copy_t *copy, parsec_ttg_task_base_t *task)
 
template<typename TT , std::size_t I>
void transfer_ownership_impl (ttg_data_copy_t *copy, int device)
 
template<typename TT , std::size_t... Is>
void transfer_ownership (parsec_ttg_task_t< TT > *me, int device, std::index_sequence< Is... >)
 
template<typename TT >
parsec_hook_return_t hook (struct parsec_execution_stream_s *es, parsec_task_t *parsec_task)
 
template<typename TT >
parsec_hook_return_t hook_cuda (struct parsec_execution_stream_s *es, parsec_task_t *parsec_task)
 
template<typename TT >
parsec_hook_return_t hook_hip (struct parsec_execution_stream_s *es, parsec_task_t *parsec_task)
 
template<typename TT >
parsec_hook_return_t hook_level_zero (struct parsec_execution_stream_s *es, parsec_task_t *parsec_task)
 
template<typename TT >
parsec_hook_return_t evaluate_cuda (const parsec_task_t *parsec_task)
 
template<typename TT >
parsec_hook_return_t evaluate_hip (const parsec_task_t *parsec_task)
 
template<typename TT >
parsec_hook_return_t evaluate_level_zero (const parsec_task_t *parsec_task)
 
void release_data_copy (ttg_data_copy_t *copy)
 
template<typename Value >
ttg_data_copy_tregister_data_copy (ttg_data_copy_t *copy_in, parsec_ttg_task_base_t *task, bool readonly)
 

Variables

int first_device_id = -1
 
thread_local parsec_ttg_task_base_tparsec_ttg_caller = nullptr
 
constexpr const int PARSEC_TTG_MAX_AM_SIZE = 1 * 1024*1024
 
std::size_t max_inline_size = msg_t::max_payload_size
 
bool all_devices_peer_access
 
const parsec_symbol_t parsec_taskclass_param0
 
const parsec_symbol_t parsec_taskclass_param1
 
const parsec_symbol_t parsec_taskclass_param2
 
const parsec_symbol_t parsec_taskclass_param3
 

Typedef Documentation

◆ parsec_static_op_t

typedef parsec_hook_return_t(* ttg_parsec::detail::parsec_static_op_t) (void *)

Definition at line 87 of file task.h.

Enumeration Type Documentation

◆ ttg_parsec_data_flags

Enumerator
NONE 
SINGLE_READER 
MULTIPLE_READER 
SINGLE_WRITER 
MULTIPLE_WRITER 
IS_MODIFIED 
MARKED_PUSHOUT 

Definition at line 44 of file task.h.

Function Documentation

◆ add_copy_to_task()

bool ttg_parsec::detail::add_copy_to_task ( ttg_data_copy_t copy,
parsec_ttg_task_base_t task 
)
inline

Definition at line 663 of file ttg.h.

◆ create_new_datacopy()

template<typename Value >
ttg_data_copy_t * ttg_parsec::detail::create_new_datacopy ( Value &&  value)
inline

Definition at line 705 of file ttg.h.

◆ evaluate_cuda()

template<typename TT >
parsec_hook_return_t ttg_parsec::detail::evaluate_cuda ( const parsec_task_t *  parsec_task)
inline

Definition at line 807 of file ttg.h.

◆ evaluate_hip()

template<typename TT >
parsec_hook_return_t ttg_parsec::detail::evaluate_hip ( const parsec_task_t *  parsec_task)
inline

Definition at line 817 of file ttg.h.

◆ evaluate_level_zero()

template<typename TT >
parsec_hook_return_t ttg_parsec::detail::evaluate_level_zero ( const parsec_task_t *  parsec_task)
inline

Definition at line 827 of file ttg.h.

◆ find_copy_in_task()

ttg_data_copy_t* ttg_parsec::detail::find_copy_in_task ( parsec_ttg_task_base_t task,
const void *  ptr 
)
inline

Definition at line 634 of file ttg.h.

◆ find_index_of_copy_in_task()

int ttg_parsec::detail::find_index_of_copy_in_task ( parsec_ttg_task_base_t task,
const void *  ptr 
)
inline

Definition at line 649 of file ttg.h.

◆ get_copy() [1/2]

template<typename T >
ttg_parsec::detail::ttg_data_copy_t* ttg_parsec::detail::get_copy ( ttg_parsec::Ptr< T > &  p)
inline

Definition at line 277 of file ptr.h.

◆ get_copy() [2/2]

template<typename T >
detail::ttg_data_copy_t* ttg_parsec::detail::get_copy ( ttg_parsec::Ptr< T > &  p)
inline

Definition at line 277 of file ptr.h.

◆ get_parsec_data() [1/2]

template<typename T , typename A >
parsec_data_t * ttg_parsec::detail::get_parsec_data ( const ttg_parsec::Buffer< T, A > &  db)

Definition at line 442 of file buffer.h.

◆ get_parsec_data() [2/2]

template<typename T >
parsec_data_t * ttg_parsec::detail::get_parsec_data ( const ttg_parsec::devicescratch< T > &  scratch)

Definition at line 138 of file devicescratch.h.

◆ hook()

template<typename TT >
parsec_hook_return_t ttg_parsec::detail::hook ( struct parsec_execution_stream_s *  es,
parsec_task_t *  parsec_task 
)
inline

Definition at line 764 of file ttg.h.

◆ hook_cuda()

template<typename TT >
parsec_hook_return_t ttg_parsec::detail::hook_cuda ( struct parsec_execution_stream_s *  es,
parsec_task_t *  parsec_task 
)
inline

Definition at line 773 of file ttg.h.

◆ hook_hip()

template<typename TT >
parsec_hook_return_t ttg_parsec::detail::hook_hip ( struct parsec_execution_stream_s *  es,
parsec_task_t *  parsec_task 
)
inline

Definition at line 784 of file ttg.h.

◆ hook_level_zero()

template<typename TT >
parsec_hook_return_t ttg_parsec::detail::hook_level_zero ( struct parsec_execution_stream_s *  es,
parsec_task_t *  parsec_task 
)
inline

Definition at line 795 of file ttg.h.

◆ initialized_mpi()

bool& ttg_parsec::detail::initialized_mpi ( )
inline

Definition at line 228 of file ttg.h.

◆ mark_device_out()

template<typename... Views, std::size_t I, std::size_t... Is, bool DeviceAvail = false>
void ttg_parsec::detail::mark_device_out ( std::tuple< Views &... > &  views,
std::index_sequence< I, Is... >   
)
inline

Definition at line 119 of file devicefunc.h.

◆ operator!()

bool ttg_parsec::detail::operator! ( ttg_parsec_data_flags  lhs)
inline

Definition at line 81 of file task.h.

◆ operator&()

uint8_t ttg_parsec::detail::operator& ( ttg_parsec_data_flags  lhs,
ttg_parsec_data_flags  rhs 
)
inline

Definition at line 68 of file task.h.

◆ operator&=()

ttg_parsec_data_flags ttg_parsec::detail::operator&= ( ttg_parsec_data_flags lhs,
ttg_parsec_data_flags  rhs 
)
inline

Definition at line 74 of file task.h.

◆ operator|()

ttg_parsec_data_flags ttg_parsec::detail::operator| ( ttg_parsec_data_flags  lhs,
ttg_parsec_data_flags  rhs 
)
inline

Definition at line 55 of file task.h.

◆ operator|=()

ttg_parsec_data_flags ttg_parsec::detail::operator|= ( ttg_parsec_data_flags lhs,
ttg_parsec_data_flags  rhs 
)
inline

Definition at line 61 of file task.h.

◆ parsec_device_to_ttg_device()

ttg::device::Device ttg_parsec::detail::parsec_device_to_ttg_device ( int  parsec_id)
inline

map from parsec ID-space to TTG ID-space

Definition at line 30 of file device.h.

◆ post_device_out()

template<typename... Views, std::size_t I, std::size_t... Is>
void ttg_parsec::detail::post_device_out ( std::tuple< Views &... > &  views,
std::index_sequence< I, Is... >   
)
inline

Definition at line 160 of file devicefunc.h.

◆ register_data_copy()

template<typename Value >
ttg_data_copy_t* ttg_parsec::detail::register_data_copy ( ttg_data_copy_t copy_in,
parsec_ttg_task_base_t task,
bool  readonly 
)
inline

no other readers, mark copy as mutable and defer the release of the task

Definition at line 942 of file ttg.h.

◆ register_device_memory()

template<typename... Views, std::size_t I, std::size_t... Is>
bool ttg_parsec::detail::register_device_memory ( std::tuple< Views &... > &  views,
std::index_sequence< I, Is... >   
)
inline

Definition at line 21 of file devicefunc.h.

◆ release_data_copy()

void ttg_parsec::detail::release_data_copy ( ttg_data_copy_t copy)
inline

Definition at line 889 of file ttg.h.

◆ remove_data_copy()

void ttg_parsec::detail::remove_data_copy ( ttg_data_copy_t copy,
parsec_ttg_task_base_t task 
)
inline

Definition at line 677 of file ttg.h.

◆ transfer_ownership()

template<typename TT , std::size_t... Is>
void ttg_parsec::detail::transfer_ownership ( parsec_ttg_task_t< TT > *  me,
int  device,
std::index_sequence< Is... >   
)
inline

Definition at line 757 of file ttg.h.

◆ transfer_ownership_impl()

template<typename TT , std::size_t I>
void ttg_parsec::detail::transfer_ownership_impl ( ttg_data_copy_t copy,
int  device 
)
inline

Definition at line 749 of file ttg.h.

◆ ttg_data_copy_container()

ttg_data_copy_t*& ttg_parsec::detail::ttg_data_copy_container ( )
inline

Definition at line 14 of file thread_local.h.

◆ ttg_device_to_parsec_device()

int ttg_parsec::detail::ttg_device_to_parsec_device ( const ttg::device::Device device)
inline

map from TTG ID-space to parsec ID-space

Definition at line 18 of file device.h.

Variable Documentation

◆ all_devices_peer_access

bool ttg_parsec::detail::all_devices_peer_access
inline

Definition at line 233 of file ttg.h.

◆ first_device_id

int ttg_parsec::detail::first_device_id = -1
inline

Definition at line 12 of file device.h.

◆ max_inline_size

std::size_t ttg_parsec::detail::max_inline_size = msg_t::max_payload_size
inline

Definition at line 194 of file ttg.h.

◆ parsec_taskclass_param0

const parsec_symbol_t ttg_parsec::detail::parsec_taskclass_param0
Initial value:
= {
.flags = PARSEC_SYMBOL_IS_STANDALONE|PARSEC_SYMBOL_IS_GLOBAL,
.name = "HASH0",
.context_index = 0,
.min = nullptr,
.max = nullptr,
.expr_inc = nullptr,
.cst_inc = 0 }

Definition at line 601 of file ttg.h.

◆ parsec_taskclass_param1

const parsec_symbol_t ttg_parsec::detail::parsec_taskclass_param1
Initial value:
= {
.flags = PARSEC_SYMBOL_IS_STANDALONE|PARSEC_SYMBOL_IS_GLOBAL,
.name = "HASH1",
.context_index = 1,
.min = nullptr,
.max = nullptr,
.expr_inc = nullptr,
.cst_inc = 0 }

Definition at line 609 of file ttg.h.

◆ parsec_taskclass_param2

const parsec_symbol_t ttg_parsec::detail::parsec_taskclass_param2
Initial value:
= {
.flags = PARSEC_SYMBOL_IS_STANDALONE|PARSEC_SYMBOL_IS_GLOBAL,
.name = "KEY0",
.context_index = 2,
.min = nullptr,
.max = nullptr,
.expr_inc = nullptr,
.cst_inc = 0 }

Definition at line 617 of file ttg.h.

◆ parsec_taskclass_param3

const parsec_symbol_t ttg_parsec::detail::parsec_taskclass_param3
Initial value:
= {
.flags = PARSEC_SYMBOL_IS_STANDALONE|PARSEC_SYMBOL_IS_GLOBAL,
.name = "KEY1",
.context_index = 3,
.min = nullptr,
.max = nullptr,
.expr_inc = nullptr,
.cst_inc = 0 }

Definition at line 625 of file ttg.h.

◆ parsec_ttg_caller

thread_local parsec_ttg_task_base_t* ttg_parsec::detail::parsec_ttg_caller = nullptr
inline

Definition at line 12 of file thread_local.h.

◆ PARSEC_TTG_MAX_AM_SIZE

constexpr const int ttg_parsec::detail::PARSEC_TTG_MAX_AM_SIZE = 1 * 1024*1024
constexpr

Definition at line 176 of file ttg.h.