2008-02-28 01:57:57 +00:00
|
|
|
/*
|
|
|
|
* Copyright (c) 2004-2006 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.
|
2015-06-23 20:59:57 -07:00
|
|
|
* Copyright (c) 2004-2005 High Performance Computing Center Stuttgart,
|
2008-02-28 01:57:57 +00:00
|
|
|
* University of Stuttgart. All rights reserved.
|
|
|
|
* Copyright (c) 2004-2005 The Regents of the University of California.
|
|
|
|
* All rights reserved.
|
2013-02-28 01:35:55 +00:00
|
|
|
* Copyright (c) 2013 Los Alamos National Security, LLC. All rights reserved.
|
Per the discussion on the telecon, change the -host behavior so we only run one instance if no slots were provided and the user didn't specify #procs to run. However, if no slots are given and the user does specify #procs, then let the number of slots default to the #found processing elements
Ensure the returned exit status is non-zero if we fail to map
If no -np is given, but either -host and/or -hostfile was given, then error out with a message telling the user that this combination is not supported.
If -np is given, and -host is given with only one instance of each host, then default the #slots to the detected #pe's and enforce oversubscription rules.
If -np is given, and -host is given with more than one instance of a given host, then set the #slots for that host to the number of times it was given and enforce oversubscription rules. Alternatively, the #slots can be specified via "-host foo:N". I therefore believe that row #7 on Jeff's spreadsheet is incorrect.
With that one correction, this now passes all the given use-cases on that spreadsheet.
Make things behave under unmanaged allocations more like their managed cousins - if the #slots is given, then no-np shall fill things up.
Fixes #1344
2016-02-10 09:17:03 -08:00
|
|
|
* Copyright (c) 2015-2016 Intel, Inc. All rights reserved.
|
2008-02-28 01:57:57 +00:00
|
|
|
* $COPYRIGHT$
|
2015-06-23 20:59:57 -07:00
|
|
|
*
|
2008-02-28 01:57:57 +00:00
|
|
|
* Additional copyrights may follow
|
2015-06-23 20:59:57 -07:00
|
|
|
*
|
2008-02-28 01:57:57 +00:00
|
|
|
* $HEADER$
|
|
|
|
*/
|
|
|
|
/** @file:
|
|
|
|
*/
|
|
|
|
|
|
|
|
#ifndef MCA_PLM_BASE_H
|
|
|
|
#define MCA_PLM_BASE_H
|
|
|
|
|
|
|
|
/*
|
|
|
|
* includes
|
|
|
|
*/
|
|
|
|
#include "orte_config.h"
|
|
|
|
|
2015-03-05 20:50:44 -07:00
|
|
|
#include "orte/mca/mca.h"
|
2008-02-28 01:57:57 +00:00
|
|
|
#include "opal/class/opal_list.h"
|
|
|
|
|
|
|
|
#include "orte/mca/plm/plm.h"
|
|
|
|
|
|
|
|
|
|
|
|
BEGIN_C_DECLS
|
|
|
|
|
|
|
|
/*
|
2013-03-27 21:14:43 +00:00
|
|
|
* MCA framework
|
2008-02-28 01:57:57 +00:00
|
|
|
*/
|
2013-03-27 21:14:43 +00:00
|
|
|
ORTE_DECLSPEC extern mca_base_framework_t orte_plm_base_framework;
|
|
|
|
/*
|
|
|
|
* Select an available component.
|
2008-02-28 01:57:57 +00:00
|
|
|
*/
|
|
|
|
ORTE_DECLSPEC int orte_plm_base_select(void);
|
|
|
|
|
2008-02-28 19:58:32 +00:00
|
|
|
/**
|
|
|
|
* Functions that other frameworks may need to call directly
|
|
|
|
* Specifically, the ODLS needs to access some of these
|
|
|
|
* to avoid recursive callbacks
|
|
|
|
*/
|
|
|
|
ORTE_DECLSPEC void orte_plm_base_app_report_launch(int fd, short event, void *data);
|
|
|
|
ORTE_DECLSPEC void orte_plm_base_receive_process_msg(int fd, short event, void *data);
|
|
|
|
|
Per the discussion on the telecon, change the -host behavior so we only run one instance if no slots were provided and the user didn't specify #procs to run. However, if no slots are given and the user does specify #procs, then let the number of slots default to the #found processing elements
Ensure the returned exit status is non-zero if we fail to map
If no -np is given, but either -host and/or -hostfile was given, then error out with a message telling the user that this combination is not supported.
If -np is given, and -host is given with only one instance of each host, then default the #slots to the detected #pe's and enforce oversubscription rules.
If -np is given, and -host is given with more than one instance of a given host, then set the #slots for that host to the number of times it was given and enforce oversubscription rules. Alternatively, the #slots can be specified via "-host foo:N". I therefore believe that row #7 on Jeff's spreadsheet is incorrect.
With that one correction, this now passes all the given use-cases on that spreadsheet.
Make things behave under unmanaged allocations more like their managed cousins - if the #slots is given, then no-np shall fill things up.
Fixes #1344
2016-02-10 09:17:03 -08:00
|
|
|
ORTE_DECLSPEC void orte_plm_base_set_slots(orte_node_t *node);
|
2012-04-06 14:23:13 +00:00
|
|
|
ORTE_DECLSPEC void orte_plm_base_setup_job(int fd, short args, void *cbdata);
|
2012-05-02 21:00:22 +00:00
|
|
|
ORTE_DECLSPEC void orte_plm_base_setup_job_complete(int fd, short args, void *cbdata);
|
2012-04-06 14:23:13 +00:00
|
|
|
ORTE_DECLSPEC void orte_plm_base_complete_setup(int fd, short args, void *cbdata);
|
|
|
|
ORTE_DECLSPEC void orte_plm_base_daemons_reported(int fd, short args, void *cbdata);
|
2012-08-03 16:30:05 +00:00
|
|
|
ORTE_DECLSPEC void orte_plm_base_allocation_complete(int fd, short args, void *cbdata);
|
2012-04-06 14:23:13 +00:00
|
|
|
ORTE_DECLSPEC void orte_plm_base_daemons_launched(int fd, short args, void *cbdata);
|
2012-07-28 15:33:09 +00:00
|
|
|
ORTE_DECLSPEC void orte_plm_base_vm_ready(int fd, short args, void *cbdata);
|
2012-08-03 16:30:05 +00:00
|
|
|
ORTE_DECLSPEC void orte_plm_base_mapping_complete(int fd, short args, void *cbdata);
|
2012-04-06 14:23:13 +00:00
|
|
|
ORTE_DECLSPEC void orte_plm_base_launch_apps(int fd, short args, void *cbdata);
|
|
|
|
ORTE_DECLSPEC void orte_plm_base_post_launch(int fd, short args, void *cbdata);
|
|
|
|
ORTE_DECLSPEC void orte_plm_base_registered(int fd, short args, void *cbdata);
|
|
|
|
|
2008-02-28 01:57:57 +00:00
|
|
|
END_C_DECLS
|
|
|
|
|
|
|
|
#endif
|