AQUAgpusph 4.1.2
Loading...
Searching...
No Matches
Public Member Functions | Protected Member Functions
Aqua::CalcServer::LinkList Class Reference

Complex tool to perform the link-list based on the "pos" array. This tool include the following steps: More...

#include <CalcServer/LinkList.h>

Inheritance diagram for Aqua::CalcServer::LinkList:
Inheritance graph
[legend]
Collaboration diagram for Aqua::CalcServer::LinkList:
Collaboration graph
[legend]

Public Member Functions

 LinkList (const std::string tool_name, const std::string input="pos", bool once=false)
 
 ~LinkList ()
 
void setup ()
 
- Public Member Functions inherited from Aqua::CalcServer::Tool
 Tool (const std::string tool_name, bool once=false)
 
virtual ~Tool ()
 
void name (const std::string tool_name)
 
const std::string name ()
 
virtual void setup ()
 
virtual void execute ()
 Execute the tool measuring the elapsed time.
 
virtual Toolnext_tool ()
 
size_t allocatedMemory () const
 
unsigned int used_times () const
 
float elapsedTime (bool averaged=true) const
 
float elapsedTimeVariance () const
 
float elapsedTimeDeviation () const
 
virtual const int scope_modifier ()
 

Protected Member Functions

cl_event _execute (const std::vector< cl_event > events)
 
- Protected Member Functions inherited from Aqua::CalcServer::Tool
int id_in_pipeline ()
 
void next_tool (Tool *tool)
 
void allocatedMemory (size_t mem_size)
 
virtual cl_event _execute (const std::vector< cl_event > events)
 
void addElapsedTime (float elapsed_time)
 Add new data to the average and squared elapsed times.
 
void setDependencies (std::vector< std::string > var_names)
 Set the depedencies of the tool.
 
void setDependencies (std::vector< InputOutput::Variable * > vars)
 Set the depedencies of the tool.
 
const std::vector< InputOutput::Variable * > getDependencies ()
 Get the depedencies of the tool.
 

Additional Inherited Members

- Static Protected Member Functions inherited from Aqua::CalcServer::Tool
static std::vector< cl_kernel > compile (const std::string source, const std::vector< std::string > names, const std::string flags="")
 Compile an OpenCL source code and generate the corresponding kernel.
 
static cl_kernel compile_kernel (const std::string source, const std::string kernel_name, const std::string flags="")
 Compile an OpenCL source code and generate the corresponding kernel.
 

Detailed Description

Complex tool to perform the link-list based on the "pos" array. This tool include the following steps:

  1. Minimum and maximum positions computations
    1. Number of cells calculation
    2. "ihoc" array allocation
    3. "ihoc" and "icell" calculations
    4. Radix sort of "icell", computing permutation array "id_sorted" and "id_unsorted" as well.
      Note
      Hardcoded versions of the files CalcServer/LinkList.cl.in and CalcServer/LinkList.hcl.in are internally included as a text array.

Constructor & Destructor Documentation

◆ LinkList()

Aqua::CalcServer::LinkList::LinkList ( const std::string  tool_name,
const std::string  input = "pos",
bool  once = false 
)

Constructor.

Parameters
tool_nameTool name.
inputInput array to be used as the particles positions.
onceRun this tool just once. Useful to make initializations.

◆ ~LinkList()

Aqua::CalcServer::LinkList::~LinkList ( )

Destructor

Member Function Documentation

◆ _execute()

cl_event Aqua::CalcServer::LinkList::_execute ( const std::vector< cl_event >  events)
protectedvirtual

Execute the tool

Parameters
eventsList of events that shall be waited before safe execution
Returns
OpenCL event to be waited before accesing the dependencies

Reimplemented from Aqua::CalcServer::Tool.

Here is the call graph for this function:

◆ setup()

void Aqua::CalcServer::LinkList::setup ( )
virtual

Initialize the tool.

Reimplemented from Aqua::CalcServer::Tool.

Here is the call graph for this function:

The documentation for this class was generated from the following files: