小编Ben*_*Ben的帖子

Kubernetes和MPI

我想在我的Kubernetes集群上运行MPI作业.上下文是我实际上运行的是一个现代的,包装良好的容器化应用程序,但部分工作量是一个传统的MPI工作,不会很快重写,我想把它变成一个kubernetes"世界观"尽可能地.

最初的一个问题:是否有人在kube集群上运行MPI作业有任何成功?我见过Christian Kniep的工作是让MPI工作在Docker容器中运行,但是他正在沿着docker swarm路径(使用每个容器中运行的consul发现同行)并且我想坚持kubernetes(已经知道了所有同行)并从外部将此信息注入容器中.我完全可以控制应用程序的所有部分,例如,我可以选择使用哪个MPI实现.

关于如何继续,我有几个想法:

  1. 包含slurm和应用程序代码的胖容器 - >在容器启动时使用适当的信息填充slurm.conf - >使用srun作为容器入口点来启动作业

  2. 仅使用OpenMPI(无淤泥)的更轻薄的容器 - >使用外部信息(由kubernetes提供)在容器中填充rankfile - >使用mpirun作为容器入口点

  3. 更简洁的方法,我基本上通过设置一些环境变量(例如OpenMPI ORTE)来"伪造"MPI运行时 - >直接运行mpicc'd二进制文件(通过env vars可以找到它的同行) )

  4. 一些其他选择

  5. 绝望地放弃

我知道尝试将"已建立"的工作流程(如MPI)与kubernetes和容器的"新热点"混合起来有点阻抗不匹配,但我只是在寻找指针/陷阱之前我走得太远了.如果什么都不存在,我很乐意破解一些东西并将其推回上游.

mpi openmpi kubernetes

17
推荐指数
1
解决办法
3430
查看次数

一个用于cmake的NuGet感知的find_package

我正在用cmake构建一个跨平台的库,它有一些(非常常见的)依赖项,例如PCRE.这些代表可以通过常用的包管理器(Ubuntu/Debian上的APT,OSX上的Homebrew)以及Windows上的NuGet获得.在我CMakeLists.txt,我使用"模块"版本find_pacakge来定位这些代表并设置正确的包含/库标志.

这个问题提供了一种集成cmake + nuget的方法,但也暗示cmake和NuGet不太可能在一起玩得很好,我似乎无法找到find_package找到已安装的deps的方法.有没有办法让cmake读取nuget配置文件(ala的方式pkg_check_modules适用于系统pkg-config)并从那里填充适当的cmake变量?或者我必须手动推出自己的解决方案FindPCRE.cmake

windows cmake nuget

11
推荐指数
1
解决办法
2172
查看次数

Emacs键盘记录

我正在尝试在Emacs中实现一个键盘记录器(为了我自己的,非邪恶的目的).

看来,我可以可靠地通过拍摄的最后一个命令real-last-commandpre-command-hook

所以,我可以这样做:

(setq keylog-list nil)

(defun my-keylogger-function ()
  (setq keylog-list (cons real-last-command keylog-list)))

(add-hook 'pre-command-hook 'my-keylogger-function)
Run Code Online (Sandbox Code Playgroud)

经过一些运动命令后,我们得到了

keylog-list's value is
(describe-variable left-char left-char previous-line previous-line left-char eval-last-sexp)
Run Code Online (Sandbox Code Playgroud)

但是,我也有兴趣捕获这些命令的参数(例如,参数left-char,默认情况下,1如果使用前缀参数,可能会有所不同).

有没有办法访问args?有点像real-last-command-arglist

emacs elisp

6
推荐指数
2
解决办法
512
查看次数

dplyr中的重叠组

我正在尝试根据分组因子计算"滚动"摘要统计数据.有没有一种很好的方法来处理(重叠)基于(比如说)有序因子?

举个例子,假设我想val按组计算总和

df <- data.frame(grp = c("a", "a", "b", "b", "c", "c", "c"),
                 val = rnorm(7))
Run Code Online (Sandbox Code Playgroud)

对于基于的群组grp,很容易:

df %>% group_by(grp) %>% summarise(total = sum(val))

# result:
  grp   total
1   a  1.6388
2   b  0.7421
3   c  1.1707
Run Code Online (Sandbox Code Playgroud)

但是,我想要做的是计算连续组的"滚动"总和("a"和"b",然后"b"和"c"等).期望的输出将是这样的:

  grp1 grp2   total
1    a    b  1.6388
2    b    c  0.7421
Run Code Online (Sandbox Code Playgroud)

我在dplyr中无法做到这一点.特别是,我似乎无法弄清楚如何得到"重叠"的群体-在上面的例子中的"B"行应该在结束2个输出组.

r dplyr

3
推荐指数
1
解决办法
791
查看次数

Emacs 在 shell 模式下“卡住”颜色

有时,如果我在 ashell或oneshell缓冲区中工作ansi-color-for-comint-mode,并运行一个提供彩色输出的程序,然后在打印彩色文本时崩溃,则颜色会“卡住”,并且该缓冲区中的所有后续文本都是该颜色。我能够修复它的唯一方法是关闭ansi-color-for-comint-mode或终止 shell 缓冲区。

有没有更好的方法来告诉 comint 派生的 shell 缓冲区“重置”ansi 颜色代码?

emacs eshell

1
推荐指数
1
解决办法
340
查看次数

标签 统计

emacs ×2

cmake ×1

dplyr ×1

elisp ×1

eshell ×1

kubernetes ×1

mpi ×1

nuget ×1

openmpi ×1

r ×1

windows ×1