1
1
openmpi/ompi/include/constants.h
Ralph Castain 19d58ee17e First phase of the scalable RTE changes:
1. Modify the registry to eliminate redundant data copying for startup messages.

2. Revise the subscription/trigger system to avoid redundant storage of triggers and subscriptions. This dramatically reduces the search time when a registry action occurs - to illustrate the point, there are now only a handful of triggers on the system for each job. Before, there were a handful of triggers for each PROCESS in the job, all of which had to be checked every time something happened on the registry. This is much, much faster now.

3. Update all subscriptions to the new format. There are now "named" subscriptions - this allows you to "name" a subscription that all the processes will be using. The first one to hit the registry actually defines the subscription. From then on, any subsequent "subscribes" to the same name just cause that process to "attach" to the existing subscription. This keeps the number of subscriptions being tracked by the registry to a minimum, while ensuring that each process still gets notified.

4. Do the same for triggers.

Also fixed a duplicate subscription problem that was causing people to receive data equal to the number of processes times the data they should have received from a trigger/subscription. Sorry about that... :-( ...but it's all better now!

Uncovered a situation where the modex data seems to be getting entered on the registry a second time - the latter time coming after the compound command has been "fired", thereby causing all the subscriptions to fire. Asked Tim and Jeff to look into this.

Second phase of the changes will involve modifying the xcast system so that the same message gets sent to all processes. This will further reduce the message traffic, and - once we have a true "broadcast" version of xcast - really speed things up and improve scalability.

This commit was SVN r6542.
2005-07-18 18:49:00 +00:00

88 строки
3.0 KiB
C

/*
* Copyright (c) 2004-2005 The Trustees of Indiana University.
* All rights reserved.
* Copyright (c) 2004-2005 The Trustees of the University of Tennessee.
* 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$
*/
#ifndef OMPI_CONSTANTS_H
#define OMPI_CONSTANTS_H
/* error codes */
enum {
OMPI_SUCCESS = 0,
OMPI_ERROR = -1,
OMPI_ERR_OUT_OF_RESOURCE = -2, /* fatal error */
OMPI_ERR_TEMP_OUT_OF_RESOURCE = -3, /* try again later */
OMPI_ERR_RESOURCE_BUSY = -4,
OMPI_ERR_BAD_PARAM = -5, /* equivalent to MPI_ERR_ARG error code */
OMPI_ERR_RECV_LESS_THAN_POSTED = -6,
OMPI_ERR_RECV_MORE_THAN_POSTED = -7,
OMPI_ERR_NO_MATCH_YET = -8,
OMPI_ERR_FATAL = -9,
OMPI_ERR_NOT_IMPLEMENTED = -10,
OMPI_ERR_NOT_SUPPORTED = -11,
OMPI_ERR_INTERUPTED = -12,
OMPI_ERR_WOULD_BLOCK = -13,
OMPI_ERR_IN_ERRNO = -14,
OMPI_ERR_UNREACH = -15,
OMPI_ERR_NOT_FOUND = -16,
OMPI_ERR_BUFFER = -17, /* equivalent to MPI_ERR_BUFFER */
OMPI_ERR_REQUEST = -18, /* equivalent to MPI_ERR_REQUEST */
OMPI_EXISTS = -19, /* indicates that the specified object already exists */
OMPI_ERR_NO_CONNECTION_ALLOWED = -20, /* indicates that the receiving process does not allow connections */
OMPI_ERR_CONNECTION_REFUSED = -21, /* contact made with process, but it refuses any further communication */
OMPI_ERR_CONNECTION_FAILED = -22, /* message sent, but delivery failed */
OMPI_ERR_TIMEOUT = -23,
OMPI_STARTUP_DETECTED = -24,
OMPI_SHUTDOWN_DETECTED = -25,
OMPI_PROC_STARTING = -26,
OMPI_PROC_STOPPED = -27,
OMPI_PROC_TERMINATING = -28,
OMPI_PROC_ALIVE = -29,
OMPI_PROC_RUNNING = -30,
OMPI_PROC_KILLED = -31,
OMPI_PROC_EXITED = -32,
OMPI_NODE_UP = -33,
OMPI_NODE_DOWN = -34,
OMPI_NODE_BOOTING = -35,
OMPI_NODE_ERROR = -36,
OMPI_PACK_MISMATCH = -37,
OMPI_ERR_PACK_FAILURE = -38,
OMPI_ERR_UNPACK_FAILURE = -39,
OMPI_ERR_COMM_FAILURE = -40,
OMPI_UNPACK_INADEQUATE_SPACE = -41,
OMPI_UNPACK_READ_PAST_END_OF_BUFFER = -42,
OMPI_ERR_NOT_AVAILABLE = -43,
OMPI_ERR_GPR_DATA_CORRUPT = -44,
OMPI_ERR_PERM = -45, /* no permission */
OMPI_ERR_TYPE_MISMATCH = -46,
OMPI_ERR_VALUE_OUT_OF_BOUNDS = -47,
OMPI_ERR_FILE_READ_FAILURE = -48,
OMPI_ERR_FILE_WRITE_FAILURE = -49,
OMPI_ERR_FILE_OPEN_FAILURE = -50
};
#define OMPI_NAMESPACE_SEGMENT "ompi-namespace"
/*
* OMPI-specific names for triggers and subscriptions used across processes
*/
#define OMPI_ATTRIBUTE_SUBSCRIPTION "ompi-attribute-sub"
#define OMPI_PROC_SUBSCRIPTION "ompi-proc-sub"
#define OMPI_OOB_SUBSCRIPTION "ompi-oob-sub"
#define OMPI_MODEX_SUBSCRIPTION "ompi-modex-sub"
#endif /* OMPI_CONSTANTS_H */