[OMPI devel] RFC: CRS Module for MTCP Checkpointing Package

2011-10-06 Thread Alex Brick

WHAT: Bring in the mtcp CRS component

WHY: Add support for the MTCP checkpoint/restart service

WHERE: opal/mca/crs/mtcp

TIMEOUT: Tuesday teleconf, 2011-10-18 (about 2 weeks from now)

---
What is MTCP?

DMTCP (Distributed MultiThreaded CheckPointing, 
http://dmtcp.sourceforge.net) is a mature open source (LGPL) 
checkpointing package that has been under development for seven years. 
It operates entirely in user space, with no kernel modules, or 
modifications to the target application.  If used in the simplest 
possible way, it works as:


 dmtcp_checkpoint ./a.out
 dmtcp_command --checkpoint
 dmtcp_restart ckpt_a.out_*.dmtcp

DMTCP is contagious.  Any calls to fork(), pthread_create(), or "ssh",
are recognized by DMTCP, and it maintains those threads, and local and
remote processes under checkpoint control.  At checkpoint time, it also
generates a script, dmtcp_restart_script.sh, that can restart a 
distributed computation.  As a sign of its maturity, it can also 
checkpoint Open MPI "from on top":  dmtcp_checkpoint mpirun hello_mpi


The MTCP component of DMTCP is the single-process component.  It is used
both internally by DMTCP as well as directly by users only interested in
checkpointing a single process.  This second feature was used in order 
to develop an Open MPI module for the Open MPI checkpoint-restart 
service similar to BLCR, except that no kernel modules are required.


DMTCP is currently a Debian package (Debian testing), and is planned 
also for Fedora and openSuSe.  These packages also provide the MTCP 
component for Open MPI.


---
More details:

Open MPI MTCP integration implementation available at:

  https://bitbucket.org/jsquyres/ompi-dmtcp2

The DMTCP parent project website is below:

  http://dmtcp.sourceforge.net/

The Distributed MultiThreaded CheckPointing (DMTCP) Project supports 
user-level, transparent checkpoint/restart of a variety of sequential 
and parallel programs.  In Open MPI terms, this contribution is an 
alternative to the BLCR CRS module, meaning that users can use DMTCP to 
checkpoint their applications instead of BLCR.


The MTCP component is currently restricted to supporting communication 
over sockets and shared memory.  In an effort to support a wider range 
of networks (e.g., InfiniBand, Myrinet), they have created a CRS 
component to hook into Open MPI's checkpoint/restart infrastructure. 
The MTCP user-level checkpoint/restart service is the single process 
checkpoint kernel of the DMTCP project.  The MTCP kernel is what is used 
in the mtcp CRS component.


Jeff Squyres and Josh Hursey have been working with the DMTCP authors 
(based out of the US Northeastern University in Boston, MA, USA) for 
quite a while and feel that this component is ready to be brought into 
the Open MPI main line for inclusion in the 1.7.x series (and possibly 
the 1.5.x series?).  The authors have submitted OMPI 3rd party 
contribution agreements.


Re: [OMPI devel] RFC: CRS Module for MTCP Checkpointing Package

2011-10-07 Thread Alex Brick
Yes, we were trying to give some background on the project and use consistent 
branding.  Our package is called DMTCP,  which includes two components: DMTCP 
(a distributed checkpointer), and MTCP (a single process checkpointer, which 
can be used both standalone and internally by DMTCP).

This RFC is for a CRS module that uses only the MTCP component.


-- Alex

Josh Hursey  wrote:

>>From what I have seen during development, this RFC integrates the MTCP
>single process checkpointer into the C/R infrastructure of Open MPI.
>The MTCP component of the DMTCP project can be used in insolation,
>which is what they are integrating. So they can use DMTCP to
>checkpoint/restart an unmodified Open MPI, but only over certain
>networks. By integrating the MTCP checkpointer as a CRS component they
>use Open MPI to coordinate across processes, and gain support for a
>larger number of networks (e.g., IB, MX).
>
>Alex, does that sound about right?
>
>-- Josh
>
>
>On Thu, Oct 6, 2011 at 4:33 PM, George Bosilca  wrote:
>> Alex,
>>
>> It looks like there is a mismatch between what you propose to achieve and 
>> the text in your RFC. You propose to add a new single-process 
>> checkpoint-restart mechanism (MTCP), to the ones already provided in Open 
>> MPI. However, most of the text in your RFC is about DMTCP, which is another 
>> layer on top of MTCP capable of checkpoint/restarting distributed 
>> application.
>>
>> I would like to understand what this RFC is really about: MTCP or DMTCP?
>>
>>  george.
>>
>> On Oct 6, 2011, at 02:58 , Alex Brick wrote:
>>
>>> WHAT: Bring in the mtcp CRS component
>>>
>>> WHY: Add support for the MTCP checkpoint/restart service
>>>
>>> WHERE: opal/mca/crs/mtcp
>>>
>>> TIMEOUT: Tuesday teleconf, 2011-10-18 (about 2 weeks from now)
>>>
>>> ---
>>> What is MTCP?
>>>
>>> DMTCP (Distributed MultiThreaded CheckPointing, 
>>> http://dmtcp.sourceforge.net) is a mature open source (LGPL) checkpointing 
>>> package that has been under development for seven years. It operates 
>>> entirely in user space, with no kernel modules, or modifications to the 
>>> target application.  If used in the simplest possible way, it works as:
>>>
>>> dmtcp_checkpoint ./a.out
>>> dmtcp_command --checkpoint
>>> dmtcp_restart ckpt_a.out_*.dmtcp
>>>
>>> DMTCP is contagious.  Any calls to fork(), pthread_create(), or "ssh",
>>> are recognized by DMTCP, and it maintains those threads, and local and
>>> remote processes under checkpoint control.  At checkpoint time, it also
>>> generates a script, dmtcp_restart_script.sh, that can restart a distributed 
>>> computation.  As a sign of its maturity, it can also checkpoint Open MPI 
>>> "from on top":  dmtcp_checkpoint mpirun hello_mpi
>>>
>>> The MTCP component of DMTCP is the single-process component.  It is used
>>> both internally by DMTCP as well as directly by users only interested in
>>> checkpointing a single process.  This second feature was used in order to 
>>> develop an Open MPI module for the Open MPI checkpoint-restart service 
>>> similar to BLCR, except that no kernel modules are required.
>>>
>>> DMTCP is currently a Debian package (Debian testing), and is planned also 
>>> for Fedora and openSuSe.  These packages also provide the MTCP component 
>>> for Open MPI.
>>>
>>> ---
>>> More details:
>>>
>>> Open MPI MTCP integration implementation available at:
>>>
>>>  https://bitbucket.org/jsquyres/ompi-dmtcp2
>>>
>>> The DMTCP parent project website is below:
>>>
>>>  http://dmtcp.sourceforge.net/
>>>
>>> The Distributed MultiThreaded CheckPointing (DMTCP) Project supports 
>>> user-level, transparent checkpoint/restart of a variety of sequential and 
>>> parallel programs.  In Open MPI terms, this contribution is an alternative 
>>> to the BLCR CRS module, meaning that users can use DMTCP to checkpoint 
>>> their applications instead of BLCR.
>>>
>>> The MTCP component is currently restricted to supporting communication over 
>>> sockets and shared memory.  In an effort to support a wider range of 
>>> networks (e.g., InfiniBand, Myrinet), they have created a CRS component to 
>>> hook into Open MPI's checkpoint/restart infrastructure. The MTCP user-level 
>>> check

Re: [OMPI devel] RFC: CRS Module for MTCP Checkpointing Package

2011-10-07 Thread Alex Brick
I'm a little unclear on this comment.

DMTCP currently supports checkpointing and restoring sockets over TCP, and we 
are actively working on Infiniband support.  However, we feel that value is 
added by also working as an Open MPI module, where Open MPI handles all of the 
network communication, and our module simply handles checkpointing the 
individual processes.  This enables people to use our user-level checkpointing 
tools with other networks by using Open MPI.

What exactly is your question?


-- Alex

George Bosilca  wrote:

>Way too much hands waving here.
>
>When you say certain networks you mean TCP and potentially SM. However, I 
>doubt even TCP can be fully supported. Not without the preconnect option … or 
>a mean to update the modes information.
>
>  george.
>
>On Oct 7, 2011, at 14:56 , Josh Hursey wrote:
>
>>> From what I have seen during development, this RFC integrates the MTCP
>> single process checkpointer into the C/R infrastructure of Open MPI.
>> The MTCP component of the DMTCP project can be used in insolation,
>> which is what they are integrating. So they can use DMTCP to
>> checkpoint/restart an unmodified Open MPI, but only over certain
>> networks. By integrating the MTCP checkpointer as a CRS component they
>> use Open MPI to coordinate across processes, and gain support for a
>> larger number of networks (e.g., IB, MX).
>> 
>> Alex, does that sound about right?
>> 
>> -- Josh
>> 
>> 
>> On Thu, Oct 6, 2011 at 4:33 PM, George Bosilca  wrote:
>>> Alex,
>>> 
>>> It looks like there is a mismatch between what you propose to achieve and 
>>> the text in your RFC. You propose to add a new single-process 
>>> checkpoint-restart mechanism (MTCP), to the ones already provided in Open 
>>> MPI. However, most of the text in your RFC is about DMTCP, which is another 
>>> layer on top of MTCP capable of checkpoint/restarting distributed 
>>> application.
>>> 
>>> I would like to understand what this RFC is really about: MTCP or DMTCP?
>>> 
>>>  george.
>>> 
>>> On Oct 6, 2011, at 02:58 , Alex Brick wrote:
>>> 
>>>> WHAT: Bring in the mtcp CRS component
>>>> 
>>>> WHY: Add support for the MTCP checkpoint/restart service
>>>> 
>>>> WHERE: opal/mca/crs/mtcp
>>>> 
>>>> TIMEOUT: Tuesday teleconf, 2011-10-18 (about 2 weeks from now)
>>>> 
>>>> ---
>>>> What is MTCP?
>>>> 
>>>> DMTCP (Distributed MultiThreaded CheckPointing, 
>>>> http://dmtcp.sourceforge.net) is a mature open source (LGPL) checkpointing 
>>>> package that has been under development for seven years. It operates 
>>>> entirely in user space, with no kernel modules, or modifications to the 
>>>> target application.  If used in the simplest possible way, it works as:
>>>> 
>>>> dmtcp_checkpoint ./a.out
>>>> dmtcp_command --checkpoint
>>>> dmtcp_restart ckpt_a.out_*.dmtcp
>>>> 
>>>> DMTCP is contagious.  Any calls to fork(), pthread_create(), or "ssh",
>>>> are recognized by DMTCP, and it maintains those threads, and local and
>>>> remote processes under checkpoint control.  At checkpoint time, it also
>>>> generates a script, dmtcp_restart_script.sh, that can restart a 
>>>> distributed computation.  As a sign of its maturity, it can also 
>>>> checkpoint Open MPI "from on top":  dmtcp_checkpoint mpirun hello_mpi
>>>> 
>>>> The MTCP component of DMTCP is the single-process component.  It is used
>>>> both internally by DMTCP as well as directly by users only interested in
>>>> checkpointing a single process.  This second feature was used in order to 
>>>> develop an Open MPI module for the Open MPI checkpoint-restart service 
>>>> similar to BLCR, except that no kernel modules are required.
>>>> 
>>>> DMTCP is currently a Debian package (Debian testing), and is planned also 
>>>> for Fedora and openSuSe.  These packages also provide the MTCP component 
>>>> for Open MPI.
>>>> 
>>>> ---
>>>> More details:
>>>> 
>>>> Open MPI MTCP integration implementation available at:
>>>> 
>>>>  https://bitbucket.org/jsquyres/ompi-dmtcp2
>>>> 
>>>> The DMTCP parent project website is below:
>>>> 
>>>>  http://dmtcp.sourcefo

[OMPI devel] RFC: CRS Module for MTCP Checkpointing Package (Revised)

2011-10-12 Thread Alex Brick

WHAT: Bring in the mtcp CRS component

WHY: Add support for the MTCP checkpoint/restart service

WHERE: opal/mca/crs/mtcp

TIMEOUT: Tuesday teleconf, 2011-10-18 (about 1 week from now)

---
What is MTCP?

MTCP (MultiThreaded CheckPointing; http://dmtcp.sourceforge.net) is an 
LGPL single-process checkpointing package that has been under 
development for seven years.  It operates entirely in user space, 
requiring no special kernel modules or superuser access to a system. 
Using it is as simple as linking with a library and adding a call to the 
mtcp_init function to your code.


MTCP is distributed as a part of the DMTCP package, and is currently 
available as a Debian package.


---
More details:

Open MPI MTCP integration implementation available at:

  https://bitbucket.org/jsquyres/ompi-dmtcp2

The DMTCP parent project website is below:

  http://dmtcp.sourceforge.net/

This RFC introduces a new CRS component for Open MPI that uses MTCP to 
provide transparent checkpointing.  The primary advantage of MTCP over 
the existing BLCR CRS module is that it operates entirely in userspace, 
meaning that any user can use it on a system without requiring special 
kernel modules or superuser access to the system.  Like the BLCR module, 
using the MTCP CRS module is entirely transparent to the actual user 
process, and requires no modification to the user program.


Jeff Hursey and Josh Squyres have been working with the DMTCP authors 
(based out of the US Northeastern University in Boston, MA, USA) for 
quite a while and feel that this component is ready to be brought into 
the Open MPI main line for inclusion in the 1.7.x series (and possibly 
the 1.5.x series?).  The authors have submitted OMPI 3rd party 
contribution agreements.