我在 eBay 上看到数量惊人的低成本 100 美元至强融核“板载集群”PCI 卡。可以从 Ubuntu Server 主机使用这些来分派数值计算任务,还是需要 CentOS/RHEL/Windows?
任何指向在 Ubuntu 上使用 Xeon Phi 的教程的指针都表示赞赏。
可以从同一个主机系统管理多个 Phi 板吗?
是否可以像传统上通过主机名通过 MPI 完成的那样处理单个内核,还是需要 OpenCL?我想我要问的是......你能通过 SSH 连接到各个核心吗?
我试图在 ubuntu 上安装 openpi。我有一个 Ubuntu 18.04.4 LTS(64 位)桌面。我使用安装了openmpi
sudo apt-get install openmpi-bin openmpi-common openmpi-doc libopenmpi2 libopenmpi-dev openssh-client openssh-server
然后,在 .bashrc 中,我添加了以下两行:
echo export PATH="$PATH:/home/$USER/.openmpi/bin" >> /home/$USER/.bashrc
回声导出 LD_LIBRARY_PATH="$LD_LIBRARY_PATH:/home/$USER/.openmpi/lib/" >> /home/$USER/.bashrc
之后我用dartmouth hello world mpi 写了一个小程序,编译运行,通过输入检查openmpi安装是否OKgfortran ubuntu.f90
这导致以下错误
ubuntu.f90:2:错误:无法打开包含的文件“mpif.h”
ubuntu.f90 中的代码:
program hello
include 'mpif.h'
integer rank, size, ierror, tag, status(MPI_STATUS_SIZE)
call MPI_INIT(ierror)
call MPI_COMM_SIZE(MPI_COMM_WORLD, size, ierror)
call MPI_COMM_RANK(MPI_COMM_WORLD, rank, ierror)
print*, 'node', rank, ': Hello world'
call MPI_FINALIZE(ierror)
end
我已尝试按照此问题的答案安装 libblacs-mpi-dev。这个问题似乎无关紧要。
我想在 ubuntu 台式计算机上开始一个大型模拟。我可以物理(非远程)访问这台 PC。此模拟可能需要数周时间。启动进程的命令是:
mpirun -np 100 icoFoam -parallel | tee log
icoFoam
可执行文件在哪里,-parallel
需要作为它的选项。
此命令在终端中打印数据。有时终端关闭或操作系统在长时间模拟期间随机注销,因此,进程终止。我试图通过几个替代命令来解决这个问题:
nohup mpirun -np 100 icoFoam -parallel > log &
nohup mpirun -np 100 icoFoam -parallel > log & disown &
nohup mpirun -np 100 icoFoam -parallel | tee log & disown &
nohup mpirun -np 100 icoFoam -parallel | tee log & disown & > /dev/null 2>& 1 & nohup mpirun -np 100 icoFoam -parallel > /dev/null 2>& 1 &
systemd-run --scope --user mpirun -np 100 icoFoam -parallel | tee log &
systemd-run --scope --user mpirun -np 100 icoFoam -parallel | tee log & disown &
systemd-run --scope --user nohup mpirun -np 100 icoFoam -parallel | tee log & disown &
tmux
结果
除了 form tmux
,使用这些命令中的任何一个,当我关闭终端时,进程都会终止。
tmux
当我从我的用户帐户注销时也会终止。
我的发现
tee
被终止。因此,我使用重定向到日志文件或(从这里),这两者也都通过关闭终端而终止。 SIGPIPE
/dev/null
systemd-run
。但它也可以通过关闭终端来终止。 为了查看程序是否安装了自己的处理程序,我执行了这个:
nohup mpirun -np 100 icoFoam -parallel > log &
grep Sig /proc/$!/status
哪个返回
SigIgn: 0000000000000000
因此,我猜是这种情况,即mpirun
安装了自己的处理程序来覆盖nohup
(从这里)的保护。
mpirun
不覆盖nohup
. 我的问题
我想执行以下命令,以便只要终端未关闭,它就会在终端中打印输出,并且不会通过关闭终端或从用户帐户注销来终止该过程。
mpirun -np 100 icoFoam -parallel
操作系统:Ubuntu 18.04
可执行文件:OpenFOAM
mpirun(Open MPI):2.1.1
更新
通过注销,我的意思是按注销按钮(图像),而不是锁定屏幕(super+L)
先感谢您。
使用environment-modules
,我正在尝试使用 intel 编译器和 openmpi 设置自定义环境模块以安装软件。我不熟悉创建自定义模块文件的方法,但我在互联网上提供的少量资源的帮助下构建了两个,尽管我似乎无法让它工作。我正在使用运行 ubuntu 18.04 LTS 的 HPC,这是我的 intel 模块文件(../bin 包含“compilervars.csh compilervars.sh”,../lib 包含“ia32 ia32_lin intel64 intel64_lin”):
#%Module1.0#####################################################################
##")
## intel modulefile
##
proc ModulesHelp { } {
puts stderr "\tAdds Intel compilers to your environment variables,"
}
module-whatis "adds Intel compilers to your environment variables"
setenv( "INTELPATH", "/opt/intel/bin")
prepend_path( "PATH", "/opt/intel/bin")
prepend_path( "LD_LIBRARY_PATH", "/opt/intel/lib")
接下来对于openmpi,这是我的尝试:
#%Module1.0#####################################################################
##")
## openmpi modulefile
##
proc ModulesHelp { } {
puts stderr "\tAdds openmpi to your environment variables,"
}
module-whatis "adds openmpi to your environment variables"
setenv( "INTELPATH", "/usr/bin")
prepend_path( "PATH", "/usr/bin")
prepend_path( "LD_LIBRARY_PATH", "/usr/lib/x86_64-linux-gnu/openmpi/lib")
这给出了以下错误(对于英特尔编译器):
Loading intel
Module Error: extra characters after close-quote
In '/usr/local/Modules/modulefiles/intel'
Please contact <root@localhost>
但是,我不确定我是否正确设置。我找不到 openmpi 的 bin 文件夹,但在 /usr/bin 中找到了 mpicc.openmpi 和 mpirun.openmpi。我也不确定lib。请指导我正确设置环境模块并修复我的两个模块文件。这让我很困惑,因为我对这行工作并不熟悉,因为我在计算科学方面的工作更多。我希望我能尽快让它工作。谢谢!
我在 16.04。当我
sudo apt-get install mpich
并检查 lib 目录
/usr/lib/mpich
它包含预期的包含目录,但其中包含 lib 目录:
/usr/lib/mpich/lib
是一个符号链接:
/usr/lib/x86_64-linux-gnu
据我所知,没有 lib 文件,我无法编译代码,因为它找不到 mpich 库。
/usr/lib/mpich$ 读取链接 -f lib
回报:
/usr/lib/x86_64-linux-gnu
以下是编译和链接命令:
ifort -warn none -O2 -I/usr/include/mpich/ -c 边界.F90 -o 边界.o
ifort -o 边界.o -lmpi
错误是:
边界.F90:(.text+0xaa): 未定义对 `mpi_sendrecv_' 的引用
并且链接目录是
/usr/include/mpich/lib
我需要知道如何检查我的机器上是否已经安装了 MPI,如果没有,安装需要多长时间?