6e5d844c36
1. completely and cleanly separates responsibilities between the HNP, orted, and tool components. 2. removes all wireup messaging during launch and shutdown. 3. maintains flow control for stdin to avoid large-scale consumption of memory by orteds when large input files are forwarded. This is done using an xon/xoff protocol. 4. enables specification of stdin recipients on the mpirun cmd line. Allowed options include rank, "all", or "none". Default is rank 0. 5. creates a new MPI_Info key "ompi_stdin_target" that supports the above options for child jobs. Default is "none". 6. adds a new tool "orte-iof" that can connect to a running mpirun and display the output. Cmd line options allow selection of any combination of stdout, stderr, and stddiag. Default is stdout. 7. adds a new mpirun and orte-iof cmd line option "tag-output" that will tag each line of output with process name and stream ident. For example, "[1,0]<stdout>this is output" This is not intended for the 1.3 release as it is a major change requiring considerable soak time. This commit was SVN r19767.
58 строки
1.9 KiB
C
58 строки
1.9 KiB
C
/*
|
|
* Copyright (c) 2004-2007 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 (c) 2007 Cisco, Inc. All rights reserved.
|
|
* Copyright (c) 2007 Sun Microsystems, Inc. All rights reserved.
|
|
* $COPYRIGHT$
|
|
*
|
|
* Additional copyrights may follow
|
|
*
|
|
* $HEADER$
|
|
*/
|
|
/**
|
|
* @file
|
|
*
|
|
* The tool IOF component is used in tools. It is used
|
|
* to interface to the HNP to request forwarding of stdout/err/diag
|
|
* from any combination of procs, and to forward stdin from the
|
|
* tool to a specified proc provided the user has allowed that
|
|
* functionality.
|
|
*
|
|
* Flow control is employed on a per-stream basis to ensure that
|
|
* SOURCEs don't overwhelm SINK resources (E.g., send an entire input
|
|
* file to an orted before the target process has read any of it).
|
|
*
|
|
*/
|
|
#ifndef ORTE_IOF_TOOL_H
|
|
#define ORTE_IOF_TOOL_H
|
|
|
|
#include "orte/mca/iof/iof.h"
|
|
|
|
BEGIN_C_DECLS
|
|
|
|
struct orte_iof_tool_component_t {
|
|
orte_iof_base_component_t super;
|
|
bool closed;
|
|
opal_mutex_t lock;
|
|
};
|
|
typedef struct orte_iof_tool_component_t orte_iof_tool_component_t;
|
|
|
|
ORTE_MODULE_DECLSPEC extern orte_iof_tool_component_t mca_iof_tool_component;
|
|
extern orte_iof_base_module_t orte_iof_tool_module;
|
|
|
|
void orte_iof_tool_recv(int status, orte_process_name_t* sender,
|
|
opal_buffer_t* buffer, orte_rml_tag_t tag,
|
|
void* cbdata);
|
|
|
|
END_C_DECLS
|
|
|
|
#endif
|