mpiSynqNetNodeShutdown

Declaration

long mpiSynqNetNodeShutdown(MPISynqNet                  synqNet,
                            MPISynqNetShutdownNodeMask  nodeMask)

Required Header: stdmpi.h
Change History: Added in the 03.04.00

Description

mpiSynqNetNodeShutdown is used to systematically shutdown a bank of nodes specified by the nodeMask that are to be repaired or replaced. It should be called prior to mpiSynqNetNodeRestart(…), but if the node has already failed shutdown, it is not necessary. The nodes being shutdown should be consecutive to avoid stranding other nodes in the network. Recovery Mode should be enabled before shutting down the nodes in a ring topology.

synqNet a handle to a SynqNet object.
nodeMask a bit mask signifying the nodes that will be shutdown. Each bit represents a node (0x1 = node 0, 0x2 = node 1, etc.)
Return Values
MPIMessageOK
MPIMessageARG_INVALID
MPISynqNetMessageSHUTDOWN_NODES_NONCONSECUTIVE
MPISynqNetMessageSHUTDOWN_NODES_STRANDED
MPISynqNetMessageSHUTDOWN_RECOVERY_DISABLED

Sample Code

The following code will attempt to restart nodes 9, 10, and 11.

#define   NODE_9    (9)
#define NODE_10 (10)
#define NODE_11 (11) MPISynqNetShutdownNodeMask nodeMask;
nodeMask[0] = (1<<NODE_9) | (1<<NODE_10) | (1<<NODE_11) ; returnValue = mpiSynqNetNodeShutdown (synqNet, nodeMask); msgCHECK(returnValue); /* swap out and/or repair nodes 9, 10, 11 */ /* Restart nodes 9, 10, 11 */ returnValue = mpiSynqNetNodeRestart(synqNet);
msgCHECK(returnValue); /* check to see which nodes have been restarted */
returnValue = mpiSynqNetStatus(synqNet,
&status);
msgCHECK(returnValue);

if((nodeMask[0] & (status.failedNodeMask[0] |
status.shutdownNodeMask[0]))) {
/* a node did not restart... time for error handling */
}

See Also

mpiSynqNetShutdown | mpiSynqNetNodeRestart | mpiSynqNetStatus | MPISynqNetShutdownNodeMask | SynqNet HotReplace