ade94b523b
- Simplified the logic of the ras modules by moving the attribute handling into the base allocation function. This allows us to decide how to allocate based on the situation, and solves some of the allocation problems we were having with comm_spawn. - moved the proxy component into the base. This was done because we always want to call the proxy functions if we are not on a HNP regardless of the attributes passed. - Got rid of the hostfile component. What little logic was in it was moved into the base to deal with other circumstances. The hostfile information is currently being propagated into the registry by the RDS, so we just use what is already in the registry. - renamed some slurm function so that they have the proper prefix. Not strictly necessary as they were static, but it makes debugging much easier. - fixed a buglet in the round_robin rmaps where we would return an error when really no error occured. I tried to make proper corrections to all the ras modules, but I cannot test all of them. This commit was SVN r12202.
95 строки
2.2 KiB
C
95 строки
2.2 KiB
C
/*
|
|
* Copyright (c) 2004-2005 The Trustees of Indiana University and Indiana
|
|
* University Research and Technology
|
|
* Corporation. All rights reserved.
|
|
* Copyright (c) 2004-2005 The University of Tennessee and The University
|
|
* of Tennessee Research Foundation. All rights
|
|
* reserved.
|
|
* Copyright (c) 2004-2005 High Performance Computing Center Stuttgart,
|
|
* University of Stuttgart. All rights reserved.
|
|
* Copyright (c) 2004-2005 The Regents of the University of California.
|
|
* All rights reserved.
|
|
* $COPYRIGHT$
|
|
*
|
|
* Additional copyrights may follow
|
|
*
|
|
* $HEADER$
|
|
*/
|
|
/** @file:
|
|
*/
|
|
|
|
#ifndef ORTE_MCA_RAS_BASE_H
|
|
#define ORTE_MCA_RAS_BASE_H
|
|
|
|
/*
|
|
* includes
|
|
*/
|
|
#include "orte_config.h"
|
|
#include "orte/orte_constants.h"
|
|
#include "orte/orte_types.h"
|
|
|
|
#include "opal/class/opal_list.h"
|
|
|
|
#include "orte/dss/dss_types.h"
|
|
#include "orte/mca/ras/ras.h"
|
|
|
|
|
|
/*
|
|
* Global functions for MCA overall collective open and close
|
|
*/
|
|
#if defined(c_plusplus) || defined(__cplusplus)
|
|
extern "C" {
|
|
#endif
|
|
|
|
/*
|
|
* Internal definitions
|
|
*/
|
|
|
|
struct orte_ras_base_cmp_t {
|
|
/** Base object */
|
|
opal_list_item_t super;
|
|
/** ras component */
|
|
orte_ras_base_component_t *component;
|
|
/** ras module */
|
|
orte_ras_base_module_t* module;
|
|
/** This component's priority */
|
|
int priority;
|
|
};
|
|
typedef struct orte_ras_base_cmp_t orte_ras_base_cmp_t;
|
|
/** Class declaration */
|
|
ORTE_DECLSPEC OBJ_CLASS_DECLARATION(orte_ras_base_cmp_t);
|
|
|
|
|
|
/*
|
|
* function definitions
|
|
*/
|
|
ORTE_DECLSPEC int orte_ras_base_open(void);
|
|
ORTE_DECLSPEC int orte_ras_base_find_available(void);
|
|
ORTE_DECLSPEC int orte_ras_base_finalize(void);
|
|
ORTE_DECLSPEC int orte_ras_base_close(void);
|
|
|
|
|
|
/*
|
|
* globals that might be needed
|
|
*/
|
|
typedef struct orte_ras_base_t {
|
|
int ras_output;
|
|
opal_list_t ras_opened;
|
|
bool ras_opened_valid;
|
|
bool ras_using_proxy;
|
|
opal_list_t ras_available;
|
|
bool ras_available_valid;
|
|
orte_std_cntr_t ras_num_nodes;
|
|
} orte_ras_base_t;
|
|
|
|
ORTE_DECLSPEC extern orte_ras_base_t orte_ras_base;
|
|
|
|
/*
|
|
* external API functions will be documented in the mca/ns/ns.h file
|
|
*/
|
|
|
|
#if defined(c_plusplus) || defined(__cplusplus)
|
|
}
|
|
#endif
|
|
#endif
|