本文主要是介绍SuperLU、BLAS、CUnit、YAML编译安装教程,使用Environment Modulefile管理版本,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
GRASP 是一种高精度的气溶胶反演算法,GRASP大量使用许多库进行数据准备和数值计算。在实验室服务器上配置GRASP运行环境,首先需要配置SuperLU库、BLAS库、CUnit以及YAML等依赖环境,出于版本管理的考虑,均采用编译安装方式进行,并使用Environment Modules软件管理依赖库环境。
服务器上已经搭建好git、intel fortran和environment modules等环境,服务器系统为CENTOS 8 OSTREAM。本文所有依赖库的安装位置均出于/opt/apps/libraryname/libraryversion目录下,modulefile位置部署予/usr/share/modulefiles/libraryname/libraryversion文件中,在root权限下进行。本文完整记录了整个环境搭建过程,按照此安装步骤可以成功完成SuperLU、BLAS、CUnit以及YAML等库的安装。
目录
参考资料
步骤一 安装依赖环境
导入FORTRAN环境
安装Cmake
安装SuperLU
使用Cmake Build安装SuperLU
安装Cunit
安装BLAS
安装YAML
步骤二 安装GRASP
参考资料
安装步骤参考以下官方文档,其中GitLab需要注册账户获得授权方可访问。
GRASP Framework Overview – GRASP Open
Sign in · GitLab
GRASP 是一种高精度的气溶胶反演算法,可以处理无云环境中气溶胶和地表反射率的特性。它可以推断出近50个气溶胶和表面参数,包括颗粒大小分布、光谱折射率、球形度和吸收程度。该算法旨在通过光谱、多角度偏振遥感观测增强气溶胶特性的角色塑造。GRASP 在不同的条件下工作,包括像沙漠这样明亮的表面,那里的反射比气溶胶的信号还要强。GRASP 是高度通用的,并允许从各种各样的卫星和地面测量输入。
有关 GRASP 的详细资料,请参阅项目官方网页: GRASP-OPEN Home
有关用户文档的详细资料,请参阅: GRASP Framework Overview – GRASP Open
有关技术文档的详细资料,请参阅: GRASP Framework Overview – GRASP Open
步骤一 安装依赖环境
- a C compiler (recommended gcc).
- a Fortran compiler (known to work with gfortran and ifort).
- a make command (provided on any POSIX system).
- the cmake building software.
- One of the four numerical packages:
- SuperLU
- SuperLU_MT (not included in the framework yet)
- MUMPS
- ViennaCL
- a BLAS library (Netlib BLAS, ATLAS, GotoBLAS).
- The LAPACK library.
- ScaLAPACK (a requirement for the SuperLU and MUMPS numerical packages only).
- ParMETIS (a requirement for the MUMPS numerical package only).
- OpenMPI (optional).
- The Gnome Library GLib (mostly used by the configuration manager).
- The LibYAML library (YAML is the chosen format for GRASP configuration).
- The C Unit Testing Framework: CUnit.
CentOS
yum install CUnit-devel SuperLU-devel blas-devel cmake gcc libyaml-devel zlib-devel
服务器需要配合environment module管理工具,故使用编译安装方式,步骤如下。
导入FORTRAN环境
module load compile/ifort/2021.5.0
服务器FORTRAN版本为IFORT 2021.5.0,如需其他版本需要另行安装。
安装Cmake
yum install cmake
安装SuperLU
官网:SuperLU: Home Page
wget https://github.com/xiaoyeli/superlu/archive/refs/tags/v5.3.0.tar.gz
使用Cmake Build安装SuperLU
1、解压 tar -zxvf v5.3.0.tar.gz
2、进入解压文件夹 cd superlu-5.3.0/
3、创建并进入编译文件夹 mkdir build | cd build
cmake .. -DCMAKE_INSTALL_PREFIX=/opt/apps/superLU/5.3.0
4、编译 make
5、编译测试 make test
注意以上编译过程都无错误发生才可进行下一步,否则需要删掉整个build文件夹,解决错误,重新编译。
6、编译安装make install (默认安装需要su权限)
7、编写modulefile
在modulefiles文件夹中新建 superLU文件夹,新建5.3.0文件并写入以下内容。
#%Moduleproc ModulesHelp { } {
puts stderr " This module loads SuperLU version 5.3.0"
puts stderr " into your local environment."
}module-whatis "module for SuperLU 5.3.0"conflict superluif { ![ is-loaded superlu/5.3.0 ] } {module load "superlu/5.3.0"
}prepend-path "LD_LIBRARY_PATH" "/opt/apps/superLU/5.3.0/lib64"
prepend-path "LIBRARY_PATH" "/opt/apps/superLU/5.3.0/lib64"prepend-path "CPATH" "/opt/apps/superLU/5.3.0/include"prepend-path "CMAKE_PREFIX_PATH" "/opt/apps/superLU/5.3.0"
安装Cunit
官网:CUnit Home
wget https://udomain.dl.sourceforge.net/project/cunit/CUnit/2.1-3/CUnit-2.1-3.tar.bz2
1、解压 tar -xjf CUnit-2.1-3.tar.bz2
2、进入解压文件夹 cd CUnit-2.1-3/
3、mv configure.in configure.ac
4、aclocal
5、autoconf
6、autoheader
7、libtoolize
部分文章将libtoolize放在automake之后,会导致automake步骤时出现无法找到ltmain.h等问题。
8、automake --add-missing
9、autoconf
10、automake
11、./configure --prefix=/opt/apps/cunit/2.1.3
12、make
注意以上编译过程都无错误发生才可进行下一步,否则需要删掉整个解压文件夹,解决错误后重新编译。
13、make instal
14、编写modulefile
在modulefiles文件夹中新建 cunit 文件夹,新建2.1.3文件并写入以下内容。
#%Moduleproc ModulesHelp { } {
puts stderr " This module loads CUnit version 2.1.3"
puts stderr " into your local environment."
}module-whatis "module for CUnit 2.1.3"conflict cunitprepend-path "LD_LIBRARY_PATH" "/opt/apps/cunit/2.1.3/lib"
prepend-path "LIBRARY_PATH" "/opt/apps/cunit/2.1.3/lib"prepend-path "CPATH" "/opt/apps/cunit/2.1.3/include"prepend-path "CMAKE_PREFIX_PATH" "/opt/apps/cunit/2.1.3"
安装BLAS
官网https://www.netlib.org/blas/
wget http://www.netlib.org/blas/blas-3.10.0.tgz
1、解压tar -zxvf blas-3.10.0.tgz
2、进入文件夹cd BLAS-3.10.0/
3、make
默认生成文件blas$(PLAT).a,可修改make.inc把文件名修改成libblas.a,将生成文件移动至/opt/apps/blas/3.10.0文件夹中。
4、编写modulefile
在modulefiles文件夹中新建 BLAS文件夹,新建3.10.0文件并写入以下内容。
#%Moduleproc ModulesHelp { } {
puts stderr " This module loads BLAS version 3.10.0"
puts stderr " into your local environment."
}module-whatis "module for BLAS 3.10.0"conflict blasprepend-path "LD_LIBRARY_PATH" "/opt/apps/blas/3.10.0/lib"
prepend-path "LIBRARY_PATH" "/opt/apps/blas/3.10.0/lib"prepend-path "CMAKE_PREFIX_PATH" "/opt/apps/blas/3.10.0"
安装YAML
1、tar -zxvf yaml-0.1.4.tar.gz
2、cd yaml-0.1.4/
3、./configure --prefix=/opt/apps/yaml/0.1.
4、make
5、make install
6、编写modulefile
在modulefiles文件夹中新建 yaml文件夹,新建0.1.4文件并写入以下内容。
#%Moduleproc ModulesHelp { } {
puts stderr " This module loads yaml version 0.1.4"
puts stderr " into your local environment."
}module-whatis "module for yaml 0.1.4"conflict yamlprepend-path "LD_LIBRARY_PATH" "/opt/apps/yaml/0.1.4/lib"
prepend-path "LIBRARY_PATH" "/opt/apps/yaml/0.1.4/lib"prepend-path "CMAKE_PREFIX_PATH" "/opt/apps/yaml/0.1.4"prepend-path "CPATH" "/opt/apps/yaml/0.1.4/include"
步骤二 安装GRASP
1、cd /data/sjzhou/
2、unzip GRASP.zip
3、cd GRASP/grasp-master/
4、修改makefile prefix指定当前用户目录
5、module list
6、module avail
7、module load yaml/0.1.4 cunit/2.1.3 superlu/5.3.0 zlib/1.2.11
8、make
9、make install
10、cd workspace/grasp/
11、./grasp
这篇关于SuperLU、BLAS、CUnit、YAML编译安装教程,使用Environment Modulefile管理版本的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!