- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个简单的 mpi 程序来演示我的问题:
#include <stdio.h>
#include <mpi.h>
int main(int argc, char *argv[])
{
int rank, csize;
MPI_Init(&argc, &argv);
MPI_Comm_rank(MPI_COMM_WORLD, &rank);
MPI_Comm_size(MPI_COMM_WORLD, &csize);
printf("Hello from rank[%d/%d]\n", rank, csize);
MPI_Finalize();
}
编译后,我可以使用 mpirun
成功启动可执行文件来自 sbcl repl:
* (uiop:run-program '("mpirun" "-np" "10" "./hello_world") :output :string)
"Hello from rank[7/10]
Hello from rank[9/10]
Hello from rank[5/10]
Hello from rank[8/10]
Hello from rank[0/10]
Hello from rank[1/10]
Hello from rank[2/10]
Hello from rank[3/10]
Hello from rank[4/10]
Hello from rank[6/10]
"
NIL
0
但是,当我从 slime 中运行相同的内容时,slime repl 只是挂起。如果我直接运行可执行文件,而不是通过 mpirun
启动器,然后一切运行正常:
CL-USER> (uiop:run-program '("./hello_world")
:output :string)
"Hello from rank[0/1]
"
NIL
0
我在 Linux 工作站上使用 sbcl-1.4.5 和 slime 2.20。有谁能解决这个问题或从哪里开始寻找?
更新:
问题源于emacs comint
模式,史莱姆所基于的。如果我启动 sbcl
,我会观察到相同的悬挂行为通过make-comint-in-buffer
然后使用 uiop:run-program
.
更新2:
阅读了一些关于 comint
的内容后模式下,我能够捕获悬挂过程的一些输出。这个 emacs lisp 代码:
(make-comint "foo" "mpirun" nil "-np" "1" "/home/ptb/programming/c/hello_world")
在挂起的进程上产生以下错误:
[warn] Epoll MOD(1) on fd 14 failed. Old events were 6; read change was 0 (none); write change was 2 (del): Bad file descriptor
[warn] Epoll MOD(4) on fd 14 failed. Old events were 6; read change was 2 (del); write change was 0 (none): Bad file descriptor
对于这意味着什么有什么想法吗?
最佳答案
我猜这是 openmpi 或 libevent 中重定向 stdin/stdout 的问题(过去也曾出现过此类问题,例如 bugzilla.redhat.com/show_bug.cgi?id=1235044)。您使用其中的哪个版本?
关于emacs - Slime\Emacs comint 在启动 mpi 进程时挂起,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50238064/
我通常尝试使用如下命令启动 CLI(可能未正确定义它): (make-comint-in-buffer "PUTTY" nil "./plink.exe" nil "dbserver") (make-
我正在尝试使用 comint erlang-shell 打开一个后台缓冲区,一旦启动,就在 emacs 中运行一个函数调用(使用 distel 将其二进制文件发送到 erlang 节点)。 即: ..
有时在 comint 模式下,点位于缓冲区中的任意位置,我错误地按了 Return。这会将文本发送到底层进程,这可能非常危险。此文本通常包含很多行,并且无论是否偶然,其中一行可能是有效命令。 有什么方
我要解决的具体问题是 向正在运行的 telnet 发送命令 session 使用 message 回显命令的结果 但一般问题是将命令发送到下级(comint)进程 并等待输出返回并出现新的提示,然后返
我经常同时打开几个 comint 缓冲区,例如,我将向数据库打开一个 SQLi 缓冲区,并在不同的地方打开一组 shell 缓冲区。有时,我无缘无故地检测到,所有这些缓冲区开始共享一个公共(publi
在 Ubuntu Lucid 上使用 Emacs 23.2.1,任何基于 Comint 的模式都会偶尔插入换行符以获得更大的输出(参见下面的示例 Shell 和 SQL 模式输出)。我在 SQL 模式
我在 Emacs 中有一个 shell,但是 major-mode 只给我 comint-mode。 有没有办法确定哪种类型的外壳? 也许调用了什么 Emacs 函数来启动它? 或者至少解释器的可执行
我目前将编译绑定(bind)到 C-x c。我知道我可以使用 C-u C-x c 在 comint 模式下运行编译,但我更愿意直接将它绑定(bind)到 C-x c。如果不从 compile.el 复
我有一个简单的 mpi 程序来演示我的问题: #include #include int main(int argc, char *argv[]) { int rank, csize;
我想在 comint 启动的进程完成后读取缓冲区的输出。 (comint-redirect-send-command-to-process command-strin
例如,我有以下命令来运行我的项目: java -cp "lib/*:src:resources" clojure.main -m etl-proxy.proxy.core 所以我尝试使用以下命令创建
我在 Emacs 24 上安装了 js-comint 模式。现在当我尝试执行 run-js 时,它会抛出以下错误: Exception in thread "main" java.lang.NoCla
我想在切换到我通常运行命令的缓冲区后,通过搜索来导航历史记录,而不是在缓冲区末尾一次导航一个命令(例如 C-p )。 基本上,我想在缓冲区末尾“反向搜索”命令历史记录,而不是搜索缓冲区。 有人编写了可
编辑 Bash 脚本我想为变量分配文件名。 例如输入文件=foo.txt 与标准。 settings 如果不先在“=”后插入一个空格,我就无法完成文件名。 有什么解决办法吗? 最佳答案 首先,自 Em
我正在为 python 脚本编写一个 comint 模式。 脚本可以启动: /usr/bin/python3.3 tool-name arg0 我正在使用 comint-mode,因为此调用会在运行前
我使用 Emacs 24.2。我已经从 MELPA 安装了 js-comint 和 js-mode ,执行了 run-js,现在在 REPL 而不是 > 符号我有这个乱码: ^[[1G> ^[[0K^
我是一名优秀的程序员,十分优秀!