arXivDaily arXiv每日学术速递 周一至周五更新
北美退伍军人节(Veterans Day),12 日无更新
arXiv 2102.13140cs.DC
收藏

使用cp的检查点:POSIX共享内存系统

Checkpointing with cp: the POSIX Shared Memory System

Lehman H. Garrison, Daniel J. Eisenstein, Nina A. Maksimova

摘要:

我们提出了Abacus的检查点方案,一个$N$体模拟代码,在POSIX共享内存或ramdisk中分配所有持久状态。检查点操作变得像将文件从ramdisk复制到外部存储一样简单。每个时间步调用一次主模拟可执行文件,内存映射输入状态,计算输出状态直接到ramdisk,并取消映射输入状态。主可执行程序仍然不知道检查点的概念,当需要检查点时,顶级驱动程序代码在可执行程序调用之间启动文件系统副本。由于唯一的信息流是通过ramdisk上的文件,所以只要模拟是正确的,检查点就必须是正确的。然而,我们发现,对于多GB的状态,取消共享内存的映射会带来很大的开销。这可以通过多线程来部分缓解,但最终,我们不建议将共享内存用于大型状态。

英文摘要:

We present the checkpointing scheme of Abacus, an $N$-body simulation code that allocates all persistent state in POSIX shared memory, or ramdisk. Checkpointing becomes as simple as copying files from ramdisk to external storage. The main simulation executable is invoked once per time step, memory mapping the input state, computing the output state directly into ramdisk, and unmapping the input state. The main executable remains unaware of the concept of checkpointing, with the top-level driver code launching a file-system copy between executable invocations when a checkpoint is needed. Since the only information flow is through files on ramdisk, the checkpoint must be correct so long as the simulation is correct. However, we find that with multi-GB of state, there is a significant overhead to unmapping the shared memory. This can be partially mitigated with multithreading, but ultimately, we do not recommend shared memory for use with a large state.

机构、总结、中文摘要均由AI分析而来,可能存在错误,请以论文正文为准。

↑