PETSc(Portable, ExtensibleToolkit for Scientific Computation)科学计算可移植扩展工具包。
PETSc(Portable, Extensible Toolkit for Scientific Computation) 是美国能源部ODE2000支持开发的20多个ACTS工具箱之一,由Argonne国家实验室开发的可移植可扩展科学计算工具箱,主要用于在分布式存储环境高效求解偏微分方程组及相关问题。PETSc所有消息传递通信均采用MPI标准实现。
PETSc用C语言开发,遵循面向对象设计的基本特征,用户基于PETSc对象可以灵活开发应用程序。目前,PETSc支持Fortran 77/90、C和C++编写的串行和并行代码。
PETSc是系列软件和库的集合,三个基本组件SLES、SNES和TS本身基于BLAS、LAPACK、MPI 等库实现,同时为TAO、ADIC/ADIFOR、Matlab、ESI 等工具提供数据接口或互操作功能,并具有极好的可扩展性能。PETSc为用户提供了丰富的Krylov子空间迭代方法和预条件子,并提供错误检测、性能统计和图形打印等功能。
线性方程组求解器是PETSc的核心组件之一,PETSc几乎提供了所有求解线性方程组的高效求解器,既有串行求解也有并行求解,既有直接法求解也有迭代法求解。对于大规模线性方程组, PETSc提供了大量基于Krylov子空间方法和各种预条件子的成熟而有效的迭代方法,以及其他通用程序和用户程序的接口。PETSc具有一般库软件所具备的高性能、可移植等优点,而且面向对象技术使得PETSc内部功能部件的使用非常方便,接口简单而又适用面广,可以缩短开发周期,减少工作量。
如今,越来越多的应用程序在PETSc环境上开发,并逐渐显示出PETSc在高效求解大规模数值模拟问题方面的优势和威力。 --摘自百度
第一种方法只需要利用前面提到的矩阵和向量搭建 前面几篇博客提到了矩阵,向量的搭建,本人也介绍来求解任意大小的线性系统的方法,下面本人先介绍不调用Petsc任何有关的包的求解方法,为此先引入基本定义: − Δ u = f , x ∈ Ω = ( 0 , 1 ) 2 -\Delta u = f,x \in \Omega=(0,1)^2
前文讲到petsc两类基本数据对象(mat, vec)。而petsc的这两类数据对象默认都是按一维存储和创建的。实际pde问题,往往是2维或者3维的。故petsc内建一些映射函数,将默认的一维数据映射成逻辑上的多维数组。本文主要介绍向规则的2D数组映射的函数。 petsc中逻辑上的多维数组称为 "DA" ( distributed array), 创建一个2D DA
开始装的时候,偷懒用MKL,使用 ./configure --prefix=/public/software/petsc --with-blas-lib=/public/software/mathlib/mkl/libmkl_blas95_lp64.a --with-blas-lib=/public/software/mathlib/mkl/libmkl_lapack95_lp64.a 老报错,说
欧拉常数的计算 本人之前讲述过在虚拟机环境中安装Petsc,下面都默认在已经有虚拟机的情况运行。 e = ∑ n = 0 1 n ! e=\sum_{n=0}\frac{1}{n!} e=
1) MatSetType(A,MATAIJ); This causes the matrix A to used the compressed sparse row storage format to store the matrix entries. See MatType for a list of all matrix types. 2) DMSetSetFromOptions(DM dm
petsc 结构化数据使用 是今年初的认识。今天重新看 solving coupled nonlinear partial differential equations using petsc, 完善下。 1 Distributed Arrays(DA) -- when solving problems on logically regular rectangu
1. 前言 本文介绍了并行计算库的Hypre和Petsc的安装方法以及在线性系统求解中不同算法的性能测试,用于日后在不同系统上的Hypre和Petsc的安装需要和新型算法性能测试基准。程序安装运行环境为NVIDIA-dgx1,详细参数请见dgx1参数。本文将分为Hypre和Petsc两个部分,分别以总体介绍,安装,程序运行关键代码和在IEEE不同节点数据下性能测试的顺序介绍两款软件的使用。 2.
PETSc是一种可移植可扩展科学计算工具箱,它为大规模应用代码在并行(和串行)计算机上实现提供构造模块。PETSc对所有消息传递通讯均使用MPI标准。 官方的用户手册不怎么好用,下面的链接确实挺好 http://www.caspur.it/risorse/softappl/doc/petsc_docs/manualpages/singleindex.html http://www.m
新系统sudo apt-get install build-essential 一、PETSC-3.7.7 1. download PETSC-3.7.7 from http://www.mcs.anl.gov/petsc/documentation/installation.html 2. ./configure --download-mpich --download-fb
valgrind的安装 执行. pccompile #!/bin/bash export CC=gcc export CXX=g++ ./autogen.sh ./configure --prefix=/home/jrf/tools/valgrind --with-mpicc=mpicc make && make install PETSc的安装 PETSc和SLEPc安装的每一步完成后,都会给
1.问题描述 在使用draw命令或者其他命令画图时显示: [0]PETSC ERROR:PETSc installed without X windows or Microsoft Graphics on the machine 2. 处理步骤 首先要下载一个X windows,可以在terminal中下载,下载需要在root目录下进行操作,root可能有权限好像是不让操作或者访问(我遇到的问题)
1.1 为什么是Python? 1.1.1 科学家的需求 获得数据(模拟,实验控制) 操作及处理数据 可视化结果... 理解我们在做什么! 沟通结果:生成报告或出版物的图片,写报告 1.1.2 要求 对于经典的数学方法及基本的方法,有丰富的现成工具:我们不希望重新编写程序去画出曲线、傅立叶变换或者拟合算法。不要重复发明轮子! 易于学习:计算机科学不是我们的工作也不是我们的教育背景。我们想要在几分钟
Jupyter Notebooks 你可以按[shift] + [Enter]或按菜单中的“播放”按钮来运行单元格。 在function(后面按[shift] + [tab],可以获得函数或对象的帮助。 你还可以通过执行function?获得帮助。 NumPy 数组 操作numpy数组是 Python 机器学习(或者,实际上是任何类型的科学计算)的重要部分。 对大多数人来说,这可能是一个简短的回顾
Python 在科学计算上的应用非常广泛,包括数学、统计学、图形学……等等, 也是科学计算领域的首选编程语言之一。 这一部分的文章主要是介绍 Python 在科学计算领域常用的库,以及科学计算在日常中可能的实际用例。 常用库介绍 IPython 和 Jupyter Notebook NumPy NumPy 是 Python 科学计算生态系统的基础,提供了多维数组操作、线性代数运算、傅立叶变换等 多
Numpy 是 Python 科学工具栈的基础。它的目的很简单:在一个内存块上实现针对多个条目(items)的高效操作。了解它的工作细节有助于有效的使用它的灵活性,使用有用的快捷方式,基于它构建新的工作。
扩展工具为外业精灵提供的额外使用工具,这些工具可以提供一些更加便捷的功能,在后续的版本中会更新更多的工具提供使用。 实验室 点击主界面中左上方菜单图标可打开用户信息侧边栏,点击侧边栏中的设置图标可跳转至设置页面: 设置页面内,点击实验室选项可跳转至实验室页面。 实验室页面主要包含:路径规划模式、绘制点位吸附、标注名显示、地图缩放、电子罗盘、
apxs是一个为Apache HTTP服务器编译和安装扩展模块的工具,用于编译一个或多个源程序或目标代码文件为动态共享对象,使之可以用由mod_so提供的LoadModule指令在运行时加载到Apache服务器中。 因此,要使用这个扩展机制,你的平台必须支持DSO特性,而且Apache httpd必须内建了mod_so模块。apxs工具能自动探测是否具备这样的条件,你也可以自己用这个命令手动探测:
WebAssembly的二进制格式是被设计成可在不同操作系统与指令集上高效执行的,无论在Web或非Web环境中。 对高效执行的设想 尽管执行环境是有条件的,本地的,不确定的,也不要向WebAssembly提供下述特性。有些情况下为了WebAssembly模块执行,也许不得不模拟一些宿主硬件或操作系统不提供的特性,让它们似乎被支持。这种情况将会导致糟糕的性能。 随着WebAssembly的标准化推进
有时候你需要实现自己的集合扩展。也许你想要在元素被添加到列表时增加特定的行为,或者你想实现一个Iterable,其底层实际上是遍历数据库查询的结果集。Guava提供了若干工具方法,以便让类似的工作变得更简单。 Forwarding Decorators 针对所有类型的集合接口,Guava都提供了Forwarding抽象类以简化装饰者模式的使用。 Forwarding抽象类定义了一个抽象方法:del