OpenMPI 0.1.1

- Main Page
- Related Pages
- Modules
- Data Structures
- Files

- File List
- Globals

odls.h
Go to the documentation of this file.
1 /* -*- C -*-
2 *
3 * Copyright (c) 2004-2008 The Trustees of Indiana University and Indiana
4 * University Research and Technology
5 * Corporation. All rights reserved.
6 * Copyright (c) 2004-2005 The University of Tennessee and The University
7 * of Tennessee Research Foundation. All rights
8 * reserved.
9 * Copyright (c) 2004-2005 High Performance Computing Center Stuttgart,
10 * University of Stuttgart. All rights reserved.
11 * Copyright (c) 2004-2005 The Regents of the University of California.
12 * All rights reserved.
13 * $COPYRIGHT$
14 *
15 * Additional copyrights may follow
16 *
17 * $HEADER$
18 */
19 /**
20 * @file
21 *
22 * The OpenRTE Daemon's Local Launch Subsystem
23 *
24 */
25
26 #ifndef ORTE_MCA_ODLS_H
27 #define ORTE_MCA_ODLS_H
28
29 #include "orte_config.h"
30 #include "orte/types.h"
31
32 #include "opal/mca/mca.h"
33 #include "opal/class/opal_pointer_array.h"
34
35 #include "opal/dss/dss_types.h"
36 #include "orte/mca/rml/rml_types.h"
37 #include "orte/mca/odls/odls_types.h"
38
39 BEGIN_C_DECLS
40
41 /*
42 * odls module functions
43 */
44
45 /*
46 * Construct a buffer for use in adding local processes
47 * In order to reuse daemons, we need a way for the HNP to construct a buffer that
48 * contains the data needed by the active ODLS component to launch a local process. Since the
49 * only one that knows what a particular ODLS component needs is that component, we require an
50 * entry point that the HNP can call to get the required buffer. This is constructed
51 * for *all* nodes - the individual orteds then parse that data to find the specific launch info
52 * for procs on their node
53 */
54 typedef int (*orte_odls_base_module_get_add_procs_data_fn_t)(opal_buffer_t *data,
55 orte_jobid_t job);
56
57 /**
58 * Locally launch the provided processes
59 */
60 typedef int (*orte_odls_base_module_launch_local_processes_fn_t)(opal_buffer_t *data);
61
62 /**
63 * Kill the local processes on this node
64 */
65 typedef int (*orte_odls_base_module_kill_local_processes_fn_t)(opal_pointer_array_t *procs);
66
67 /**
68 * Signal local processes
69 */
70 typedef int (*orte_odls_base_module_signal_local_process_fn_t)(const orte_process_name_t *proc,
71 int32_t signal);
72
73 /**
74 * Deliver a message to local processes
75 */
76 typedef int (*orte_odls_base_module_deliver_message_fn_t)(orte_jobid_t job, opal_buffer_t *buffer,
77 orte_rml_tag_t tag);
78
79 /**
80 * Register to require sync before termination
81 */
82 typedef int (*orte_odls_base_module_require_sync_fn_t)(orte_process_name_t *proc,
83 opal_buffer_t *buffer,
84 bool drop_nidmap);
85 /**
86 * Restart a local process
87 */
88 typedef int (*orte_odls_base_module_restart_proc_fn_t)(orte_odls_child_t *child);
89
90 /**
91 * pls module version
92 */
93 struct orte_odls_base_module_1_3_0_t {
94 orte_odls_base_module_get_add_procs_data_fn_t get_add_procs_data;
95 orte_odls_base_module_launch_local_processes_fn_t launch_local_procs;
96 orte_odls_base_module_kill_local_processes_fn_t kill_local_procs;
97 orte_odls_base_module_signal_local_process_fn_t signal_local_procs;
98 orte_odls_base_module_deliver_message_fn_t deliver_message;
99 orte_odls_base_module_require_sync_fn_t require_sync;
100 orte_odls_base_module_restart_proc_fn_t restart_proc;
101 };
102
103 /** shorten orte_odls_base_module_1_3_0_t declaration */
104 typedef struct orte_odls_base_module_1_3_0_t orte_odls_base_module_1_3_0_t;
105 /** shorten orte_odls_base_module_t declaration */
106 typedef struct orte_odls_base_module_1_3_0_t orte_odls_base_module_t;
107
108 /**
109 * odls component
110 */
111 struct orte_odls_base_component_2_0_0_t {
112 /** component version */
113 mca_base_component_t version;
114 /** component data */
115 mca_base_component_data_t base_data;
116 };
117 /** Convenience typedef */
118 typedef struct orte_odls_base_component_2_0_0_t orte_odls_base_component_2_0_0_t;
119 /** Convenience typedef */
120 typedef orte_odls_base_component_2_0_0_t orte_odls_base_component_t;
121
122
123 /**
124 * Macro for use in modules that are of type odls
125 */
126 #define ORTE_ODLS_BASE_VERSION_2_0_0 \
127 MCA_BASE_VERSION_2_0_0, \
128 "odls", 2, 0, 0
129
130 /* Global structure for accessing ODLS functions
131 */
132 ORTE_DECLSPEC extern orte_odls_base_module_t orte_odls; /* holds selected module's function pointers */
133
134 END_C_DECLS
135
136 #endif /* MCA_ODLS_H */
orte_odls_base_component_2_0_0_t
odls component
Definition: odls.h:111
mca_base_component_2_0_0_t
Common type for all MCA components.
Definition: mca.h:250
opal_pointer_array_t
dynamic pointer array
Definition: opal_pointer_array.h:45
orte_odls_base_module_require_sync_fn_t
int(* orte_odls_base_module_require_sync_fn_t)(orte_process_name_t *proc, opal_buffer_t *buffer, bool drop_nidmap)
Register to require sync before termination.
Definition: odls.h:82
orte_jobid_t
uint32_t orte_jobid_t
Set the allowed range for ids in each space.
Definition: types.h:76
orte_process_name_t
Definition: types.h:146
odls_types.h
opal_pointer_array.h
See opal_bitmap.h for an explanation of why there is a split between OPAL and ORTE for this generic c...
orte_odls_base_component_2_0_0_t::base_data
mca_base_component_data_t base_data
component data
Definition: odls.h:115
mca.h
Top-level interface for all MCA components.
orte_odls_child_t
Definition: odls_types.h:100
types.h
orte_odls_base_module_1_3_0_t
pls module version
Definition: odls.h:93
orte_odls_base_module_restart_proc_fn_t
int(* orte_odls_base_module_restart_proc_fn_t)(orte_odls_child_t *child)
Restart a local process.
Definition: odls.h:88
orte_odls_base_component_2_0_0_t::version
mca_base_component_t version
component version
Definition: odls.h:113
orte_odls_base_module_kill_local_processes_fn_t
int(* orte_odls_base_module_kill_local_processes_fn_t)(opal_pointer_array_t *procs)
Kill the local processes on this node.
Definition: odls.h:65
orte_odls_base_module_signal_local_process_fn_t
int(* orte_odls_base_module_signal_local_process_fn_t)(const orte_process_name_t *proc, int32_t signal)
Signal local processes.
Definition: odls.h:70
dss_types.h
Buffer management types.
mca_base_component_data_2_0_0_t
Meta data for MCA v2.0.0 components.
Definition: mca.h:309
orte_rml_tag_t
uint32_t orte_rml_tag_t
Message matching tag.
Definition: rml_types.h:220
orte_odls_base_component_t
orte_odls_base_component_2_0_0_t orte_odls_base_component_t
Convenience typedef.
Definition: odls.h:120
opal_buffer_t
Structure for holding a buffer to be used with the RML or OOB subsystems.
Definition: dss_types.h:159
orte_odls_base_module_deliver_message_fn_t
int(* orte_odls_base_module_deliver_message_fn_t)(orte_jobid_t job, opal_buffer_t *buffer, orte_rml_tag_t tag)
Deliver a message to local processes.
Definition: odls.h:76
orte_odls_base_module_launch_local_processes_fn_t
int(* orte_odls_base_module_launch_local_processes_fn_t)(opal_buffer_t *data)
Locally launch the provided processes.
Definition: odls.h:60
rml_types.h
Contains the typedefs for the use of the rml.