File indexing completed on 2026-07-29 09:17:59
0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016
0017
0018
0019
0020
0021
0022
0023
0024
0025
0026
0027 #ifndef PRTE_MCA_RMAPS_BASE_H
0028 #define PRTE_MCA_RMAPS_BASE_H
0029
0030
0031
0032
0033 #include "prte_config.h"
0034 #include "types.h"
0035
0036 #include "src/class/pmix_list.h"
0037 #include "src/mca/mca.h"
0038 #include "src/mca/base/pmix_mca_base_framework.h"
0039 #include "src/mca/schizo/schizo.h"
0040 #include "src/util/pmix_printf.h"
0041
0042 #include "src/runtime/prte_globals.h"
0043
0044 #include "src/mca/rmaps/rmaps.h"
0045
0046 BEGIN_C_DECLS
0047
0048
0049
0050
0051 PRTE_EXPORT extern pmix_mca_base_framework_t prte_rmaps_base_framework;
0052
0053 PRTE_EXPORT int prte_rmaps_base_select(void);
0054
0055
0056
0057
0058
0059
0060
0061
0062 typedef struct {
0063
0064 pmix_list_t selected_modules;
0065
0066 prte_mapping_policy_t mapping;
0067 prte_ranking_policy_t ranking;
0068
0069 char *device;
0070
0071
0072 bool inherit;
0073
0074 bool hwthread_cpus;
0075
0076
0077 char *file;
0078
0079 uint16_t default_pes;
0080
0081 hwloc_cpuset_t available, baseset;
0082 char *default_mapping_policy;
0083 char *default_ranking_policy;
0084
0085 bool require_hwtcpus;
0086 } prte_rmaps_base_t;
0087
0088
0089
0090
0091 PRTE_EXPORT extern prte_rmaps_base_t prte_rmaps_base;
0092
0093
0094
0095
0096 typedef struct {
0097 pmix_list_item_t super;
0098 int pri;
0099 prte_rmaps_base_module_t *module;
0100 pmix_mca_base_component_t *component;
0101 } prte_rmaps_base_selected_module_t;
0102 PMIX_CLASS_DECLARATION(prte_rmaps_base_selected_module_t);
0103
0104
0105
0106
0107 PRTE_EXPORT void prte_rmaps_base_map_job(int sd, short args, void *cbdata);
0108
0109
0110
0111
0112
0113 PRTE_EXPORT int prte_rmaps_base_get_vpid_range(pmix_nspace_t jobid, pmix_rank_t *start,
0114 pmix_rank_t *range);
0115 PRTE_EXPORT int prte_rmaps_base_set_vpid_range(pmix_nspace_t jobid, pmix_rank_t start,
0116 pmix_rank_t range);
0117
0118
0119 PRTE_EXPORT char *prte_rmaps_base_print_mapping(prte_mapping_policy_t mapping);
0120 PRTE_EXPORT char *prte_rmaps_base_print_ranking(prte_ranking_policy_t ranking);
0121
0122 PRTE_EXPORT int prte_rmaps_base_prep_topology(hwloc_topology_t topo);
0123
0124 PRTE_EXPORT int prte_rmaps_base_filter_nodes(prte_app_context_t *app, pmix_list_t *nodes,
0125 bool remove);
0126
0127 PRTE_EXPORT int prte_rmaps_base_set_default_mapping(prte_job_t *jdata,
0128 prte_rmaps_options_t *options);
0129 PRTE_EXPORT int prte_rmaps_base_set_mapping_policy(prte_job_t *jdata, char *spec);
0130
0131 PRTE_EXPORT int prte_rmaps_base_set_default_ranking(prte_job_t *jdata,
0132 prte_rmaps_options_t *options);
0133 PRTE_EXPORT int prte_rmaps_base_set_ranking_policy(prte_job_t *jdata, char *spec);
0134
0135 PRTE_EXPORT void prte_rmaps_base_display_map(prte_job_t *jdata);
0136 PRTE_EXPORT void prte_rmaps_base_report_bindings(prte_job_t *jdata,
0137 prte_rmaps_options_t *options);
0138
0139 PRTE_EXPORT int prte_rmaps_base_get_ncpus(prte_node_t *node,
0140 hwloc_obj_t obj,
0141 prte_rmaps_options_t *options);
0142
0143 PRTE_EXPORT bool prte_rmaps_base_check_avail(prte_job_t *jdata,
0144 prte_app_context_t *app,
0145 prte_node_t *node,
0146 pmix_list_t *node_list,
0147 hwloc_obj_t obj,
0148 prte_rmaps_options_t *options);
0149
0150 PRTE_EXPORT int prte_rmaps_base_check_oversubscribed(prte_job_t *jdata,
0151 prte_app_context_t *app,
0152 prte_node_t *node,
0153 prte_rmaps_options_t *options);
0154
0155 PRTE_EXPORT void prte_rmaps_base_get_cpuset(prte_job_t *jdata,
0156 prte_node_t *node,
0157 prte_rmaps_options_t *options);
0158
0159 PRTE_EXPORT int prte_rmaps_base_check_support(prte_job_t *jdata,
0160 prte_node_t *node,
0161 prte_rmaps_options_t *options);
0162
0163 END_C_DECLS
0164
0165 #endif