(Updated RFC, per offline discussion)

WHAT: Merge a tmp branch for fault recovery development into the OMPI trunk

WHY: Bring over work done by Josh and Ralph to extend OMPI's fault recovery capabilities

WHERE: Impacts a number of ORTE files and a ORTE ErrMgr framework

TIMEOUT: Barring objections and/or further requests for delay, evening of March 23

REFERENCE BRANCH: http://bitbucket.org/jjhursey/orte-errmgr/

======================================================================

BACKGROUND:

Josh and Ralph have been working on a private branch off of the trunk on extended fault recovery procedures, mostly impacting ORTE. The new code optionally allows ORTE to recover from failed nodes, moving processes to other nodes in order to maintain operation. In addition, the code provides better support for recovering from individual process failures.

Not all of the work done on the private branch will be brought over in this commit. Some of the MPI-specific code that allows recovery from process failure on-the-fly will be committed separately at a later date. This commit provides the foundation for ORTE stabilization that can be built upon to provide OMPI layer stability in the future.

This commit significantly modifies the ORTE ErrMgr framework to support those advanced recovery operations. The ErrMgr public interface has been preserved since it is used in various places throughout the codebase, and should continue to be used as normal. The ErrMgr framework has been internally redesigned to better support multiple strategies for responding to failures (represents a merge of the old ErrMgr and the RecoS framework, into the ErrMgr 3.0 component interface). The default (base) mode will continue to work exactly the same as today, aborting the job when a failure occurs. However, if the user elects to enable recovery then one or more ErrMgr components will be activated to determine the recovery policy for the job.

We have created a public repo (reference branch, above) with the code to be merged into the trunk (r22815). Please feel free to check it out and test it.

NOTE: The new recovery capability is only active if the user elects to use it by setting the MCA parameter errmgr_base_enable_recovery to '1'.

NOTE: More ErrMgr recovery components will be coming online in the near future, currently this branch only includes the 'orcm' module for ORTE process recovery (not MPI processes). If you want to experiment with this feature, below are the MCA parameters that you will need to get started.
#################################
plm=rsh
rmaps=resilient
routed=cm
errmgr_base_enable_recovery=1
#################################

Comments, suggestions, and corrections are welcome!



On Mar 10, 2010, at 2:22 PM, Josh Hursey wrote:

Wesley,

Thanks for catching that oversight. Below are the MCA parameters that you should need at the moment:
#####################################
# Use the C/R Process Migration Recovery Supervisor
recos_base_enable=1
# Only use the 'rsh' launcher, other launchers will be supported later
plm=rsh
# The resilient mapper knows how to use RecoS and deal with recovering procs
rmaps=resilient
# 'cm' component is the only one that can handle failures at the moment
routed=cm
#####################################

Let me know if you have any troubles.

-- Josh

On Mar 10, 2010, at 10:36 AM, Wesley Bland wrote:

Josh,

You mentioned some MCA parameters that you would include in the email, but I don't see those parameters anywhere. Could you please put those in here to make testing easier for people.

Wesley

On Wed, Mar 10, 2010 at 1:26 PM, Josh Hursey <jjhursey@open- mpi.org> wrote: Yesterday evening George, Thomas and I discussed some of their concerns about this RFC at the MPI Forum meeting. After the discussion, we seemed to be in agreement that the RecoS framework is a good idea and the concepts and fixes in this RFC should move forward with a couple of notes:

- They wanted to test the branch a bit more over the next couple of days. Some MCA parameters that you will need are at the bottom of this message.

- Reiterate that this RFC only addresses ORTE stability, not OMPI stability. The OMPI stability extension is a second step for the line of work, and should/will fit in nicely with the RecoS framework being proposed in this RFC. The OMPI layer stability will require a significant amount of work, but the RecoS framework will provide the ORTE layer stability that is required as a foundation for OMPI layer stability in the future.

- The purpose of the ErrMgr becomes slightly unclear with the addition of the RecoS framework, since both are focused on responding to faults in the system (and RecoS, when enabled, overrides most/all of the ErrMgr functionality). Should the RecoS framework be merged with the ErrMgr framework to create a new ErrMgr interface?

We are typing to decide if we should merge these frameworks, but at this point we are interested in hearing how other developers feel about merging the ErrMgr and RecoS frameworks, which would change the ErrMgr API. Are there any developers out there that are developing ErrMgr components, or are using any particular features of the existing ErrMgr framework that they would like to see preserved in the next revision. By default, the existing default abort behavior of the ErrMgr framework will be preserved, so the user will have to 'opt-in' to any fault recovery capabilities.

So we are continuing the discussion a bit more off-list, and will return to the list with an updated RFC (and possibly a new branch) soon (hopefully end of the week/early next week). I would like to briefly discuss this RFC at the Open MPI teleconf next Tuesday.

-- Josh

On Feb 26, 2010, at 8:06 AM, Josh Hursey wrote:

Sounds good to me.

For those casually following this RFC let me summarize its current state.

Josh and George (and anyone else that wishes to participate attending the forum) will meet sometime at the next MPI Forum meeting (March 8-10). I will post any relevant notes from this meeting back to the list afterwards. So the RFC is on hold pending the outcome of that meeting. For those developers interested in this RFC that will not be able to attend, feel free to continue using this thread for discussion.

Thanks,
Josh

On Feb 26, 2010, at 6:09 AM, George Bosilca wrote:


On Feb 26, 2010, at 01:50 , Josh Hursey wrote:

Any of those options are fine with me. I was thinking that if you wanted to talk sooner, we might be able to help explain our intentions with this framework a bit better. I figure that the framework interface will change a bit as we all advance and incorporate our various techniques into it. I think that the current interface is a good first step, but there are certainly many more steps to come.

I am fine delaying this code a bit, just not too long. Meeting at the forum for a while might be a good option (we could probably even arrange to call in others if you wanted).

Sounds good, let do this.

Thanks,
 george.


Cheers,
Josh

On Feb 25, 2010, at 6:45 PM, Ralph Castain wrote:

If Josh is going to be at the forum, perhaps you folks could chat there? Might as well take advantage of being colocated, if possible.

Otherwise, I'm available pretty much any time. I can't contribute much about the MPI recovery issues, but can contribute to the RTE issues if that helps.


On Thu, Feb 25, 2010 at 7:39 PM, George Bosilca <bosi...@eecs.utk.edu > wrote:
Josh,

Next week is a little bit too early as will need some time to figure out how to integrate with this new framework, and at what extent our code and requirements fit into. Then the week after is the MPI Forum. How about on Thursday 11 March?

Thanks,
george.

On Feb 25, 2010, at 12:46 , Josh Hursey wrote:

Per my previous suggestion, would it be useful to chat on the phone early next week about our various strategies?


_______________________________________________
devel mailing list
de...@open-mpi.org
http://www.open-mpi.org/mailman/listinfo.cgi/devel

_______________________________________________
devel mailing list
de...@open-mpi.org
http://www.open-mpi.org/mailman/listinfo.cgi/devel


_______________________________________________
devel mailing list
de...@open-mpi.org
http://www.open-mpi.org/mailman/listinfo.cgi/devel


_______________________________________________
devel mailing list
de...@open-mpi.org
http://www.open-mpi.org/mailman/listinfo.cgi/devel


_______________________________________________
devel mailing list
de...@open-mpi.org
http://www.open-mpi.org/mailman/listinfo.cgi/devel


_______________________________________________
devel mailing list
de...@open-mpi.org
http://www.open-mpi.org/mailman/listinfo.cgi/devel

_______________________________________________
devel mailing list
de...@open-mpi.org
http://www.open-mpi.org/mailman/listinfo.cgi/devel


_______________________________________________
devel mailing list
de...@open-mpi.org
http://www.open-mpi.org/mailman/listinfo.cgi/devel

Reply via email to