SST/macro
|
The job_launcher class performs the combined operations a queue scheduler like PBS or MOAB and a job launcher like SLURM (srun) or ALPS (aprun). More...
#include <job_launcher.h>
Public Member Functions | |
void | handle (event *ev) |
void | set_interconnect (hw::interconnect *ic) |
node_id | node_for_task (app_id aid, task_id tid) const |
app_launch * | task_mapper (app_id aid) const |
virtual void | init_factory_params (sprockit::sim_parameters *params) |
virtual void | handle_new_launch_request (app_launch *appman)=0 |
handle_new_launch_request As if a new job had been submitted with qsub or salloc. More... | |
Public Member Functions inherited from sprockit::factory_type | |
virtual void | init_factory_params (sim_parameters *params) |
virtual void | finalize_init () |
Public Member Functions inherited from sstmac::event_handler | |
virtual std::string | to_string () const =0 |
virtual | ~event_handler () |
event_loc_id | event_location () const |
virtual bool | ipc_handler () const |
Whether an event handler is a "fake" handler that represents logical process boundary. More... | |
int | thread_id () const |
virtual void | deadlock_check (event *ev) |
virtual void | deadlock_check () |
Protected Member Functions | |
void | satisfy_launch_request (app_launch *appman) |
Protected Member Functions inherited from sstmac::event_handler | |
event_handler () | |
void | init_loc_id (event_loc_id id) |
void | init_thread_id (int id) |
Protected Attributes | |
hw::interconnect * | interconnect_ |
ordered_node_set | allocated_ |
ordered_node_set | available_ |
std::map< app_id, app_launch * > | apps_launched_ |
Additional Inherited Members | |
Static Public Attributes inherited from sstmac::event_handler | |
static const int | null_lpid = -1 |
static const int | null_threadid = -1 |
The job_launcher class performs the combined operations a queue scheduler like PBS or MOAB and a job launcher like SLURM (srun) or ALPS (aprun).
The job launcher allocates nodes to each requested MPI job (or other application). Once nodes are allocated, the job_launcher has to assign MPI ranks to each node (mapping or indexing). Each application can request its a specific allocation or indexing. However, it is ultimately the responsibility of the job launcher to decide on the final allocation/indexing. In most cases, the job_launcher will honor exactly each applications's request unless there is a conflict - in which case the job_launcher must arbitrate conflicting requests.
Definition at line 26 of file job_launcher.h.
|
virtual |
Implements sstmac::event_handler.
|
pure virtual |
handle_new_launch_request As if a new job had been submitted with qsub or salloc.
The job_launcher receives a new request to launch an application, at which point it can choose to launch the application immediately if node allocation succeeds.
appnum | A unique integer identifying the application launched |
appman | An object specifying all the details (indexing, allocation, application type) of the application being launched |
Implemented in sstmac::sw::default_job_launcher, and sstmac::sw::sdn_job_launcher.
Referenced by sstmac::sw::default_job_launcher::to_string().
|
virtual |
|
protected |
void sstmac::sw::job_launcher::set_interconnect | ( | hw::interconnect * | ic | ) |
app_launch* sstmac::sw::job_launcher::task_mapper | ( | app_id | aid | ) | const |
|
protected |
Definition at line 62 of file job_launcher.h.
|
protected |
Definition at line 65 of file job_launcher.h.
|
protected |
Definition at line 63 of file job_launcher.h.
|
protected |
Definition at line 61 of file job_launcher.h.