Namespaces | |
namespace | Detail |
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 = std::size_t |
using RooFit::MultiProcess::Task = std::size_t |
|
strong |
Enumerator | |
---|---|
enqueue |
Definition at line 153 of file Messenger_decl.h.
|
strong |
Enumerator | |
---|---|
dequeue_rejected | |
dequeue_accepted |
Definition at line 161 of file Messenger_decl.h.
|
strong |
Enumerator | |
---|---|
dequeue |
Definition at line 158 of file Messenger_decl.h.
|
strong |
Enumerator | |
---|---|
ping | |
pong | |
initial_value |
Definition at line 31 of file Messenger_decl.h.
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.
Definition at line 472 of file Messenger.cxx.
Definition at line 492 of file Messenger.cxx.
Definition at line 482 of file Messenger.cxx.
Definition at line 503 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.
Definition at line 32 of file worker.cxx.