由于是菜鸟,大牛莫见笑。采纳网上建议,在正确的编译器intel oneapi ,再加上配置正确的Linux操作系统ubontu2.04版本,vasp6.2+vtst编译,比较顺利。 以前病急乱投医,对make及makefile知道的不多,一顿乱操作,装了很多不同并行编译软件,因此在编译的过程,采用不是一个系统的不同编译并行指令,频繁出错,很受打击。现在理解就是根据makefile脚本的要求采用正确的编译器处理代码,对同样的目标要求,有多种编译器要求,还有正确的库文件生成及路径设置,在Linux上还有不同权限的读写执行问题,如同考驾照,一关不过不过,就挂了,编译失败。遇到难题基本的态度是淡定,仔细看编译过程的输出提示,不能用并行编译,因为不便于一个个错误按逻辑顺序去战胜克服,要相信网络这个平台,搜索找答案。一个源代码在一台电脑正确编译完成,有软件问题,也有硬件问题。同样的操作在自己的电脑上还是有不同问题冒出。所以要能大体搞清makefile文件及makefile.include文件上命令行的大意及作用,以及怎样改写替换。同时还要结合电脑配置。 我的ubontu是windows下自带的WSL,根据我的电脑配置,开始想安装Intel 2019编译器,安装时,提示不适合ubontun2.04,我马上换为Intel oneapi 安装并设置环境变量后,按照http://theory.cm.utexas.edu/vtsttools/installation.html 的提示一步步去做,并没有修改makefile.inckude的任何地方一下子编译vasp_std vasp_ncl vasp_gam成功,但显示vasp_gpu失败,我的Intel oneapi是默认安装,软件自己默认的目录是/opt/intel/oneapi. 我看了一下,屏幕输出提示是cuda没有安装,于是网络搜寻我的显卡配置,GPU以及对应的cuda版本 。安装了对应操作系统及硬件的cuda11,编译时还是出现了问题,然后按照;https://blog.csdn.net/sowhatgavin/article/details/70473526tishi 修改了:MPI_INC =/usr/local在这里插入在这里插入代码片 代码片/mpi-intel2013/include 让: MPI_INC =mpi实际路径(我的是:/opt/intel/oneapi/…) CUDA_ROOT := /vol-th/software/cuda/cuda-7.5 把加粗斜体部分改为实际安装路径。(这里有个查路径命令:whereis cuda which locate find /)按照此文修改了几处,编译还是没成功。显示是lconda没有。 这是一个编译的工具,我估计多一个麻烦,不如少一个,便把它从CUDA_LIB := -L$(CUDA_ROOT)/lib64 -lnvToolsExt -lcudart -lcuda -lcufft -lcublas中删掉,结果编译成功,得到vasp_gpu gpu_ncl. 编译时改写是办法,删掉亦可以,因为我们的电脑也很聪明啊!
|