问题标签 [blcr]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c - 检查点和重新启动 X11 应用程序
我想检查点并重新启动 X11 应用程序。我正在使用 BLCR(伯克利实验室检查点/重启 (BLCR))工具。
BLCR 无法(未经修改)重新启动与 X-Server 的连接。我使用了一个插入库将所有 Xlib 函数调用及其参数记录到一个文本文件中。
现在我希望能够重新使用这个记录的函数调用。有没有比将它们保存到文本文件并在重启过程中解析/解释它们更好的方法?
被检查点的应用程序应该重做记录的调用,但这似乎不像最初听起来那么容易。
mpi - 关于使用 BLCR 的扭矩检查点 MPI 作业的问题
我们正在尝试使用扭矩检查点 MPI 作业,但似乎扭矩只能处理在单个节点上运行的作业。我检查了代码,发现当使用qhold检查作业时,qhold向pbs服务器发送一个PBS_BATCH_HoldJob请求,然后pbs服务器将此请求中继到主控主机,然后主控主机用BLCR检查自己运行的作业进程,但没有将请求发送到其姐妹节点,因此 MPI 作业似乎无法在扭矩上进行检查点。
还有一个问题,checkpoint 成功后(qhold 报告),torque 向 master 主机中的进程发送信号 15 以杀死该进程,然后,torque 会将 checkpoint 文件复制到 pbs_server 并在本地删除所有文件。使用qrls重启这个job时,调度器会为这个job分配新的节点,并将checkpoint文件复制到新节点,然后通过checkpoint文件重启job,那么问题来了:
假设 Torque 可以对每个节点的 MPI 作业的进程进行 checkpoint,而通常我们的作业会占用大量内存,因此 checkpoint 文件非常大,但是 pbs 服务器没有足够大的磁盘来容纳 checkpoint 文件.
在我们的环境中,在 MPI 作业开始之前,我们将一些大的元数据从另一个集群中直接拉到分配给 MPI 作业的节点上进行计算,并且在 checkpoint/restart 之后,作业进程可能会在一些不同的节点中恢复,并且元数据数据可能丢失。
如果有人可以告诉我你是如何为 MPI 工作做检查点的,如果我的问题可以回答并且需要修改扭矩代码,我也喜欢这样做。
谢谢。
torque - Torque BLCR 检查点与静态链接可执行文件
我正在尝试使用伯克利实验室检查点 (BLCR) 方案检查扭矩作业调度程序正在处理的作业,并且在尝试 cr_run 'my_exec' 时出现错误,因为我相信可执行文件在编译时是静态链接的。提交脚本看起来像(简化,伪版本):
我已经使用动态链接的二进制文件(主要是由我自己编写的代码构建的可执行文件)成功地检查点作业,所以我已经知道如何做到这一点。问题是我试图运行的可执行文件是预编译的,我没有源代码,否则这不是问题。
我在这里找到了文档(参见 4.2),似乎提供了一些建议,但在尝试破译和测试这里的建议之前,我认为值得看看是否有人有从非动态可执行文件运行的检查点作业的经验在编译时链接。
作为旁注,代码没有内部检查点。此外,我们使用了一种比睡 29 小时更礼貌的检查点方式,我只是将其包括在内,以免弄乱脚本并使其更具可读性。
arm - 在 ARMv6 上失败之前的检查点之后重新启动 mpi 从站
更新
我有一个大学项目,我应该在其中使用 RPis 建立一个集群。现在我们有一个功能齐全的系统,开启了 BLCR/MPICH。BLCR 非常适合与 lib 链接的正常进程。我们必须从我们的管理 Web 界面展示的演示是:
- 并行执行作业
- 跨节点的进程迁移
- MPI 容错
我们可以使用最简单的计算。第一个我们很容易得到,也有 MPI。第二点我们实际上只使用正常进程(没有 MPI)。关于第三点,我不太清楚如何实现主从 MPI 方案,在该方案中我可以重新启动从属进程,这也影响了第二点,因为我们应该/可以/必须对从属进程进行检查点,杀死/停止它并在另一个节点上重新启动它。我知道我必须自己处理 MPI_Errors 但如何恢复该过程?如果有人至少可以给我发一个链接或论文(带有解释),那就太好了。
提前致谢
更新: 如前所述,我们的 BLCR+MPICH 东西有效或似乎有效。但是...当我启动 MPI Processes 检查点似乎运行良好。
这里的证明:
如果我在任何节点上杀死一个从属进程,我会在这里得到:
没关系,因为我们有一个检查点,所以我们可以重新启动我们的应用程序。但它不起作用:
我不知道为什么,但我第一次在每个节点上重新启动应用程序时,进程似乎已重新启动(我使用top或ps aux | grep "john"得到它,但没有输出到管理(或在管理控制台上) /terminal) 显示。它只是在显示我后挂断:
我的计划 B 只是用自己的应用程序测试 BLCR/MPICH 的东西是否真的有效。也许约翰有一些麻烦。
提前致谢
**
更新
** 简单的 hello world 的下一个问题。我慢慢地失望了。可能是我太糊涂了。
你好ç
runtime-error - mpiexec 检查点错误 (RPi)
当我尝试运行应用程序时(只是一个简单的 hello_world.c 不起作用),我每次都会收到此错误:
我只想做一个检查点而不是别的(稍后重新启动)。
提前致谢
更新:
我已经尝试过 MPICH2,没有机会。或者也许我在某个地方错了......
Test3-代码:
我只需要一个成功的检查点并显示重新启动。如果有人有一个工作示例(与它的作用无关,简单的工作“Hello World”会让我开心!)我会很高兴。
新年快乐!
raspberry-pi - RPi BLCR/MPICH 检查点/重启问题
在调查了我的问题数周后,我从上下文的 hexdump 中找到了一些信息(我得到了一个没有 C/R 错误的信息(链接在这个问题的末尾,但没有重新启动成功))(context-num0-0- 0,投递箱)
似乎检查点有效。
我之前问过一些关于 C/R - 问题的问题。
在 ARMv6 mpiexec 检查点错误 (RPi)失败之前在检查点之后重新启动 mpi 从站
我还尝试找到任何解决方案并在此处进行操作:
MPICH2 Checkpointing Error with BLCR
enter link description here
没有机会。我真的慢慢绝望了……
我确信这里有一些 HPC-Gurus。如果你能帮助我或者只是解释为什么它不起作用(或者为什么它不起作用,也许是因为我在某个地方错了)这对我来说将是最好的圣诞礼物。
[这个程序得到的检查点]
test2.c
我认为我的问题出在某个地方:
根 4693 0.0 0.7 9804 3204 ? Ss 09:29 0:00 _ sshd: pi [priv]
pi 4700 0.0 0.3 9804 1528 ? S 09:29 0:00 _sshd: pi@pts/0
更新:(日志)
hydra_pmi_proxy 和 test2 似乎是僵尸
arm - 具有检查点/重启支持的 Raspberry Pi 上的 OpenMPI
我有一个简单的问题。Raspberry PI 即 ARM 上的OpenMPI是否提供检查点/重启功能?我有带 BLCR 的 MPICH,但我无法重新启动任何应用程序。(MPICH 和 BLCR 是我自己构建的)所以我会尝试使用 OpenMPI。(是的,我的意思是 OpenMPI,因为我的 MPICH 问题没有得到任何答案) 我看到有 openmpi-bin、openmpi-common、openmpi-doc 包,但没有可用的 openmpi-checkpoint。
提前谢谢你,新年快乐!
cuda - 如何在进程运行期间完全销毁(清理,重置)CUDA应用程序
我现在计划使用 BLCR 为 CUDA 应用程序制作 Checkpoint/Restart 库。
为此,我必须在进程运行期间完全销毁 CUDA 应用程序。
因为,如果进程仍在 GPU 上,BLCR 将无法运行 cr_checkpoint。实际上,我尝试在某个时候调用 cudaDeviceReset(),然后在调用 sleep(1000) 之后,在 sleep 系统调用期间,我发送了这样的信号; cr_checkpoint PID
. 这种情况下,我成功创建了 context.PID 文件,但无法像这样运行;cr_run context.PID
. 错误信息如下;
-mmap(0, 200000000, 2700000000, ...) = 0xfffffffffffffff4(失败)-thaw_threads 返回错误,中止。-12 重启失败:无法分配内存
有人对此有任何想法吗?总结如下。
- 我计划使用 BLCR 为 CUDA 应用程序制作 Checkpoint/Restart 库。
- 尝试调用cudaDeviceReset()函数,但重启失败(创建context.PID文件成功但重启失败)
- 我想知道如何在进程运行期间完全销毁或重置 CUDA 应用程序。
如果有人给我任何想法,我会应用它。
linker - 使用链接文件作为链接器的输入
linux有没有办法使用静态链接的文件作为输入。具体来说,我想将 BLCR libcr 库添加到我无法访问其源代码的静态链接程序中。