SST/macro
Public Member Functions | Static Public Member Functions | Private Member Functions | Private Attributes | Static Private Attributes | List of all members
sstmac::sw::app_launch Class Reference

#include <app_launch.h>

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

Public Member Functions

 app_launch (app_id aid, parallel_runtime *rt)
 
virtual ~app_launch ()
 
int nproc () const
 
node_id node_assignment (int rank) const
 
const std::list< int > & rank_assignment (node_id nid) const
 
appapp_template () const
 
timestamp start () const
 
app_id aid () const
 
std::vector< int > core_affinities () const
 
virtual void init_factory_params (sprockit::sim_parameters *params)
 
void set_topology (hw::topology *top)
 
hw::topology * topol () const
 
void request_allocation (const ordered_node_set &available, ordered_node_set &allocation)
 request_allocation Request a set of nodes to be used by the job More...
 
void index_allocation (const ordered_node_set &allocation)
 index_allocation Given an allocation of nodes, index or map the job. More...
 
- Public Member Functions inherited from sprockit::factory_type
virtual void init_factory_params (sim_parameters *params)
 
virtual void finalize_init ()
 

Static Public Member Functions

static app_launchstatic_app_launch (int aid, sprockit::sim_parameters *params)
 
static void parse_aprun (const std::string &cmd, int &nproc, int &nproc_per_node, std::vector< int > &core_affinities)
 
static void parse_launch_cmd (sprockit::sim_parameters *params, int &nproc, int &procs_per_node, std::vector< int > &affinities)
 

Private Member Functions

void parse_launch_cmd (sprockit::sim_parameters *params)
 
void init_launch_info ()
 

Private Attributes

sw::node_allocatorallocator_
 
sw::task_mapperindexer_
 
std::vector< node_idrank_to_node_indexing_
 
std::vector< std::list< int > > node_to_rank_indexing_
 
parallel_runtimert_
 
hw::topology * top_
 
sw::appapp_template_
 
sw::app_id aid_
 
std::string appname_
 
std::vector< int > core_affinities_
 
timestamp start_
 
int nproc_
 
int procs_per_node_
 

Static Private Attributes

static std::map< int, app_launch * > static_app_launches_
 

Detailed Description

Definition at line 38 of file app_launch.h.

Constructor & Destructor Documentation

sstmac::sw::app_launch::app_launch ( app_id  aid,
parallel_runtime rt 
)
inline

Definition at line 43 of file app_launch.h.

References ~app_launch().

Here is the call graph for this function:

virtual sstmac::sw::app_launch::~app_launch ( )
virtual

Referenced by app_launch().

Member Function Documentation

app_id sstmac::sw::app_launch::aid ( ) const
inline

Definition at line 76 of file app_launch.h.

References aid_.

Referenced by topol().

app* sstmac::sw::app_launch::app_template ( ) const
inline

Definition at line 66 of file app_launch.h.

References app_template_.

std::vector<int> sstmac::sw::app_launch::core_affinities ( ) const
inline

Definition at line 81 of file app_launch.h.

References core_affinities_, init_factory_params(), and set_topology().

Referenced by topol().

Here is the call graph for this function:

void sstmac::sw::app_launch::index_allocation ( const ordered_node_set allocation)

index_allocation Given an allocation of nodes, index or map the job.

For MPI, this means assigning MPI ranks to nodes (and possibly even cores).

Parameters
allocationThe set of nodes returned by the allocation request

Referenced by topol().

virtual void sstmac::sw::app_launch::init_factory_params ( sprockit::sim_parameters *  params)
virtual

Referenced by core_affinities().

void sstmac::sw::app_launch::init_launch_info ( )
private
node_id sstmac::sw::app_launch::node_assignment ( int  rank) const
inline

Definition at line 56 of file app_launch.h.

References rank_to_node_indexing_.

int sstmac::sw::app_launch::nproc ( ) const
inline

Definition at line 51 of file app_launch.h.

References nproc_.

Referenced by topol().

static void sstmac::sw::app_launch::parse_aprun ( const std::string &  cmd,
int &  nproc,
int &  nproc_per_node,
std::vector< int > &  core_affinities 
)
static

Referenced by topol().

static void sstmac::sw::app_launch::parse_launch_cmd ( sprockit::sim_parameters *  params,
int &  nproc,
int &  procs_per_node,
std::vector< int > &  affinities 
)
static

Referenced by topol().

void sstmac::sw::app_launch::parse_launch_cmd ( sprockit::sim_parameters *  params)
private
const std::list<int>& sstmac::sw::app_launch::rank_assignment ( node_id  nid) const
inline

Definition at line 61 of file app_launch.h.

References node_to_rank_indexing_.

void sstmac::sw::app_launch::request_allocation ( const ordered_node_set available,
ordered_node_set allocation 
)

request_allocation Request a set of nodes to be used by the job

Parameters
availableThe set of nodes available
allocationReference return. Will contain all the nodes request for the allocation. The allocation is NOT necessarily a subset of availabe. If the allocation fails the function can still return an allocation request that might be satisfied at a later time.

Referenced by topol().

void sstmac::sw::app_launch::set_topology ( hw::topology *  top)

Referenced by core_affinities().

timestamp sstmac::sw::app_launch::start ( ) const
inline

Definition at line 71 of file app_launch.h.

References start_.

static app_launch* sstmac::sw::app_launch::static_app_launch ( int  aid,
sprockit::sim_parameters *  params 
)
static

Referenced by topol().

hw::topology* sstmac::sw::app_launch::topol ( ) const
inline

Definition at line 92 of file app_launch.h.

References aid(), core_affinities(), index_allocation(), nproc(), parse_aprun(), parse_launch_cmd(), request_allocation(), static_app_launch(), and top_.

Here is the call graph for this function:

Member Data Documentation

sw::app_id sstmac::sw::app_launch::aid_
private

Definition at line 142 of file app_launch.h.

Referenced by aid().

sw::node_allocator* sstmac::sw::app_launch::allocator_
private

Definition at line 131 of file app_launch.h.

sw::app* sstmac::sw::app_launch::app_template_
private

Definition at line 140 of file app_launch.h.

Referenced by app_template().

std::string sstmac::sw::app_launch::appname_
private

Definition at line 144 of file app_launch.h.

std::vector<int> sstmac::sw::app_launch::core_affinities_
private

Definition at line 146 of file app_launch.h.

Referenced by core_affinities().

sw::task_mapper* sstmac::sw::app_launch::indexer_
private

Definition at line 132 of file app_launch.h.

std::vector<std::list<int> > sstmac::sw::app_launch::node_to_rank_indexing_
private

Definition at line 134 of file app_launch.h.

Referenced by rank_assignment().

int sstmac::sw::app_launch::nproc_
private

Definition at line 150 of file app_launch.h.

Referenced by nproc().

int sstmac::sw::app_launch::procs_per_node_
private

Definition at line 152 of file app_launch.h.

std::vector<node_id> sstmac::sw::app_launch::rank_to_node_indexing_
private

Definition at line 133 of file app_launch.h.

Referenced by node_assignment().

parallel_runtime* sstmac::sw::app_launch::rt_
private

Definition at line 136 of file app_launch.h.

timestamp sstmac::sw::app_launch::start_
private

Definition at line 148 of file app_launch.h.

Referenced by start().

std::map<int, app_launch*> sstmac::sw::app_launch::static_app_launches_
staticprivate

Definition at line 157 of file app_launch.h.

hw::topology* sstmac::sw::app_launch::top_
private

Definition at line 138 of file app_launch.h.

Referenced by topol().


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