Shamrock 2025.10.0
Astrophysical Code
Loading...
Searching...
No Matches
Classes | Namespaces | Functions
NodeInstance.hpp File Reference

Header file describing a Node Instance. More...

#include "shambase/aliases_int.hpp"
#include "shambackends/DeviceScheduler.hpp"
#include "shamcomm/mpiInfo.hpp"
#include "shamcomm/worldInfo.hpp"
#include <sycl/sycl.hpp>
#include <vector>
+ Include dependency graph for NodeInstance.hpp:
+ This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

class  shamsys::instance::ShamsysInstanceException
 Exception type for the NodeInstance. More...
 
struct  shamsys::instance::SyclInitInfo
 Struct containing Sycl Init informations Usage. More...
 
struct  shamsys::instance::MPIInitInfo
 Struct containing MPI Init informations Usage. More...
 

Namespaces

namespace  shamsys
 namespace for the system handling
 

Functions

bool shamsys::instance::is_initialized ()
 to check whether the NodeInstance is initialized
 
void shamsys::instance::init (int argc, char *argv[])
 initialize the NodeInstance from command line args in the main
 
void shamsys::instance::start_mpi (MPIInitInfo mpi_info)
 Start MPI.
 
void shamsys::instance::init_sycl_mpi (std::string search_key, MPIInitInfo mpi_info)
 Start SYCL & MPI.
 
void shamsys::instance::close ()
 close the NodeInstance Aka : Finalize both MPI & SYCL
 
void shamsys::instance::close_mpi ()
 Finalize MPI.
 
void shamsys::instance::print_device_list ()
 
void shamsys::instance::print_queue_map ()
 Print SYCL queue map.
 
sycl::queue & shamsys::instance::get_compute_queue (u32 id=0)
 
u32 shamsys::instance::get_compute_queue_eu_count (u32 id=0)
 
sycl::device shamsys::instance::get_compute_device ()
 
sycl::queue & shamsys::instance::get_alt_queue (u32 id=0)
 Get the alternative queue.
 
sham::DeviceSchedulershamsys::instance::get_compute_scheduler ()
 
sham::DeviceSchedulershamsys::instance::get_alt_scheduler ()
 
std::shared_ptr< sham::DeviceSchedulershamsys::instance::get_compute_scheduler_ptr ()
 
std::shared_ptr< sham::DeviceSchedulershamsys::instance::get_alt_scheduler_ptr ()
 
void shamsys::instance::print_mpi_capabilities ()
 
void shamsys::instance::print_mpi_comm_info ()
 
void shamsys::instance::check_dgpu_available ()
 

Detailed Description

Header file describing a Node Instance.

Author
Timothée David–Cléris (tim.s.nosp@m.hamr.nosp@m.ock@p.nosp@m.roto.nosp@m.n.me)

A NodeInstance is a wrapper to perform a combined initialisation of both SYCL & MPI. Essentially it handle the MPI process and corresponding accelerators

Definition in file NodeInstance.hpp.

Function Documentation

◆ check_dgpu_available()

void shamsys::instance::check_dgpu_available ( )

Definition at line 401 of file NodeInstance.cpp.

◆ close()

void shamsys::instance::close ( )

close the NodeInstance Aka : Finalize both MPI & SYCL

Definition at line 359 of file NodeInstance.cpp.

+ Here is the call graph for this function:

◆ close_mpi()

void shamsys::instance::close_mpi ( )

Finalize MPI.

Definition at line 345 of file NodeInstance.cpp.

+ Here is the call graph for this function:

◆ get_alt_queue()

sycl::queue & shamsys::instance::get_alt_queue ( u32  id = 0)

Get the alternative queue.

Parameters
id
Returns
sycl::queue& reference to the corresponding queue

Definition at line 372 of file NodeInstance.cpp.

+ Here is the call graph for this function:

◆ get_alt_scheduler()

sham::DeviceScheduler & shamsys::instance::get_alt_scheduler ( )

Definition at line 376 of file NodeInstance.cpp.

◆ get_alt_scheduler_ptr()

std::shared_ptr< sham::DeviceScheduler > shamsys::instance::get_alt_scheduler_ptr ( )

Definition at line 382 of file NodeInstance.cpp.

◆ get_compute_device()

sycl::device shamsys::instance::get_compute_device ( )
inline

Definition at line 127 of file NodeInstance.hpp.

◆ get_compute_queue()

sycl::queue & shamsys::instance::get_compute_queue ( u32  id = 0)
Parameters
id
Returns
sycl::queue& reference to the corresponding queue

Definition at line 370 of file NodeInstance.cpp.

+ Here is the call graph for this function:

◆ get_compute_queue_eu_count()

u32 shamsys::instance::get_compute_queue_eu_count ( u32  id = 0)

Definition at line 165 of file NodeInstance.cpp.

◆ get_compute_scheduler()

sham::DeviceScheduler & shamsys::instance::get_compute_scheduler ( )

Definition at line 374 of file NodeInstance.cpp.

◆ get_compute_scheduler_ptr()

std::shared_ptr< sham::DeviceScheduler > shamsys::instance::get_compute_scheduler_ptr ( )

Definition at line 378 of file NodeInstance.cpp.

◆ init()

void shamsys::instance::init ( int  argc,
char *  argv[] 
)

initialize the NodeInstance from command line args in the main

int main(int argc, char *argv[]){
shamsys::instance::init(argc,argv);
... do stuff ...
shamsys::instance::close();
}

Definition at line 316 of file NodeInstance.cpp.

+ Here is the call graph for this function:

◆ init_sycl_mpi()

void shamsys::instance::init_sycl_mpi ( std::string  search_key,
MPIInitInfo  mpi_info 
)

Start SYCL & MPI.

Definition at line 300 of file NodeInstance.cpp.

+ Here is the call graph for this function:

◆ is_initialized()

bool shamsys::instance::is_initialized ( )

to check whether the NodeInstance is initialized

Returns
true NodeInstance is initialized
false NodeInstance is not initialized

Definition at line 167 of file NodeInstance.cpp.

+ Here is the call graph for this function:

◆ print_device_list()

void shamsys::instance::print_device_list ( )

Definition at line 391 of file NodeInstance.cpp.

◆ print_mpi_capabilities()

void shamsys::instance::print_mpi_capabilities ( )

Definition at line 397 of file NodeInstance.cpp.

◆ print_mpi_comm_info()

void shamsys::instance::print_mpi_comm_info ( )

Definition at line 399 of file NodeInstance.cpp.

◆ print_queue_map()

void shamsys::instance::print_queue_map ( )

Print SYCL queue map.

Definition at line 169 of file NodeInstance.cpp.

+ Here is the call graph for this function:

◆ start_mpi()

void shamsys::instance::start_mpi ( MPIInitInfo  mpi_info)

Start MPI.

Definition at line 245 of file NodeInstance.cpp.

+ Here is the call graph for this function: