上次简单介绍了一下spack
spack入门:https://www.hikunpeng.com/forum/thread-0279130669678253026-1-1.html
这次重点介绍一下spack关于编译器方面的配置。 spack是一个脚本软件,会将软件源码从远程下载下来进行编译安装。使用的编译器是我们自己可以决定的。 需要注意的是,spack只支持gcc, intel, pgi, clang, xl, nag, fj, aocc。其他编译器暂不支持。但这些已经足够我们平常使用了。毕昇编译器是属于clang。
添加编译器
如果上面的两种方式都无法让spack找到编译器。就要考虑编译器是否是spack支持的。如果是spack支持的编译器。还可以通过以下方式添加: 修改~/.spack/linux/compilers.yaml文件
仿照上述格式,再次添加- compiler:模块内容,修改编译器及版本和命令位置即可。需要注意的是yaml文件的缩进和空格,否则会报错。然后就是示例为麒麟V10系统。不同系统的值并不固定,所以kylinV10需要根据实际进行修改。
查看编译器
1、查看所有spack可用编译器
2、查看编译器详情
删除编译器
执行spack compiler find 命令可能会找到我们并不需要的编译器。 可执行以下命令将编译器从spack中移除(并不会卸载)
注意事项
添加编译器之后有可能无法查找到全部命令。需要修改~/.spack/linux/compilers.yaml文件将部分命令路径补全。可通过编译器详情查看命令是否添加完整。
使用编译器
通过上述方式将编译器调整好之后就可以进行使用
执行命令时添加%<编译器名称>就可指定需要使用的编译器 例如:
执行安装命令可以不指定编译器,这样spack会使用默认编译器
spack的默认编译器为~/.spack/linux/compilers.yaml文件最上面的编译器,因此和编译器添加顺序是相关的,即第一个添加的编译器为后面默认编译器,所以如果想要使用的默认编译器不是系统自带的编译器,添加编译器时最好使用spack compiler add <编译器安装路径>命令添加第一个编译器。
如果没有添加编译器直接执行安装命令,spack会先查找当前环境中的编译器。
上次简单介绍了一下spack
spack入门:https://www.hikunpeng.com/forum/thread-0279130669678253026-1-1.html
这次重点介绍一下spack关于编译器方面的配置。 spack是一个脚本软件,会将软件源码从远程下载下来进行编译安装。使用的编译器是我们自己可以决定的。 需要注意的是,spack只支持gcc, intel, pgi, clang, xl, nag, fj, aocc。其他编译器暂不支持。但这些已经足够我们平常使用了。毕昇编译器是属于clang。
添加编译器
如果上面的两种方式都无法让spack找到编译器。就要考虑编译器是否是spack支持的。如果是spack支持的编译器。还可以通过以下方式添加: 修改~/.spack/linux/compilers.yaml文件
compilers: - compiler: spec: gcc@=7.3.0 paths: cc: /usr/bin/gcc cxx: /usr/bin/g++ f77: /usr/bin/gfortran fc: /usr/bin/gfortran flags: {} operating_system: kylinV10 target: aarch64 modules: [] environment: {} extra_rpaths: []仿照上述格式,再次添加- compiler:模块内容,修改编译器及版本和命令位置即可。需要注意的是yaml文件的缩进和空格,否则会报错。然后就是示例为麒麟V10系统。不同系统的值并不固定,所以kylinV10需要根据实际进行修改。
查看编译器
1、查看所有spack可用编译器
2、查看编译器详情
删除编译器
执行spack compiler find 命令可能会找到我们并不需要的编译器。 可执行以下命令将编译器从spack中移除(并不会卸载)
注意事项
添加编译器之后有可能无法查找到全部命令。需要修改~/.spack/linux/compilers.yaml文件将部分命令路径补全。可通过编译器详情查看命令是否添加完整。
使用编译器
通过上述方式将编译器调整好之后就可以进行使用
执行命令时添加%<编译器名称>就可指定需要使用的编译器 例如:
执行安装命令可以不指定编译器,这样spack会使用默认编译器
spack的默认编译器为~/.spack/linux/compilers.yaml文件最上面的编译器,因此和编译器添加顺序是相关的,即第一个添加的编译器为后面默认编译器,所以如果想要使用的默认编译器不是系统自带的编译器,添加编译器时最好使用spack compiler add <编译器安装路径>命令添加第一个编译器。
如果没有添加编译器直接执行安装命令,spack会先查找当前环境中的编译器。