首页 > 解决方案 > 为什么奇异容器中的命令无法运行?

问题描述

在我的项目中,我使用奇异性来构建一个 mpi.sif。

我的主机文件系统中有一个 openMPI。我不想在容器中安装 mpi。

所以我尝试将 mpi 文件复制到容器中。

定义 mpi.def 的一些内容如下:

[stack@node01 pitzDaily]$ cat mpi.def 
Bootstrap: docker
From: centos:7

%help
This recipe provides an OpenFOAM-7 environment installed
with GCC and OpenMPI-4.

%labels
Author stack

%files from stage_name

/share/apps/openmpi/intel/3.1.2/ /opt/openmpi-3.1.2

%post

### Install prerequisites

我可以在构建后成功获取mpi.sif。

但是我在容器中运行了 mpicc,这是错误的:

Singularity> mpicc
 mpicc: error while loading shared libraries: libnuma.so.1: cannot open shared object file: No 
 such file or directory
Singularity> echo $PATH
 /opt/openmpi-3.1.2/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
Singularity> cd /opt/openmpi-3.1.2/bin/
Singularity> ls
aggregate_profile.pl  mpiCC    mpif77   mpirun      ompi_info    ompi-top      orte-clean  
orte-info  orte-server  oshcc   oshfort profile2mat.pl  shmemcc   shmemfort
mpic++            mpicxx   mpif90   ompi-clean  ompi-ps  opal_wrapper  orted       orte-ps    
orte-top       oshCC   oshmem_info  prun        shmemCC   shmemrun
mpicc             mpiexec  mpifort  ompi-dvm    ompi-server  ortecc        orte-dvm    orterun    
oshc++     oshcxx  oshrun   shmemc++    shmemcxx

事实上,我在容器中有 mpi 文件,但这是错误的:

Singularity> ./mpicc
./mpicc: error while loading shared libraries: libnuma.so.1: cannot open shared object file: 
 No such file or directory


Singularity>ldd ./mpicc
linux-vdso.so.1 =>  (0x00007fff1d79f000)
libopen-pal.so.40 => /opt/openmpi-3.1.2/lib/libopen-pal.so.40 (0x00007f0a6cade000)
libm.so.6 => /lib64/libm.so.6 (0x00007f0a6c7dc000)
libnuma.so.1 => not found
librt.so.1 => /lib64/librt.so.1 (0x00007f0a6c5d4000)
libutil.so.1 => /lib64/libutil.so.1 (0x00007f0a6c3d1000)
libz.so.1 => /lib64/libz.so.1 (0x00007f0a6c1bb000)
libgcc_s.so.1 => /lib64/libgcc_s.so.1 (0x00007f0a6bfa5000)
libpthread.so.0 => /lib64/libpthread.so.0 (0x00007f0a6bd89000)
libc.so.6 => /lib64/libc.so.6 (0x00007f0a6b9bb000)
libdl.so.2 => /lib64/libdl.so.2 (0x00007f0a6b7b7000)
/lib64/ld-linux-x86-64.so.2 (0x00007f0a6ce13000)
libnuma.so.1 => not found
libimf.so => not found
libsvml.so => not found
libirng.so => not found
libintlc.so.5 => not found

谁能帮帮我?

标签: singularity-container

解决方案


推荐阅读