当前位置:首页 > 其他 > 正文内容

Ubuntu下装备装置Sundials微分方程求解器

邻居的猫1个月前 (12-09)其他1106

Chapter 1 获取Sundials及装置环境装备
Section 1.1 获取Sundials
(1) Linux体系下运用指令git clone https://github.com/LLNL/sundials从github获取Sundials库房,或许转到[https://github.com/LLNL/sundials]下载对应的压缩文件。

(2) 从SUNDIALS发行网页[https://computing.llnl.gov/projects/sundials/sundials-software]下载压缩文件。以Sundials-7.1.1版别为例,下载后对应的压缩包名称为> sundials-7.1.1.tar.gz。

Section 1.2 Linux下Sundials运转环境装备
Sundials支撑C++,C,Fortran串行或并行计算,也支撑Cuda并行。要运用Sundials完结串行或并行计算有必要对运转环境进行装备,对应的,假如需求运用第三方库,也需求提早装置好第三方库文件。以串行,openmp并行,mpi并行,第三方库以lapack(有必要一起装置blas)和Suitesparse库为例进行环境装备。
(1) 首要用指令sudo apt install gcc gfortran 装置gcc,gfortran(或Intel-fortran).假如运用Intel-fortran,则转到[https://www.intel.cn/content/www/cn/zh/developer/tools/oneapi/hpc-toolkit-download.html?operatingsystem=linux&linux-install-type=offline]下载Linux版的HPC Toolkit装置即可。HPC装置今后在.bashrc文件中设置其环境变量。增加结束后source .bashrc更新环境变量。


假如装置了Intel-Hpc-toolkit,那么也主动包含了mpi并行库,后续无需别的装置mpi库。假如装置的是gfortran,还需求装置openmpi以完结mpi并行。
从openmpi官网[https://www.open-mpi.org/software/ompi/v5.0/]下载对应的压缩文件。

下载后解压tar -xvzf openmpi-xxx.tar.gz,解压后cd openmpi-xxx,然后装备./configure --prefix=/path/to/openmpi(留意记住这儿的装置途径),接着编译sudo make和装置sudo make install。装置完结后增加环境变量。

(2) lapack和blas库直接sudo apt-get install libblas-dev liblapack-dev装置;Suitesparse库sudo apt-get install libsuitesparse-dev装置;装置好suitesparse库后增加到环境变量中。

完结上述装备后开端Sundials装置。
Chapter 2 Sundials装置
Sundials详细装置进程能够参阅其运用阐明书,以下进程与阐明书中进程相似。
Linux下SUNDIALS 构建需求运用3.18.0版别以上的CMake和gcc编译器,运用以下指令对CMake进行装置:
sudo apt install cmake cmake-qt-gui cmake-curses-gui
Win体系需求CMakeSetup(CMake.exe)和Visual Studio。
指令行tar -xvzf sundials-7.1.1.tar.gz解压下载好的> sundials-7.1.1.tar.gz,假如是git直接下载的目录则不必解压。

Cmake构建时不要在解压后的文件夹如上图中> sundials-7.1.1中直接构建,这会污染源代码。能够在家目录下创立一个sundials目录,在该文件夹内再创立builtdir和instdir及examples目录.builtdir是构建sundials的目录,instdir是构建sundials导出的头文件和库文件的目录,examples是存储测验程序的目录。

进入builtdir目录运用指令 ccmake /home/xinhua/Down loads/sundials-7.1.1后回车。

按> c键开端装备。之后会有如下选项:



以上选项均为默许选项,变量详细含义能够参阅Sundials装置阐明书。这儿只提我自己修正的部分有(按> e能够修正变量):
(1)BENCHMARKS_INSTALL_PATH=/home/.../sundials/benchmarks
(2)BUILD_FORTRAN_MODULE_INTERFACE=ON
(3)CMAKE_C_EXTENSIONS=OFF
(4)CMAKE_INSTALL_PREFIX=/home/.../sundials/instdir
(5)ENABLE_KLU=ON
(6)ENABLE_LAPACK=ON
(7)ENABLE_MPI=ON
(8)ENABLE_OPENMP=ON
(9)EXAMPLES_INSTALL_PATH=/home/.../sundials/examples
(10)EXAMPLES_ENABLE_CXX=ON
变量修正好今后按> c重新装备,此刻检查装备日志有报错,

按> e回来,此刻呈现了新的变量值





我第2次修正的变量值有(变量值依照自己需求修正)
(1)CMAKE_CXX_EXTENSIONS=OFF
(2)F2003_FOUND=OFF
(3)KLU_INCLUDE_DIR=/usr/include/suitesparse
(4)KLU_LIBRARY_DIR=/usr/lib/x86_64-linux-gnu
(5)LAPACK_LIBRARIES=/usr/lib/x86_64-linux-gnu/lapack/liblapack.so;/usr/lib/x86_64-linux-gnu/blas/libblas.so
修正后按> c装备,此刻装备文件没有报错,装备正常完结。

装备完结后按> g生成,然后仍在builtdir目录下进行make,make进程中假如装备有过错,则make进程会中止,假如没有过错,则会正常构建。

接着make install装置进行装置,装置完结后即可开端测验。
Chapter 3 Sundials比如测验
以Cvode求解器为例,对C和Fortran串行和并行程序进行测验。

测验最好运用Cmake对源文件进行编译,直接用make有些比如无法编译。
C_mpimanyvector 测验:

C_openmp测验:

F2003_parallel测验:

CXX_parallel测验:

经过测验后,根本就能够对常微分方程组等进行并行或串行计算了。更多信息参阅Sundials阐明书。
创造不易,点赞重视支撑一下!

扫描二维码推送至手机访问。

版权声明:本文由51Blog发布,如需转载请注明出处。

本文链接:https://www.51blog.vip/?id=739

分享给朋友:

“Ubuntu下装备装置Sundials微分方程求解器” 的相关文章

LS-DYNA及高性能核算评测

LS-DYNA及高性能核算评测

LS-DYNA x86_64 二进制文件 大多数版别 - ifort + MKL 可在 Intel Xeon 和 AMD EPYC 芯片上运转 在两种芯片上经过相同的输入发生相同的显式成果 (关于隐式,MKL 需求特别的环境变量) 附加版别 AOCC + AOCL - 可在英特尔至强和 AMD EP...

noip2024

noip2024

NOIP2024 行记 考试之前一向有很多话想在行记里说,但考完后又不知道该说些什么。这六个月的集训韶光仿佛像一场梦一般。 怒砍\([60, 100] + 0 + 0 + 0\) 作为一个只学了不到一年的OIer, 我知道这不是理由,noip考爆破了,原本定的战略是稳切第一题,后边三题骗分,能混个省...

读数据维护:作业负载的可恢复性06备份的内容

读数据维护:作业负载的可恢复性06备份的内容

1. 误解 1.1. RAID不需求备份 1.1.1. 运用冗余磁盘体系来保存数据,并不意味着不需求备份这些数据 1.1.2. RAID所能供给的冗余都是在硬件这一层面规划的 1.1.3. 之所以不能替代备份,其间一项重要的原因就在于:RAID维护的是卷,而不是卷里边的文件体系 1.2...

云计算是学什么的,云计算概述

云计算是学什么的,云计算概述

云计算是一门研究如何通过互联网将计算资源(如服务器、存储、网络等)按需分配给用户的技术和科学。它主要涉及以下几个方面:1. 虚拟化技术:虚拟化技术是云计算的基础,它允许在同一物理硬件上运行多个独立的操作系统和应用程序,从而提高资源利用率和灵活性。2. 分布式计算:分布式计算是指将任务分解成更小的部分...

云计算啥意思, 云计算是什么?

云计算啥意思, 云计算是什么?

云计算是一种基于互联网的计算方式,通过这种方式,共享的软硬件资源和信息可以按需提供给计算机和其他设备。云计算的核心思想是将大量用网络连接的计算资源统一管理和调度,构成一个计算资源池向用户按需服务。这种服务可以是IT和软件、互联网相关的,也可以是任意其他的服务。云计算通常涉及通过互联网来提供动态易扩展...

开源支付系统,构建灵活、安全的在线交易环境

1. Jeepay 特点:Jeepay 是一套适合互联网企业使用的开源支付系统,支持微信支付、支付宝、云闪付等多种支付渠道。使用 Spring Boot 和 Ant Design Vue 开发,提供 Docker 部署、接口市场、代码生成等功能,保证交易安全和高可用。 2. DaxPay...