OpenMPI 0.1.1

- Main Page
- Related Pages
- Modules
- Data Structures
- Files

- File List
- Globals

Data Structures | Typedefs | Functions | Variables
iof_orted.h File Reference

The orted IOF component is used in daemons. More...

`#include "orte_config.h"`
`#include "opal/class/opal_list.h"`
`#include "orte/mca/rml/rml_types.h"`
`#include "orte/mca/iof/iof.h"`

Go to the source code of this file.

## Data Structures
struct | orte_iof_orted_component_t
| IOF ORTED Component. More...

## Typedefs
typedef struct orte_iof_orted_component_t | orte_iof_orted_component_t

## Functions
void | orte_iof_orted_recv (int status, orte_process_name_t *sender, opal_buffer_t *buffer, orte_rml_tag_t tag, void *cbdata)
void | orte_iof_orted_read_handler (int fd, short event, void *data)
void | orte_iof_orted_send_xonxoff (orte_iof_tag_t tag)

## Variables
ORTE_MODULE_DECLSPEC orte_iof_orted_component_t | mca_iof_orted_component
orte_iof_base_module_t | orte_iof_orted_module

## Detailed Description

The orted IOF component is used in daemons.

It is used to orted all IOF actions back to the "hnp" IOF component (i.e., the IOF component that runs in the HNP). The orted IOF component is loaded in an orted and then tied to the stdin, stdout, and stderr streams of created child processes via pipes. The orted IOF component in the orted then acts as the relay between the stdin/stdout/stderr pipes and the IOF component in the HNP. This design allows us to manipulate stdin/stdout/stderr from before main() in the child process.

Much of the intelligence of this component is actually contained in iof_base_endpoint.c (reading and writing to local file descriptors, setting up events based on file descriptors, etc.).

A non-blocking OOB receive is posted at the initialization of this component to receive all messages from the HNP (e.g., data fragments from streams, ACKs to fragments).

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).