User-level Checkpointing of POSIX Threads
William R. Dieter, James E. Lumpp · 2009
Multiple threads running in a single, shared address space is a simple model for writing parallel programs for symmetric multiprocessor (SMP) machines and for overlapping I/O and computation in programs run on either SMP or single processor machines. Often a long running program 's user would like the program to save its state periodically in a checkpoint from which it can recover in case of a failure. Previous user-level checkpointing libraries to checkpoint Unix processes do not support multithreaded programs. This paper describes a user-level checkpointing library to checkpoint multithreaded programs that use the POSIX threads library provided by Solaris 2. The checkpointing library increases the amount of time required to make some thread library calls. The checkpointing library added between less than 1 % and 10 % to the execution times of tested benchmark programs. Saving the program's state to a checkpoint further increased the execution time, but the percentage of total execut...