OpenMPI  0.1.1
plm.h
Go to the documentation of this file.
1 /*
2  * Copyright (c) 2004-2008 The Trustees of Indiana University and Indiana
3  * University Research and Technology
4  * Corporation. All rights reserved.
5  * Copyright (c) 2004-2006 The University of Tennessee and The University
6  * of Tennessee Research Foundation. All rights
7  * reserved.
8  * Copyright (c) 2004-2005 High Performance Computing Center Stuttgart,
9  * University of Stuttgart. All rights reserved.
10  * Copyright (c) 2004-2005 The Regents of the University of California.
11  * All rights reserved.
12  * $COPYRIGHT$
13  *
14  * Additional copyrights may follow
15  *
16  * $HEADER$
17  */
18 /** @file:
19  *
20  * The Process Lifecycle Management (PLM) subsystem serves as the central
21  * switchyard for all process management activities, including
22  * resource allocation, process mapping, process launch, and process
23  * monitoring.
24  */
25 
26 #ifndef ORTE_PLM_H
27 #define ORTE_PLM_H
28 
29 /*
30  * includes
31  */
32 
33 #include "orte_config.h"
34 #include "orte/types.h"
35 
36 #include "opal/mca/mca.h"
37 #include "opal/dss/dss_types.h"
39 
41 
42 #include "plm_types.h"
43 
44 BEGIN_C_DECLS
45 
46 /*
47  * Component functions - all MUST be provided
48  */
49 
50 /*
51  * allow the selected module to initialize
52  */
53 typedef int (*orte_plm_base_module_init_fn_t)(void);
54 
55 /*
56  * Spawn a job
57  */
58 typedef int (*orte_plm_base_module_spawn_fn_t)(orte_job_t *jdata);
59 
60 /*
61  * Remote spawn - spawn called by a daemon to launch a process on its own
62  */
63 typedef int (*orte_plm_base_module_remote_spawn_fn_t)(opal_buffer_t *launch);
64 
65 /*
66  * Entry point to set the HNP name
67  */
68 typedef int (*orte_plm_base_module_set_hnp_name_fn_t)(void);
69 
70 /**
71  * Cleanup resources held by module.
72  */
73 
75 
76 /**
77  * Terminate any processes launched for the respective jobid by
78  * this component.
79  */
81 
82 /**
83  * Terminate the daemons
84  */
86 
87 /**
88  * Terminate an array of specific procs
89  */
91 
92  /**
93  * Signal any processes launched for the respective jobid by
94  * this component.
95  */
97 
98 /**
99  * plm module version 1.0.0
100  */
102  orte_plm_base_module_init_fn_t init;
103  orte_plm_base_module_set_hnp_name_fn_t set_hnp_name;
104  orte_plm_base_module_spawn_fn_t spawn;
105  orte_plm_base_module_remote_spawn_fn_t remote_spawn;
111 };
112 
113 /** shorten orte_plm_base_module_1_0_0_t declaration */
115 /** shorten orte_plm_base_module_t declaration */
117 
118 
119 /**
120  * plm component
121  */
123  /** component version */
125  /** component data */
127 };
128 /** Convenience typedef */
130 /** Convenience typedef */
132 
133 
134 /**
135  * Macro for use in modules that are of type plm
136  */
137 #define ORTE_PLM_BASE_VERSION_2_0_0 \
138 MCA_BASE_VERSION_2_0_0, \
139 "plm", 2, 0, 0
140 
141 /* Global structure for accessing PLM functions */
142 ORTE_DECLSPEC extern orte_plm_base_module_t orte_plm; /* holds selected module's function pointers */
143 
144 END_C_DECLS
145 
146 #endif
Common type for all MCA components.
Definition: mca.h:250
dynamic pointer array
Definition: opal_pointer_array.h:45
int(* orte_plm_base_module_signal_job_fn_t)(orte_jobid_t, int32_t)
Signal any processes launched for the respective jobid by this component.
Definition: plm.h:96
uint32_t orte_jobid_t
Set the allowed range for ids in each space.
Definition: types.h:76
mca_base_component_data_t base_data
component data
Definition: plm.h:126
orte_plm_base_component_2_0_0_t orte_plm_base_component_t
Convenience typedef.
Definition: plm.h:131
See opal_bitmap.h for an explanation of why there is a split between OPAL and ORTE for this generic c...
int(* orte_plm_base_module_terminate_procs_fn_t)(opal_pointer_array_t *procs)
Terminate an array of specific procs.
Definition: plm.h:90
Top-level interface for all MCA components.
int(* orte_plm_base_module_terminate_job_fn_t)(orte_jobid_t)
Terminate any processes launched for the respective jobid by this component.
Definition: plm.h:80
plm component
Definition: plm.h:122
Buffer management types.
Meta data for MCA v2.0.0 components.
Definition: mca.h:309
Definition: orte_globals.h:316
Global params for OpenRTE.
mca_base_component_t base_version
component version
Definition: plm.h:124
Structure for holding a buffer to be used with the RML or OOB subsystems.
Definition: dss_types.h:159
int(* orte_plm_base_module_finalize_fn_t)(void)
Cleanup resources held by module.
Definition: plm.h:74
plm module version 1.0.0
Definition: plm.h:101
int(* orte_plm_base_module_terminate_orteds_fn_t)(void)
Terminate the daemons.
Definition: plm.h:85