SST/macro
Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
sstmac::sw::job_launcher Class Referenceabstract

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>

Inheritance diagram for sstmac::sw::job_launcher:
Inheritance graph
Collaboration diagram for sstmac::sw::job_launcher:
Collaboration graph

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_launchtask_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
 

Detailed Description

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.

Member Function Documentation

void sstmac::sw::job_launcher::handle ( event ev)
virtual

Implements sstmac::event_handler.

virtual void sstmac::sw::job_launcher::handle_new_launch_request ( app_launch appman)
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.

Parameters
appnumA unique integer identifying the application launched
appmanAn 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 void sstmac::sw::job_launcher::init_factory_params ( sprockit::sim_parameters *  params)
virtual
node_id sstmac::sw::job_launcher::node_for_task ( app_id  aid,
task_id  tid 
) const
void sstmac::sw::job_launcher::satisfy_launch_request ( app_launch appman)
protected
void sstmac::sw::job_launcher::set_interconnect ( hw::interconnect *  ic)
app_launch* sstmac::sw::job_launcher::task_mapper ( app_id  aid) const

Member Data Documentation

ordered_node_set sstmac::sw::job_launcher::allocated_
protected

Definition at line 62 of file job_launcher.h.

std::map<app_id, app_launch*> sstmac::sw::job_launcher::apps_launched_
protected

Definition at line 65 of file job_launcher.h.

ordered_node_set sstmac::sw::job_launcher::available_
protected

Definition at line 63 of file job_launcher.h.

hw::interconnect* sstmac::sw::job_launcher::interconnect_
protected

Definition at line 61 of file job_launcher.h.


The documentation for this class was generated from the following file: