Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2025-02-22 10:47:30

0001 /*
0002  * Copyright (c) 2004-2008 The Trustees of Indiana University and Indiana
0003  *                         University Research and Technology
0004  *                         Corporation.  All rights reserved.
0005  * Copyright (c) 2004-2005 The University of Tennessee and The University
0006  *                         of Tennessee Research Foundation.  All rights
0007  *                         reserved.
0008  * Copyright (c) 2004-2005 High Performance Computing Center Stuttgart,
0009  *                         University of Stuttgart.  All rights reserved.
0010  * Copyright (c) 2004-2005 The Regents of the University of California.
0011  *                         All rights reserved.
0012  * Copyright (c) 2011-2020 Cisco Systems, Inc.  All rights reserved
0013  * Copyright (c) 2011      Los Alamos National Security, LLC.
0014  *                         All rights reserved.
0015  * Copyright (c) 2017-2020 Intel, Inc.  All rights reserved.
0016  * Copyright (c) 2021-2022 Nanook Consulting.  All rights reserved.
0017  * $COPYRIGHT$
0018  *
0019  * Additional copyrights may follow
0020  *
0021  * $HEADER$
0022  */
0023 /** @file:
0024  *
0025  * The PRTE Resource MAPping Subsystem (RMAPS)
0026  *
0027  * The resource mapping subsystem is responsible for mapping processes
0028  * to specific nodes/cpus within a given job. In many systems, this
0029  * functionality will not be supported - the system will map processes
0030  * wherever it chooses and does not allow the user to specify the
0031  * mapping. RMAPS components, therefore, provide services for those
0032  * systems that do permit such mappings.
0033  *
0034  * RMAPS checks the MCA parameters to see if a mapping algorithm has
0035  * been specified.  If the user selected a mapping algorithm, the
0036  * indicated RMAPS component will take information from the registry
0037  * to determine the number of applications/processes to be run, and
0038  * the identified resources that have been allocated to this job. The
0039  * selected RMAP component will then assign processes to resources
0040  * according to its algorithm, with the results stored on the
0041  * appropriate job segment - the assigned nodename for each process is
0042  * stored in that respective process' container on the segment.
0043  *
0044  */
0045 
0046 #ifndef PRTE_MCA_RMAPS_H
0047 #define PRTE_MCA_RMAPS_H
0048 
0049 #include "prte_config.h"
0050 #include "types.h"
0051 
0052 #include "src/mca/mca.h"
0053 #include "src/pmix/pmix-internal.h"
0054 
0055 #include "src/runtime/prte_globals.h"
0056 
0057 #include "src/mca/rmaps/rmaps_types.h"
0058 
0059 BEGIN_C_DECLS
0060 
0061 /*
0062  * rmaps module functions
0063  */
0064 
0065 /**
0066  * RMAPS module functions - these are not accessible to the outside world,
0067  * but are defined here by convention
0068  */
0069 
0070 /* map a job - used by the HNP to compute the #procs on each node.
0071  * This is passed to the backend daemons as a regex which they
0072  * use to create an prte_job_map_t for the job */
0073 typedef int (*prte_rmaps_base_module_map_fn_t)(prte_job_t *jdata,
0074                                                prte_rmaps_options_t *options);
0075 
0076 /*
0077  * rmaps module version 4.0.0
0078  */
0079 struct prte_rmaps_base_module_4_0_0_t {
0080     /** Mapping function pointer */
0081     prte_rmaps_base_module_map_fn_t map_job;
0082 };
0083 /** Convenience typedef */
0084 typedef struct prte_rmaps_base_module_4_0_0_t prte_rmaps_base_module_4_0_0_t;
0085 /** Convenience typedef */
0086 typedef prte_rmaps_base_module_4_0_0_t prte_rmaps_base_module_t;
0087 
0088 /*
0089  * rmaps component
0090  */
0091 
0092 /**
0093  * rmaps component version 3.0.0
0094  */
0095 typedef pmix_mca_base_component_t prte_rmaps_base_component_t;
0096 
0097 END_C_DECLS
0098 
0099 #endif