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