1
1
openmpi/orte/mca/pls/base/pls_private.h
Josh Hursey cd5047a9bf Refs trac:976
Collect the base 'orted' command line into a base function since most of the
PLS components were duplicating this code. Add AMCA parameter command line
component to the base set.

Add Aggregate MCA parameter support to the following PLS components:
 - gridengine
 - process
 - slurm
 - poe
 - tm

Improve support for 'rsh' component.

Did/could not support the following components:
 - bproc
 - proxy
 - xcpu
 - cnos
 - xgrid

The above components had peculiar needs that made it non-trivial to add an 
option. The authors of these components need to help in supporting this
new option.

I was only able to test the SLURM and RSH components due to system availability.
The others should work without problem.

This commit was SVN r14284.

The following Trac tickets were found above:
  Ticket 976 --> https://svn.open-mpi.org/trac/ompi/ticket/976
2007-04-10 14:23:32 +00:00

126 строки
4.2 KiB
C

/*
* 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.
* 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 MCA_PLS_PRIVATE_H
#define MCA_PLS_PRIVATE_H
/*
* includes
*/
#include "orte_config.h"
#ifdef HAVE_SYS_TIME_H
#include <sys/time.h>
#endif
#include "opal/class/opal_list.h"
#include "orte/dss/dss_types.h"
#include "orte/mca/gpr/gpr_types.h"
#include "orte/mca/ns/ns_types.h"
#include "orte/mca/ras/ras_types.h"
#include "orte/mca/rmaps/rmaps_types.h"
#include "orte/mca/rmgr/rmgr_types.h"
#include "orte/mca/rml/rml_types.h"
#if defined(c_plusplus) || defined(__cplusplus)
extern "C" {
#endif
/*
* pls proxy commands
*/
typedef uint8_t orte_pls_cmd_flag_t;
#define ORTE_PLS_CMD ORTE_UINT8
#define ORTE_PLS_LAUNCH_JOB_CMD 1
#define ORTE_PLS_TERMINATE_JOB_CMD 2
#define ORTE_PLS_TERMINATE_PROC_CMD 3
#define ORTE_PLS_SIGNAL_JOB_CMD 4
#define ORTE_PLS_SIGNAL_PROC_CMD 5
#define ORTE_PLS_TERMINATE_ORTEDS_CMD 6
#define ORTE_PLS_CANCEL_OPERATION_CMD 7
/*
* object for daemon information
*/
typedef struct orte_pls_daemon_info_t {
opal_list_item_t super;
orte_cellid_t cell;
char *nodename;
orte_process_name_t *name;
orte_jobid_t active_job;
} orte_pls_daemon_info_t;
ORTE_DECLSPEC OBJ_CLASS_DECLARATION(orte_pls_daemon_info_t);
/**
* Utility routine to set progress engine schedule
*/
ORTE_DECLSPEC int orte_pls_base_set_progress_sched(int sched);
/**
* Utilities for pls components that use proxy daemons
*/
ORTE_DECLSPEC int orte_pls_base_orted_cancel_operation(void);
ORTE_DECLSPEC int orte_pls_base_orted_exit(opal_list_t *daemons, struct timeval *timeout);
ORTE_DECLSPEC int orte_pls_base_orted_kill_local_procs(opal_list_t *daemons, orte_jobid_t job, struct timeval *timeout);
ORTE_DECLSPEC int orte_pls_base_orted_signal_local_procs(opal_list_t *daemons, int32_t signal);
ORTE_DECLSPEC int orte_pls_base_orted_add_local_procs(opal_list_t *dmnlist, orte_gpr_notify_data_t *ndat);
ORTE_DECLSPEC int orte_pls_base_get_active_daemons(opal_list_t *daemons, orte_jobid_t job, opal_list_t *attrs);
ORTE_DECLSPEC int orte_pls_base_store_active_daemons(opal_list_t *daemons);
ORTE_DECLSPEC int orte_pls_base_remove_daemon(orte_pls_daemon_info_t *info);
int orte_pls_base_check_avail_daemons(opal_list_t *daemons, orte_jobid_t job);
ORTE_DECLSPEC int orte_pls_base_launch_on_existing_daemons(orte_job_map_t *map);
/*
* communications utilities
*/
int orte_pls_base_comm_start(void);
ORTE_DECLSPEC int orte_pls_base_comm_stop(void);
void orte_pls_base_recv(int status, orte_process_name_t* sender,
orte_buffer_t* buffer, orte_rml_tag_t tag,
void* cbdata);
/*
* general utilities
*/
ORTE_DECLSPEC int orte_pls_base_mca_argv(int *argc, char ***argv);
void orte_pls_base_purge_mca_params(char ***env);
/**
* Construct basic ORTE Daemon command line arguments
*/
ORTE_DECLSPEC int orte_pls_base_orted_append_basic_args(
int *argc,
char ***argv,
int *proc_name_index,
int *node_name_index,
char *jobid_string,
orte_std_cntr_t num_procs);
#if defined(c_plusplus) || defined(__cplusplus)
}
#endif
#endif