1 #ifndef PARALUTION_BASE_HPP_
2 #define PARALUTION_BASE_HPP_
19 virtual void Clear() = 0;
29 std::vector<class ParalutionObj*>
all_obj;
40 template <
typename ValueType>
64 virtual void Sync(
void);
70 template <
typename ValueType2>
74 virtual void info()
const = 0;
77 virtual void Clear() = 0;
88 virtual bool is_host(
void)
const = 0;
91 virtual bool is_accel(
void)
const = 0;
108 #endif // PARALUTION_LOCAL_BASE_HPP_
virtual void MoveToAccelerator(void)=0
Move the object to the Accelerator backend.
size_t global_obj_id
Definition: base_paralution.hpp:22
virtual void MoveToHostAsync(void)
Move the object to the Host backend with async move.
Definition: base_paralution.cpp:159
BaseParalution()
Definition: base_paralution.cpp:52
ParalutionObj()
Definition: base_paralution.cpp:11
virtual ~ParalutionObj()
Definition: base_paralution.cpp:28
virtual void Sync(void)
Definition: base_paralution.cpp:167
Backend descriptor - keeps information about the hardware - OpenMP (threads); CUDA (blocksizes...
Definition: backend_manager.hpp:19
virtual void MoveToAcceleratorAsync(void)
Move the object to the Accelerator backend with async move.
Definition: base_paralution.cpp:151
virtual void Clear()=0
Clear (free all data) the object.
Paralution_Backend_Descriptor local_backend_
Backend descriptor.
Definition: base_paralution.hpp:85
virtual bool is_accel(void) const =0
Return true if the object is on the accelerator.
std::string object_name_
Name of the object.
Definition: base_paralution.hpp:82
BaseParalution< ValueType > & operator=(const BaseParalution< ValueType > &src)
Definition: base_paralution.cpp:86
Global data for all PARALUTION objects.
Definition: base_paralution.hpp:27
Paralution_Object_Data Paralution_Object_Data_Tracking
Global obj tracking structure.
Definition: base_paralution.cpp:9
virtual ~BaseParalution()
Definition: base_paralution.cpp:78
std::vector< class ParalutionObj * > all_obj
Definition: base_paralution.hpp:29
virtual bool is_host(void) const =0
Return true if the object is on the host.
Base class for operator and vector (i.e. global/local matrix/stencil/vector) classes, all the backend-related interface and data are defined here.
Definition: base_paralution.hpp:41
bool asyncf
Definition: base_paralution.hpp:94
Definition: backend_manager.cpp:43
Definition: base_paralution.hpp:11
virtual void info() const =0
Print the object information (properties, backends)
virtual void MoveToHost(void)=0
Move the object to the Host backend.
virtual void Clear()=0
Clear (free all data) the object.
void CloneBackend(const BaseParalution< ValueType > &src)
Clone the Backend descriptor from another object.
Definition: base_paralution.cpp:97