PIConGPU installation on CPU-only system PIConGPU在仅CPU系统上的安装

在windows server 2019的hyper-v:Ubuntu20.04LTS系统上安装PIConGPU
机器是Xeon Gold 6338×2;ubuntu系统没有预装任何编译器

官方安装文档(推荐Spack)https://picongpu.readthedocs.io/en/latest/install/instructions/spack.html

1 按照官网安装spack并启用spack

1.1 安装git

sudo apt install git-all

1.2 clone spack from github

git clone https://github.com/spack/spack.git $HOME/src/spack

1.3 加载spack

source $HOME/src/spack/share/spack/setup-env.sh
此时可以在命令行输入spack查看是否已经加载

1.4 安装编译器gcc和build-essential,以编译spack下载的包

sudo apt install gcc
sudo apt install build-essential

然后查看gcc版本,此后spack编译指定该版本编译器(picongpu要求gcc 7.0以上版本,请确认)

gcc --version

将此编译器添加入spack编译器列表

spack compiler find

此时在.spack/linux/compilers.yaml中可以看到已经添加的编译器(这里我gcc版本是9.4.0)

2 在spack中安装编译器和附属包

这里安装gcc 9.4.0
spack install gcc@9.4.0 && spack load gcc@9.4.0 && spack compiler add

3 spack安装picongpu

%%(每次新开终端或者log out--log in都需要重新加载spack:)
%%source $HOME/src/spack/share/spack/setup-env.sh

确认已经加载spack

git clone https://github.com/ComputationalRadiationPhysics/spack-repo.git $HOME/src/spack-repo
spack repo add $HOME/src/spack-repo

3.1 在gpu上安装picongpu

waiting for further exploration

3.2 在cpu上安装picongpu并load(需要执行一段时间)

spack install picongpu backend=omp2b %gcc@9.4.0

这个过程中有可能会报错"Error: FetchError:....." 可以重新执行install指令(感觉是网络问题)

在执行到安装openmpi时,出现报错:
"Error:InstallError:OpenMPI requires both C and Fortran compilers!"
一般来说在安装gcc时Fortran是自动安装的,但是即使使用spack compiler find也找不到Fortran,所以只好自己装

sudo apt-get install gfortran

这里安装的默认版本是gfortran-9,和
确认在 /usr/bin下面能找到gfortran-9
然后手动编辑compilers文件:

spack config edit compilers

f77: /usr/bin/gfortran-9
fc: /usr/bin/gfortran-9

然后重新执行上述spack的picongpu安装指令
安装完成后就可以直接使用spack load指令加载picongpu,并且此过程会同时加载相关依赖
spack load picongpu backend=omp2b %gcc@9.4.0

至此picongpu的安装结束

4 picongpu运行例程LaserWakefield

4.1 复制例程到新文件夹

新建路径

export SCRATCH=$HOME
# PIConGPU input files
mkdir $HOME/picInputs

# PIConGPU simulation output
mkdir $SCRATCH/runs

clone到picInputs文件夹下

# clone the LWFA example to $HOME/picInputs/myLWFA
pic-create $PIC_EXAMPLES/LaserWakefield $HOME/picInputs/myLWFA

# switch to your input directory
cd $HOME/picInputs/myLWFA

4.2.1 在cuda上编译

pic-build

4.2.2 在cpu上编译

pic-build -b "omp2b"

4.3.1 在gpu上运行

to be explored

4.3.2 在cpu上运行

tbg -s bash -t etc/picongpu/bash/mpirun.tpl -c etc/picongpu/1.cfg $SCRATCH/picRuns/001

5 结果分析

to be explored

posted @ 2022-07-20 12:46  thousfeet  阅读(150)  评论(0编辑  收藏  举报
/* */