Classes | |
class | Config |
Configuration for MultiProcess infrastructure. More... | |
class | FIFOQueue |
A Queue with simple FIFO behavior. More... | |
class | HeatmapAnalyzer |
Reads and processes logfiles produced by RooFit::MultiProcess::ProcessTimer. More... | |
class | Job |
interface class for defining the actual work that must be done More... | |
class | JobManager |
Main point of access for all MultiProcess infrastructure. More... | |
struct | JobTask |
combined job_object, state and task identifier type More... | |
class | Messenger |
Manages ZeroMQ sockets and wraps send and receive calls. More... | |
struct | OrderedJobTask |
class | PriorityQueue |
Queue that orders tasks according to specified task priorities. More... | |
class | ProcessManager |
Fork processes for queue and workers. More... | |
class | ProcessTimer |
Can be used to generate timings of multiple processes simultaneously and output logs. More... | |
class | Queue |
Keeps a queue of tasks for workers and manages the queue process through its event loop. More... | |
Typedefs | |
using | State = std::size_t |
using | Task = std::size_t |
Enumerations | |
enum class | M2Q : int { enqueue = 10 } |
enum class | Q2W : int { dequeue_rejected = 40 , dequeue_accepted = 41 } |
enum class | W2Q : int { dequeue = 30 } |
enum class | X2X : int { ping = -1 , pong = -2 , initial_value = 0 } |
enum class | zmq_ppoll_error_response { abort , unknown_eintr , retry } |
Functions | |
std::tuple< std::vector< std::pair< size_t, zmq::event_flags > >, bool > | careful_ppoll (ZeroMQPoller &poller, const sigset_t &ppoll_sigmask, std::size_t max_tries=2) |
int | chill_wait () |
pid_t | fork_and_handle_errors () |
zmq_ppoll_error_response | handle_zmq_ppoll_error (ZMQ::ppoll_error_t &e) |
bool | is_worker_loop_running () |
std::ostream & | operator<< (std::ostream &out, const M2Q value) |
std::ostream & | operator<< (std::ostream &out, const Q2W value) |
std::ostream & | operator<< (std::ostream &out, const W2Q value) |
std::ostream & | operator<< (std::ostream &out, const X2X value) |
void | set_socket_immediate (ZmqLingeringSocketPtr<> &socket) |
int | wait_for_child (pid_t child_pid, bool may_throw, int retries_before_killing) |
void | worker_loop () |
The worker processes' event loop. | |
Variables | |
static bool | worker_loop_running = false |
using RooFit::MultiProcess::State = typedef std::size_t |
using RooFit::MultiProcess::Task = typedef std::size_t |
|
strong |
Enumerator | |
---|---|
enqueue |
Definition at line 151 of file Messenger_decl.h.
|
strong |
Enumerator | |
---|---|
dequeue_rejected | |
dequeue_accepted |
Definition at line 159 of file Messenger_decl.h.
|
strong |
Enumerator | |
---|---|
dequeue |
Definition at line 156 of file Messenger_decl.h.
|
strong |
Enumerator | |
---|---|
ping | |
pong | |
initial_value |
Definition at line 31 of file Messenger_decl.h.
|
strong |
std::tuple< std::vector< std::pair< size_t, zmq::event_flags > >, bool > RooFit::MultiProcess::careful_ppoll | ( | ZeroMQPoller & | poller, |
const sigset_t & | ppoll_sigmask, | ||
std::size_t | max_tries = 2 |
||
) |
int RooFit::MultiProcess::chill_wait | ( | ) |
Definition at line 231 of file ProcessManager.cxx.
pid_t RooFit::MultiProcess::fork_and_handle_errors | ( | ) |
Definition at line 90 of file ProcessManager.cxx.
zmq_ppoll_error_response RooFit::MultiProcess::handle_zmq_ppoll_error | ( | ZMQ::ppoll_error_t & | e | ) |
bool RooFit::MultiProcess::is_worker_loop_running | ( | ) |
Definition at line 34 of file worker.cxx.
std::ostream & RooFit::MultiProcess::operator<< | ( | std::ostream & | out, |
const M2Q | value | ||
) |
Definition at line 474 of file Messenger.cxx.
std::ostream & RooFit::MultiProcess::operator<< | ( | std::ostream & | out, |
const Q2W | value | ||
) |
Definition at line 494 of file Messenger.cxx.
std::ostream & RooFit::MultiProcess::operator<< | ( | std::ostream & | out, |
const W2Q | value | ||
) |
Definition at line 484 of file Messenger.cxx.
std::ostream & RooFit::MultiProcess::operator<< | ( | std::ostream & | out, |
const X2X | value | ||
) |
Definition at line 505 of file Messenger.cxx.
void RooFit::MultiProcess::set_socket_immediate | ( | ZmqLingeringSocketPtr<> & | socket | ) |
Definition at line 24 of file Messenger.cxx.
void RooFit::MultiProcess::worker_loop | ( | ) |
The worker processes' event loop.
Asks the queue process for tasks, polls for incoming messages from other processes and handles them.
Definition at line 43 of file worker.cxx.
|
static |
Definition at line 32 of file worker.cxx.