ttg 1.0.0
Template Task Graph (TTG): flowgraph-based programming model for high-performance distributed-memory algorithms
Loading...
Searching...
No Matches
Classes | Typedefs | Enumerations | Functions | Variables
ttg_parsec::detail Namespace Reference

Classes

struct  device_ptr_t
 
struct  device_state_t
 
struct  device_state_t< true >
 
struct  empty_allocator
 
struct  is_ttvalue_base
 
struct  is_ttvalue_base< T, std::is_base_of< TTValue< std::decay_t< T > >, std::decay_t< T > > >
 
struct  msg_t
 
struct  parsec_ttg_task_base_t
 
struct  parsec_ttg_task_t
 
struct  parsec_ttg_task_t< TT, true >
 
struct  ParsecTTBase
 
struct  persistent_value_ref
 
struct  ptr_impl
 
struct  reducer_task_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  ttg_parsec_data_types
 

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)
 
template<typename T >
T * to_address (T *ptr)
 
template<typename T >
auto to_address (T &&ptr)
 
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 , typename Fn >
void foreach_parsec_data (Value &&value, Fn &&fn)
 
std::tuple< int, parsec_data_copy_t * > find_device_copy (parsec_data_t *data)
 
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 ()
 

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
 

Typedef Documentation

◆ parsec_static_op_t

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

Definition at line 88 of file task.h.

Enumeration Type Documentation

◆ ttg_parsec_data_flags

enum class ttg_parsec::detail::ttg_parsec_data_flags : uint8_t
strong
Enumerator
NONE 
SINGLE_READER 
MULTIPLE_READER 
SINGLE_WRITER 
MULTIPLE_WRITER 
IS_MODIFIED 
MARKED_PUSHOUT 

Definition at line 45 of file task.h.

Function Documentation

◆ create_new_datacopy()

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

Definition at line 718 of file ttg.h.

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

◆ find_device_copy()

std::tuple< int, parsec_data_copy_t * > ttg_parsec::detail::find_device_copy ( parsec_data_t *  data)
inline

Find the latest data copy on a device. Falls back to the host copy if it's the latest or if there are no device copies. Will add a reader to the copy that has to be removed later.

Definition at line 27 of file parsec_data.h.

◆ foreach_parsec_data()

template<typename Value , typename Fn >
void ttg_parsec::detail::foreach_parsec_data ( Value &&  value,
Fn &&  fn 
)

Definition at line 10 of file parsec_data.h.

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

◆ 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 278 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 278 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 638 of file buffer.h.

Here is the caller graph for this function:

◆ 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 121 of file devicescratch.h.

◆ initialized_mpi()

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

Definition at line 228 of file ttg.h.

Here is the caller graph for this function:

◆ 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... >   
)

Definition at line 206 of file devicefunc.h.

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

◆ operator!()

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

Definition at line 82 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 69 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 75 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 56 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 62 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 31 of file device.h.

Here is the caller graph for this function:

◆ 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... >   
)

Definition at line 253 of file devicefunc.h.

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

◆ 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... >   
)

Definition at line 12 of file devicefunc.h.

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

◆ to_address() [1/2]

template<typename T >
auto ttg_parsec::detail::to_address ( T &&  ptr)
inline

Definition at line 53 of file buffer.h.

◆ to_address() [2/2]

template<typename T >
T * ttg_parsec::detail::to_address ( T *  ptr)
inline

Definition at line 48 of file buffer.h.

Here is the caller graph for this function:

◆ ttg_data_copy_container()

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

Definition at line 15 of file thread_local.h.

Here is the caller graph for this function:

◆ 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 19 of file device.h.

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

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 13 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 193 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 13 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 175 of file ttg.h.