欢迎光临散文网 会员登陆 & 注册

PETSc在Windows上的安装与测试

2023-07-03 15:45 作者:繁花至夏  | 我要投稿

高大上的代数求解库(冰山一角)PETSc在Linux上的安装已经有不少大佬在网上分享了,但在Windows上怎么装却没有较为新进的教程,这里我就分享下近期“摸爬滚打”之后成功安装的经验。

前置环境配置

Visual Studio

2019或2022版的,自己整。

MPI

PETSc支持MPI、OpenMP、异构等不同的并行实现方式,但按照官方说法,其对MPI的支持还是相对更完善的,PETSc并行上手的话也是以MPI并行开始的,所以先配置好MPI环境。这里选择Intel的MPI(而不是MS-MPI,别问,问就是踩过坑)。

Intel oneAPI工具包界面

把这俩下载了,先安装上面的基础包,再安装下面的高性能计算包,安装路径不要有中文,也(最好)不要有空格。记住你的安装路径。

Cygwin

接下来就是Cygwin了,bing一下到官网下载:

这玩意只是一个安装向导

Cygwin的后续配置网上可以找到一大堆,但为了安装PETSc,我们必须确保安装了Python3和make:

我这里已经下载了所以是保留,没下载过就是下拉选择安装,make同理

下载完后打开一下Cygwin,它会自动配置本地文件,然后关掉。

PETSc的安装

  • 首先去PETSc官网下载压缩包,然后解压。

  • 然后以管理员身份启动Intel oneAPI command prompt for Intel 64 for Visual Studio 2022/2019

  • 命令行输入icl,看看是否识别此命令

  • 上一步icl有反应的话,输入mintty的路径,如D:/Cygwin/Bin/mintty

  • 正常情况下就会有一个窗口弹出来,然后按照这个视频

  • 注意啦,在configure的时候,这么输入

    --prefix=/cygdrive/(你想要的windows路径) --with-cc-std-c99='win32fe icl' --with-fc=ifort --with-cxx-std-c++11='win32fe icl' --download-fblaslapack --with-shared-libraries=0 --with-mpi-include=/cygdrive/(mpi包含路径) --with-mpi-lib=/cygdrive/(mpi库路径) --with-mpiexec=/cygdrive/(mpiexec所在路径) 

那么这些路径怎么找呢,在Intel oneAPI command prompt里用命令wheris搜索,比如说mpicc,他就会打印:

我的mpicc路径

那么include、lib、mpiexec路径就是

/cygdrive/d/Intel/oneAPI/mpi/2021.9.0/Include

/cygdrive/d/Intel/oneAPI/mpi/2021.9.0/lib/release/impi.lib

/cygdrive/d/Intel/oneAPI/mpi/2021.9.0/bin/mpiexec

后面就按提示做就行。(顺带一提,这么做最后的PETSc是release版的)

基于Visual Studio的官方算例测试

先配置好环境和指令(也可以生成exe文件再手动输入),看图(petsc的路径取决于你的prefix),编译器要选成Intel的,工程右键菜单有个compiler的选项,看自己喜好选。

包含头文件路径
库路径
具体的依赖库
添加CRT_SECURE_NO_WARNINGS,把Runtime Library改为MT
Debug指令,我这里是4个进程

另外就是,PETSc是c语言写的,相关文件如果是.cpp后缀的话编译器会不认一些C的东西,所以建议使用.c。(extern "C"应该也成,没试过。)

不出意外的话,就可以运行了。

PETSc在Windows上的安装与测试的评论 (共 条)

分享到微博请遵守国家法律