/home/runner/work/DiFfRG_current/DiFfRG_current/DiFfRG/include/DiFfRG/physics/integration/map_scheduler.hh File Reference#

DiFfRG: /home/runner/work/DiFfRG_current/DiFfRG_current/DiFfRG/include/DiFfRG/physics/integration/map_scheduler.hh File Reference
DiFfRG
Discretization Framework for functional Renormalization Group flows
map_scheduler.hh File Reference
#include <DiFfRG/common/kokkos.hh>
#include <DiFfRG/common/mpi.hh>
#include <array>
#include <cstddef>
#include <cstdint>
#include <type_traits>
#include <vector>

Go to the source code of this file.

Classes

struct  DiFfRG::MapTarget
 Which resource a map() runs on and how many evaluations saturate one rank's share of it. More...
 
struct  DiFfRG::MapSlice
 This rank's window into the external grid of one QuadratureIntegrator::map() call. More...
 
class  DiFfRG::NoMapsHere
 Decides, without any user input, which rank computes which part of each map(). More...
 
class  DiFfRG::MapScheduler
 
struct  DiFfRG::MapScheduler::Entry
 

Namespaces

namespace  DiFfRG
 
namespace  DiFfRG::internal
 

Enumerations

enum class  DiFfRG::MapResource : int { DiFfRG::device = 0 , DiFfRG::host = 1 }
 The physical resource a map() competes for. More...
 

Functions

double DiFfRG::internal::device_fill_threshold ()
 Kernel evaluations needed to saturate one rank's compute resource.
 
double DiFfRG::internal::host_fill_threshold ()
 
const char * DiFfRG::to_string (const MapResource r)
 
template<typename ExecutionSpace >
MapTarget DiFfRG::map_target ()
 The scheduling target of an execution space, selected at compile time.
 
template<typename ExecutionSpace >
double DiFfRG::map_fill_threshold ()
 The fill threshold alone, for callers that do not need the resource class.
 

Variables

constexpr double DiFfRG::internal::host_grain = 1024.
 
constexpr double DiFfRG::internal::launch_threshold = 1024.
 Evaluations below which a slice cannot pay for the launch that computes it.
 
constexpr int DiFfRG::n_map_resources = 2