ttg.h File Reference
#include "ttg/config.h"
#include "ttg/impl_selector.h"
#include "../../ttg.h"
#include "ttg/base/keymap.h"
#include "ttg/base/tt.h"
#include "ttg/base/world.h"
#include "ttg/constraint.h"
#include "ttg/edge.h"
#include "ttg/execution.h"
#include "ttg/func.h"
#include "ttg/runtimes.h"
#include "ttg/terminal.h"
#include "ttg/tt.h"
#include "ttg/util/env.h"
#include "ttg/util/hash.h"
#include "ttg/util/meta.h"
#include "ttg/util/meta/callable.h"
#include "ttg/util/print.h"
#include "ttg/util/scope_exit.h"
#include "ttg/util/trace.h"
#include "ttg/util/typelist.h"
#include "ttg/serialization/data_descriptor.h"
#include "ttg/parsec/fwd.h"
#include "ttg/parsec/buffer.h"
#include "ttg/parsec/devicescratch.h"
#include "ttg/parsec/thread_local.h"
#include "ttg/parsec/devicefunc.h"
#include "ttg/parsec/ttvalue.h"
#include <algorithm>
#include <array>
#include <cassert>
#include <cstring>
#include <experimental/type_traits>
#include <functional>
#include <future>
#include <iostream>
#include <list>
#include <map>
#include <memory>
#include <mutex>
#include <numeric>
#include <sstream>
#include <string>
#include <tuple>
#include <vector>
#include <mpi.h>
#include <parsec.h>
#include <parsec/class/parsec_hash_table.h>
#include <parsec/data_internal.h>
#include <parsec/execution_stream.h>
#include <parsec/interfaces/interface.h>
#include <parsec/mca/device/device.h>
#include <parsec/parsec_comm_engine.h>
#include <parsec/parsec_internal.h>
#include <parsec/scheduling.h>
#include <parsec/remote_dep.h>
#include <parsec/mca/device/device_gpu.h>
#include <cstdlib>
#include "ttg/parsec/ttg_data_copy.h"
#include "ttg/parsec/ptr.h"
#include "ttg/parsec/task.h"
#include "ttg/parsec/parsec-ext.h"
#include "ttg/device/device.h"
#include <boost/type_index.hpp>
#include "ttg/make_tt.h"

Classes

struct  ttg_parsec::msg_header_t
 
struct  ttg_parsec::detail::msg_t
 
class  ttg_parsec::WorldImpl
 
class  ttg_parsec::detail::rma_delayed_activate< KeyT, ActivationCallbackT >
 
struct  ttg_parsec::detail::ParsecTTBase
 
class  ttg_parsec::TT< keyT, output_terminalsT, derivedT, input_valueTs >
 
struct  ttg::detail::value_copy_handler< ttg::Runtime::PaRSEC >
 

Namespaces

 ttg_parsec
 this contains PaRSEC-based TTG functionality
 
 ttg_parsec::detail
 

Macros

#define TTG_USE_PARSEC   1
 
#define TTG_PARSEC_DEFER_WRITER   false
 

Typedefs

typedef void(* ttg_parsec::static_set_arg_fct_type) (void *, size_t, ttg::TTBase *)
 
typedef std::pair< static_set_arg_fct_type, ttg::TTBase * > ttg_parsec::static_set_arg_fct_call_t
 
typedef std::tuple< int, void *, size_t > ttg_parsec::static_set_arg_fct_arg_t
 

Functions

void parsec_taskpool_termination_detected (parsec_taskpool_t *tp)
 
int parsec_add_fetch_runtime_task (parsec_taskpool_t *tp, int tasks)
 
bool & ttg_parsec::detail::initialized_mpi ()
 
ttg_data_copy_t * ttg_parsec::detail::find_copy_in_task (parsec_ttg_task_base_t *task, const void *ptr)
 
int ttg_parsec::detail::find_index_of_copy_in_task (parsec_ttg_task_base_t *task, const void *ptr)
 
bool ttg_parsec::detail::add_copy_to_task (ttg_data_copy_t *copy, parsec_ttg_task_base_t *task)
 
void ttg_parsec::detail::remove_data_copy (ttg_data_copy_t *copy, parsec_ttg_task_base_t *task)
 
template<typename Value >
ttg_data_copy_t * ttg_parsec::detail::create_new_datacopy (Value &&value)
 
template<typename TT , std::size_t I>
void ttg_parsec::detail::transfer_ownership_impl (ttg_data_copy_t *copy, int device)
 
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... >)
 
template<typename TT >
parsec_hook_return_t ttg_parsec::detail::hook (struct parsec_execution_stream_s *es, parsec_task_t *parsec_task)
 
template<typename TT >
parsec_hook_return_t ttg_parsec::detail::hook_cuda (struct parsec_execution_stream_s *es, parsec_task_t *parsec_task)
 
template<typename TT >
parsec_hook_return_t ttg_parsec::detail::hook_hip (struct parsec_execution_stream_s *es, parsec_task_t *parsec_task)
 
template<typename TT >
parsec_hook_return_t ttg_parsec::detail::hook_level_zero (struct parsec_execution_stream_s *es, parsec_task_t *parsec_task)
 
template<typename TT >
parsec_hook_return_t ttg_parsec::detail::evaluate_cuda (const parsec_task_t *parsec_task)
 
template<typename TT >
parsec_hook_return_t ttg_parsec::detail::evaluate_hip (const parsec_task_t *parsec_task)
 
template<typename TT >
parsec_hook_return_t ttg_parsec::detail::evaluate_level_zero (const parsec_task_t *parsec_task)
 
void ttg_parsec::detail::release_data_copy (ttg_data_copy_t *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)
 
void ttg_parsec::ttg_initialize (int argc, char **argv, int num_threads, parsec_context_t *ctx)
 
void ttg_parsec::ttg_finalize ()
 
ttg::World ttg_parsec::ttg_default_execution_context ()
 
void ttg_parsec::ttg_execute (ttg::World world)
 
void ttg_parsec::ttg_fence (ttg::World world)
 
template<typename T >
void ttg_parsec::ttg_register_ptr (ttg::World world, const std::shared_ptr< T > &ptr)
 
template<typename T >
void ttg_parsec::ttg_register_ptr (ttg::World world, std::unique_ptr< T > &&ptr)
 
void ttg_parsec::ttg_register_status (ttg::World world, const std::shared_ptr< std::promise< void >> &status_ptr)
 
template<typename Callback >
void ttg_parsec::ttg_register_callback (ttg::World world, Callback &&callback)
 
ttg::Edgettg_parsec::ttg_ctl_edge (ttg::World world)
 
void ttg_parsec::ttg_sum (ttg::World world, double &value)
 
void ttg_parsec::make_executable_hook (ttg::World &)
 
template<typename T >
void ttg_parsec::ttg_broadcast (::ttg::World world, T &data, int source_rank)
 

Variables

std::map< uint64_t, static_set_arg_fct_call_t > ttg_parsec::static_id_to_op_map
 
std::mutex ttg_parsec::static_map_mutex
 
std::multimap< uint64_t, static_set_arg_fct_arg_t > ttg_parsec::delayed_unpack_actions
 
constexpr const int ttg_parsec::detail::PARSEC_TTG_MAX_AM_SIZE = 1 * 1024*1024
 
std::size_t ttg_parsec::detail::max_inline_size = msg_t::max_payload_size
 
bool ttg_parsec::detail::all_devices_peer_access
 
const parsec_symbol_t ttg_parsec::detail::parsec_taskclass_param0
 
const parsec_symbol_t ttg_parsec::detail::parsec_taskclass_param1
 
const parsec_symbol_t ttg_parsec::detail::parsec_taskclass_param2
 
const parsec_symbol_t ttg_parsec::detail::parsec_taskclass_param3
 

Macro Definition Documentation

◆ TTG_PARSEC_DEFER_WRITER

#define TTG_PARSEC_DEFER_WRITER   false

Definition at line 13 of file ttg.h.

◆ TTG_USE_PARSEC

#define TTG_USE_PARSEC   1

Definition at line 7 of file ttg.h.

Function Documentation

◆ parsec_add_fetch_runtime_task()

int parsec_add_fetch_runtime_task ( parsec_taskpool_t *  tp,
int  tasks 
)

◆ parsec_taskpool_termination_detected()

void parsec_taskpool_termination_detected ( parsec_taskpool_t *  tp)