当前位置: 首页 > news >正文

Linux下编译安装PETSc

本文记录在Linux编译安装PETSc的流程。

1 下载代码

git clone https://gitlab.com/petsc/petsc.git
cd ./petsc
git checkout v3.21.4

2. 安装依赖

3 PETSc Without MPI

3.1 Build using GNU Compiler Collection

  3.1.1 配置
export PETSC_ARCH=gnu-debug-dto 
python3 ./configure --prefix=/data/3rdparty/gnu-debug-dto --with-debugging=1 --with-cc=gcc --with-cxx=g++ --with-fc=gfortran --with-openmp=1 --with-mpi=0 

注:--with-64-bit-indices=true,可用于设置采用64位整数索引 。

3.1.2 编译安装
make PETSC_DIR=/data/3rdparty/petsc PETSC_ARCH=gnu-debug-dto all
make PETSC_DIR=/data/3rdparty/petsc PETSC_ARCH=gnu-debug-dto install
make PETSC_DIR=/data/3rdparty/petsc PETSC_ARCH=gnu-debug-dto check

3.2 Build using Intel(R) oneAPI DPC++/C++ Compiler

  3.2.1 配置
export PETSC_ARCH=intel-opt-dto 
python3 ./configure  --prefix=/data/3rdparty/intel-opt-dto --with-debugging=0 --with-cc=icx --with-cxx=icpx --with-fc=ifort --with-openmp=1 --with-mpi=0 --with-blaslapack-dir= /opt/intel/oneapi/mkl/latest/ 

注:--with-64-bit-indices=true,可用于设置采用64位整数索引 。

  3.2.2 编译安装
make PETSC_DIR=/data/3rdparty/petsc PETSC_ARCH=intel-opt-dto all
make PETSC_DIR=/data/3rdparty/petsc PETSC_ARCH=intel-opt-dto install
make PETSC_DIR=/data/3rdparty/petsc PETSC_ARCH=intel-opt-dto check

4 PETSc With MPI

附录I:Find PETSc for CMake

FindPETSC.cmake

附录II:VS Code配置

  • CMake Kits

编辑'~/.local/share/CMakeTools/cmake-tools-kits.json'或者'.vscode/cmake-kits.json',如下

[{"name": "GCC 11.4.0 x86_64-linux-gnu","compilers": {"C": "/usr/bin/gcc","CXX": "/usr/bin/g++"},"isTrusted": true},{"name": "Intel(R) oneAPI DPC++/C++ Compiler 2024.0.2","compilers": {"C": "/opt/intel/oneapi/compiler/latest/bin/icx","CXX": "/opt/intel/oneapi/compiler/latest/bin/icpx"},"isTrusted": true}  
]

参考资料

PETScicon-default.png?t=N7T8https://petsc.org/release/

Using the ILP64 Interface vs. LP64 Interfaceicon-default.png?t=N7T8https://www.intel.com/content/www/us/en/docs/onemkl/developer-guide-windows/2023-0/using-the-ilp64-interface-vs-lp64-interface.html

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 【生命之树】
  • GLM大模型 - CogVideoX:5B 开源,2B 转为 Apache 协议
  • nginx实验
  • C++ 多线程(互斥锁、条件变量)
  • SQL server 2008 获取当前年,季度 和月的最后一天
  • 游戏开发设计模式之装饰模式
  • Java新版主要特性|2024年最后一个版本即将到来
  • DataWhale AI夏令营 2024大运河杯-数据开发应用创新赛-task2
  • 源代码防泄露迎来信创时代:信创沙箱
  • 数据分析之Python对数据分组排序
  • TESSY创建单元测试或集成测试工程
  • 基于NNG的六种通信模式
  • 【运维类】信息化项目运维方案(word)
  • day44——C++对C的扩充
  • Spring(面试篇)
  • 分享一款快速APP功能测试工具
  • 【108天】Java——《Head First Java》笔记(第1-4章)
  • 【162天】黑马程序员27天视频学习笔记【Day02-上】
  • C# 免费离线人脸识别 2.0 Demo
  • Git学习与使用心得(1)—— 初始化
  • Java应用性能调优
  • JAVA之继承和多态
  • PHP那些事儿
  • Ruby 2.x 源代码分析:扩展 概述
  • SAP云平台里Global Account和Sub Account的关系
  • 当SetTimeout遇到了字符串
  • 干货 | 以太坊Mist负责人教你建立无服务器应用
  • 讲清楚之javascript作用域
  • 码农张的Bug人生 - 见面之礼
  • 猫头鹰的深夜翻译:JDK9 NotNullOrElse方法
  • 名企6年Java程序员的工作总结,写给在迷茫中的你!
  • 前端技术周刊 2019-02-11 Serverless
  • 微信小程序实战练习(仿五洲到家微信版)
  • 小程序 setData 学问多
  • 一个6年java程序员的工作感悟,写给还在迷茫的你
  • 阿里云API、SDK和CLI应用实践方案
  • ​​​​​​​GitLab 之 GitLab-Runner 安装,配置与问题汇总
  • ​决定德拉瓦州地区版图的关键历史事件
  • ​如何在iOS手机上查看应用日志
  • #git 撤消对文件的更改
  • #Linux(权限管理)
  • $(this) 和 this 关键字在 jQuery 中有何不同?
  • $.each()与$(selector).each()
  • $forceUpdate()函数
  • $分析了六十多年间100万字的政府工作报告,我看到了这样的变迁
  • (1)SpringCloud 整合Python
  • (2)(2.10) LTM telemetry
  • (C语言)球球大作战
  • (el-Transfer)操作(不使用 ts):Element-plus 中 Select 组件动态设置 options 值需求的解决过程
  • (第9篇)大数据的的超级应用——数据挖掘-推荐系统
  • (多级缓存)多级缓存
  • (二)延时任务篇——通过redis的key监听,实现延迟任务实战
  • (附源码)springboot 基于HTML5的个人网页的网站设计与实现 毕业设计 031623
  • (力扣题库)跳跃游戏II(c++)
  • (七)Knockout 创建自定义绑定