Checkpoint-Restart: Proprietary Hardware and the "Spiderweb API"

Presented at REcon 2011, July 8, 2011, 1 p.m. (60 minutes)

This summary describes a package to transparently checkpoint and restart applications which run over Infiniband. Infiniband is rapidly growing as a high-speed interconnect, even appearing on departmental clusters. The current work grew out of the needs of high performance computing. As of November, 2010, 43% of the TOP500 supercomputers run Infiniband. However, the ability to checkpoint immediately provides access to a poor man's reversible debugger. Using our DMTCP (Distributed MultiThreaded CheckPointing, http://dmtcp.sf.net), we can already checkpoint a GDB session today: if we have executed 100 commands since the last checkpoint, we can undo the last instruction by restarting the checkpoint and going forward 99 commands. Since many apps access Infiniband through MPI (Message Passing Interface) instead of direct communication with Infiniband, we also integrated DMTCP into the OpenMPI dialect so as to transparently debug an MPI-based application. Infiniband's primary mechanism to provide fast latency is Remote Direct Memory Access (RDMA). One host can directly read or write the RAM of another host, without intervention by the CPU or software. The previously mentioned debugger logs commands and allows you to go back in history, through restarting and re-executing. It means that we can now conceive of time as a spatial dimension instead of a temporal dimension. So we can write a binary search program acting over the process's lifetime. This is illustrated in a later section. In a complex Infiniband computation, memory is written to and read from with latencies of less than 1 microsecond. Assert statements or breakpoints would change the course of execution because the program no longer runs at native speed. This talk is based on a paper authored by Gregory Kerr and co-authored by Alex Brick, Gene Cooperman, and Sergey Bratus.

Presenters:

Links:

Similar Presentations: