Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
[ptp-dev] Changes to TRY_RMR branch

Randy and I have had some long discussions that have resulted in some changes to the TRY_RMR branch. This branch is where the new resource manager implementation is being done, and is intended to be merged into HEAD in the near future.

1. We now have a very clean separation between different components:

a) IRuntime* between ResourceManager and RuntimeSystem

b) IProxyRuntime* between RuntimeSystem and ProxyRuntimeClient

c) IProxy* between ProxyRuntimeClient and ProxyClient

2. The IControlSystem and IMonitoringSystem interfaces have been combined into IRuntimeSystem.

3. I've completed the separation of the ProxyEvent and ProxyRuntimeEvent code. I've added explicit interfaces for each event type at both levels, and updated the listener interfaces to provide handle() methods for each event type. Note that there is no overlapping of events any more (e.g. ProxyOKEvent and ProxyRuntimeOKEvent). To receive the lower level events (e.g. ProxyOKEvent) you have to implement the lower level interface.

4. I've significantly simplified the state machine code in AbstractProxyRuntimeClient. This was mainly achieved by removing the inner classes and internal events. Now all state transitions happen in the main state machine loop. Craig, I've trampled on a lot of your code, including the command event code which is now no longer used. Let me know if you think it is ok.

5. I've updated the ORTE, MPICH2 and LSF systems to use the new interfaces.

6. I've updated the JUnit tests to work with the new interfaces.

7. I've deprecated all the interfaces/classes that are no longer needed (with the notable exception of some IProxyRuntime*Events). They should be removed some time soon. I may also have missed some.

Things left to do:

1. Randy needs to fully define the IRuntimeEvent interface between the resource manager and the runtime system.

2. Many of the IProxyRuntime*Event types are 1.1 specific. I have added new ones for 2.0, but the list is incomplete. These need to be fully specified, and the old 1.1 types deprecated.

3. The debug code needs to be updated from HEAD, then modified to support the new event types.





Back to the top