Component Interface

In our component architecture, each component implements and exports the following methods (these are invoked remotely from the CAT):

RETVAL initialize(Plist<HPCxx_String> names);
initialize is called by the CAT just after the component is instantiated so as to give the component a list of fully qualified names for the objects that are returned to the CAT (such as STATUS and RETVAL). The current implementation of nexusRMI requires that the fully qualified names be included in the serialization of objects.
HPCxx_String getName():
getName returns the name of the component to the CAT (e.g. SuperLU, Scale, Reorder, etc). HPCxx_String getReadme(); getReadme returns a string that gives a description of what the component does. For example, component "Scale" might have a description like: "This component takes as input a single matrix, scales it according to specified parameters, and outputs the matrix."
Plist<MyHPCxx_GlobalPtr<InputPortBase> > getInputPorts();
getInputPorts returns the list of this component's input ports (actually, it returns a list of global pointers to the InputPort objects residing at this component). For example, a typical LSA component has two input ports. One of type sparseSystem, and one of type TransformationParameters. So, such a component would return a list of two global pointers, one pointing to each input port in this component.
Plist<MyHPCxx_GlobalPtr<OutputPortBase> > getOutputPorts();
getOutputPorts returns the list of this component's output ports. For example, an LSA solver has one output port of type SolutionVector. So, the component would return a list containing one global pointer to this port.
RETVAL setSignal(SIGNAL s);
setSignal is called by the CAT to send various commands to the component such as EXECUTE, ABORT, and KILL. setSignal does not return until the operation is complete, and then it indicates the success of the operation in it's return value.
Plist<MyHPCxx_GlobalPtr<OutputPortBase> > getExecutePorts();
getExecutePorts is called by that CAT after a component completes an EXECUTE command. getExecutePorts tells the CAT which output ports have been written to be the component during it's last execution. This lets the CAT know which components should be executed next.
HPCxx_String getResultsUrl();
getResultsURL gives a URL where information about previous executions can be obtained.

[ IU CS ] [ Extreme! Computing ] [ CAT ] [ HPC++ CAT ]

Last updated: Tue Jan 26 15:53:31 1999