1
1
openmpi/orte/mca/odls/default/odls_default.h
Ralph Castain 1dc12046f1 Modify the OMPI paffinity and mapping system to support socket-level mapping and binding. Mostly refactors existing code, with modifications to the odls_default module to support the new capabilities.
Adds several new mpirun options:

* -bysocket - assign ranks on a node by socket. Effectively load balances the procs assigned to a node across the available sockets. Note that ranks can still be bound to a specific core within the socket, or to the entire socket - the mapping is independent of the binding.

* -bind-to-socket - bind each rank to all the cores on the socket to which they are assigned.

* -bind-to-core - currently the default behavior (maintained from prior default)

* -npersocket N - launch N procs for every socket on a node. Note that this implies we know how many sockets are on a node. Mpirun will determine its local values. These can be overridden by provided values, either via MCA param or in a hostfile

Similar features/options are provided at the board level for multi-board nodes.

Documentation to follow...

This commit was SVN r21791.
2009-08-11 02:51:27 +00:00

52 строки
1.4 KiB
C

/*
* Copyright (c) 2004-2008 The Trustees of Indiana University and Indiana
* University Research and Technology
* Corporation. All rights reserved.
* Copyright (c) 2004-2006 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_ODLS_DEFAULT_H
#define ORTE_ODLS_DEFAULT_H
#include "orte_config.h"
#include "opal/mca/mca.h"
#include "orte/mca/odls/odls.h"
BEGIN_C_DECLS
/*
* Module open / close
*/
int orte_odls_default_component_open(void);
int orte_odls_default_component_close(void);
int orte_odls_default_component_query(mca_base_module_t **module, int *priority);
/*
* ODLS Default module
*/
extern orte_odls_base_module_t orte_odls_default_module;
ORTE_MODULE_DECLSPEC extern orte_odls_base_component_t mca_odls_default_component;
/* dedicated debug output flag */
ORTE_MODULE_DECLSPEC extern bool orte_odls_default_report_bindings;
END_C_DECLS
#endif /* ORTE_ODLS_H */