科学计算软件工具
文章平均质量分 89
东北豆子哥
多年HPC开发经验,熟悉多线程、集群分布式、GPU高性能开发技术,熟悉C/C++, Fortran, CUDA,Python,Matlab等开发工具语言;数年油气地震资料成像开发经验;数年CAE工业软件开发经验
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
SLURM: sbatch的hint参数介绍和解释
参数用于向调度器提供关于 CPU 资源绑定(CPU affinity)或硬件特性的提示,帮助 Slurm 更智能地分配计算资源,尤其是在多核、NUMA 或异构架构系统中。是 Slurm 作业调度系统中用于提交批处理作业的命令。是互斥的,不能同时指定。原创 2026-01-03 19:51:46 · 668 阅读 · 0 评论 -
数值计算: FMA浮点数指令介绍
维度传统 MUL+ADDFMA舍入次数2 次1 次(精度更高)指令数≥21吞吐量较低高(尤其向量化时)适用场景通用HPC、AI、数值敏感计算控制方式默认行为需显式调用或编译器优化✅建议:在高性能数值计算中,主动利用 FMA(通过std::fma或编译器优化),但需验证数值稳定性;在要求严格可重现性时,注意跨平台一致性。原创 2026-01-03 10:23:56 · 380 阅读 · 0 评论 -
数值计算: 浮点数计算一致性介绍和解释
计算机浮点数计算的一致性(floating-point reproducibility)是一个在科学计算、数值模拟、金融建模和机器学习等领域高度关注的问题。以下从原理、原因和应对策略三方面进行系统性介绍。等多种因素影响,从而导致。的计算在不同环境下产生。原创 2026-01-03 10:13:31 · 594 阅读 · 0 评论 -
数值计算: IEEE754浮点数
一个浮点数包括三部分: 符号部分(Sign)、指数部分(Exponent)、分数部分(Fraction)一些特殊双精度数(调用std::numeric_limits<double>获取)一些特殊单精度数(调用std::numeric_limits<float>获取)原创 2026-01-03 10:09:19 · 1257 阅读 · 0 评论 -
SLURM: sbatch脚本调试
目标方法验证参数是否合法(不提交)查看实际生效的 Slurm 环境变量提交一个的轻量作业调试脚本中的参数在脚本中加入和env。原创 2026-01-03 09:39:08 · 621 阅读 · 0 评论 -
MPI: PMIx标准化进程管理接口
现代 MPI 实现(如 Open MPI ≥ v4.0、MPICH ≥ v4.0)默认通过 PMIx 获取作业信息,无需用户干预。PMIx(Process Management Interface for Exascale)是一个为。(如 MPI 实现、OpenSHMEM、任务调度器等)之间提供统一、可扩展、高效的通信机制。注意:Open MPI 默认已编译 PMIx 支持;)会在作业启动时自动与 PMIx 服务通信。(特别是 Exascale 级别)设计的。(如 Slurm、PBS、LSF)与。原创 2026-01-03 08:10:45 · 539 阅读 · 0 评论 -
MuJoCo: 开源的高性能物理仿真引擎
MuJoCo 的设计理念不仅是“更好的仿真器”,更是。的研究与开发领域而设计,广泛应用于。原创 2025-12-26 19:45:33 · 879 阅读 · 0 评论 -
Simbody: C++ 多体动力学(Multibody Dynamics)与物理仿真库
如果你有具体应用场景(如机器人仿真、人体步态、车辆悬架等),可以进一步探讨如何用 Simbody 建模。项目的一部分,广泛用于科研、教育以及开源仿真项目(如。Simbody 使用。原创 2025-12-26 19:22:00 · 945 阅读 · 0 评论 -
High Performance Computing Center North(HPC2N),瑞典超算中心
该中心依托瑞典北部的高校与研究机构合作建立,旨在聚合区域优势资源,为全国科研与产业用户提供先进的计算基础设施与专业技术支持。,即“高性能计算中心北区”,是瑞典国家级的高性能计算(HPC)中心,位于瑞典北部,由多所大学和研究机构联合组成。的应用场景,反映了现代科研对多样高性能计算资源的需求。HPC2N 支持的计算应用不仅包括传统的。原创 2025-12-13 16:53:54 · 228 阅读 · 0 评论 -
OpenCFS: 多物理场有限元仿真框架
(Open Computational Field Simulation)是一个开源的多物理场有限元仿真框架,主要用于求解耦合的偏微分方程系统,特别适用于。若需从源码编译 PETSc/SLEPc(推荐以获得最佳兼容性),请参考 OpenCFS 官方文档。OpenCFS 主要面向 Linux 开发环境,官方提供 CMake 构建系统。,如:电磁生热 → 热膨胀 → 结构变形。编译后生成可执行文件。原创 2025-12-12 17:21:16 · 962 阅读 · 0 评论 -
CFD: HORSES3D/HORSES3D_GPU高性能多物理场复杂流体求解器
是一个由西班牙马德里理工大学(UPM)NUMATH 团队开发的开源高性能多物理场求解器,采用。编写,专为求解复杂流体问题而设计。它支持多种物理模型和先进的数值方法,适用于科研和工程模拟。原创 2025-12-12 10:47:15 · 922 阅读 · 0 评论 -
CFD: NASA OVERFLOW(Overset Grid Solver for Flow Simulation)流体仿真求解器
(Overset Grid Solver for Flow Simulation)是由美国国家航空航天局(NASA)开发的一套。,OVERFLOW 是业界标杆工具之一。若受限于获取权限,可考虑研究其文献方法并在。流场,广泛应用于航空航天领域的气动分析和设计。,主要用于模拟复杂几何外形周围的。原创 2025-12-12 10:23:40 · 735 阅读 · 0 评论 -
CFD: 曲线坐标网格(Curvilinear Grids)资料
是一种广泛用于复杂几何外形模拟的网格类型,尤其适用于贴体(body-fitted)求解。与结构化直角坐标网格不同,曲线坐标网格通过坐标变换将物理域中的复杂边界映射到计算域中的规则矩形(或立方体)区域,从而便于使用高精度的有限差分或有限体积方法。在计算流体力学(CFD)中,原创 2025-12-12 10:21:06 · 473 阅读 · 0 评论 -
iFEM: Matlab有限元工具
是由加州大学欧文分校(UCI)的 Long Chen 教授开发的一个 MATLAB 有限元方法工具包,专注于 自适应有限元方法(Adaptive Finite Element Methods, AFEM)在二维和三维非结构化单纯形网格(三角形/四面体)上的实现。该工具包以 代码简洁、高效、易读 为设计目标,并引入了一种名为 “稀疏矩阵化”(sparse matrixlization)的创新 MATLAB 编程风格,通过大量使用 MATLAB 的稀疏矩阵及其运算来提升计算效率。https://lyc102.g原创 2025-12-11 16:28:29 · 505 阅读 · 0 评论 -
CPU跳转指令的时钟开销
跳转类型预测成功开销预测失败开销无条件直接跳转~0 周期不适用条件跳转(预测正确)~0 周期条件跳转(预测错误)10~20 周期在高性能代码中(如 HPC、数值模拟),避免不可预测的分支是关键优化方向(例如用查表、位运算、SIMD 掩码替代条件跳转)。原创 2025-12-10 17:52:26 · 235 阅读 · 0 评论 -
Chrono: multiphysics and multibody dynamics simulations多物理场仿真
它由 Project Chrono 社区维护,广泛应用于学术界、工业界和政府机构的科研与工程仿真任务中。可在机器人或自动驾驶仿真中添加 3D LiDAR,并输出点云数据,配合 ROS2 发布。是一个开源、跨平台的多物理场仿真软件包,采用。原创 2025-12-10 14:36:45 · 878 阅读 · 0 评论 -
AMGX: structure_reuse_levels字段设置和使用
相关的重要参数,用于控制在多次求解过程中如何重用 AMG 层次结构(hierarchy)。如需结合具体代码示例(如多时间步求解或与 PETSc 集成),可进一步说明使用环境。(例如时间推进中的隐式求解)时,重复构建这个结构将带来不必要的开销。的情况下,才应启用结构重用。否则可能导致数值错误或求解失败。⚠️ 重要:如果矩阵结构(即非零元的位置)发生变化,必须。(包括粗化策略、插值算子、粗网格矩阵等)。AMG 方法的核心在于构建一个从细网格到粗网格的。以明确启用矩阵结构重用。原创 2025-12-10 12:27:56 · 257 阅读 · 0 评论 -
SLURM: Job Array(作业数组)
配置项作用范围说明整个作业数组定义子任务 ID 范围每个子任务每个 task 的 CPU 数--mem每个子任务内存请求--nodes每个子任务每个 task 强制使用 N 个完整节点(慎用)%K(如整个数组最多 K 个 task 同时运行。原创 2025-12-08 17:00:59 · 1162 阅读 · 0 评论 -
MATLAB: BVP边值问题求解器bvp4c和bvp5c
y: 解向量,p: 未知参数(可选)end% 必须为零向量end。原创 2025-12-07 08:05:18 · 815 阅读 · 0 评论 -
准随机采样,样本生成
Halton 序列基于不同质数的Van der Corput 序列构造。简单、易于实现。缺点:高维时会出现相关性和聚集现象(尤其当维度 > 20)。对于 N < 100 的高维函数采样,使用 Sobol 准随机序列代替纯随机采样,可在保持实现简单的同时,显著提升采样效率与结果稳定性,特别适用于代理建模、全局敏感性分析、不确定性量化等任务。原创 2025-12-05 11:13:12 · 997 阅读 · 0 评论 -
Hyper-Threading(超线程,HT)技术介绍和应用场景
应用类型是否建议开启 HT计算密集 + 低内存压力可能无收益,可关闭内存访问密集(尤其大容量、非局部)通常不建议开启I/O 密集 / 轻量线程 / 混合负载建议开启实时/低延迟系统建议关闭最佳实践实测!在目标硬件和典型负载下对比 HT 开启/关闭的性能(如运行时间、IPC、内存带宽利用率),再做决策。如你使用 Intel OneAPI 或 MPI+OpenMP 混合并行,可配合或OMP_PLACES控制线程绑定,避免逻辑核心冲突。原创 2025-12-05 09:31:02 · 994 阅读 · 0 评论 -
CFD: 施加参考压力(reference pressure)
方法适用场景优点缺点固定某点压力有 Dirichlet 边界或可选参考点简单、通用可能引入局部扰动零均值约束全 Neumann / 周期边界物理对称性好需求解器支持迭代投影辅助手段无侵入性不能单独保证收敛。原创 2025-12-05 07:18:01 · 901 阅读 · 0 评论 -
Overture:面向对象的 C++ 软件框架,复杂几何(包括运动几何)求解PDE
它由一系列可移植、模块化的 C++ 库组成,适用于使用。:整个框架以库的形式提供,可灵活集成到新项目或已有代码中。:支持与非结构化网格耦合,用于多尺度或多物理场问题。这些求解器均为开源,可直接使用或作为开发模板。:提供从 CAD 几何自动构建计算网格的能力。,使开发者能更专注于物理建模与算法逻辑。(FVM)进行数值模拟的场景,同时。Overture 之上构建了名为。Overture 是一个。原创 2025-12-03 09:34:25 · 521 阅读 · 0 评论 -
LLNL/SAMRAI:介绍,核心概念
SAMRAI(Structured Adaptive Mesh Refinement Application Infrastructure)是由劳伦斯利弗莫尔国家实验室(Lawrence Livermore National Laboratory, LLNL)开发的一套用于构建结构化自适应网格细化(Structured AMR)应用程序的 C++ 软件框架。它广泛应用于大规模科学计算领域,如计算流体力学(CFD)、燃烧模拟、天体物理、材料科学等,特别适用于需要高分辨率局部区域和高效并行计算的问题。原创 2025-12-02 11:34:42 · 811 阅读 · 0 评论 -
Chombo:AMR结构化网格PDE求解框架介绍
特性说明结构化网格仅支持矩形块(Box),不支持非结构网格AMR 支持强大,但也可完全关闭用于静态网格并行能力基于 MPI + domain decomposition数据布局是核心容器I/O支持 HDF5 格式输出(通过语言C++(模板-heavy,需熟悉 RAII 和句柄模式)原创 2025-12-02 10:30:59 · 920 阅读 · 0 评论 -
Parthenon: AMR框架介绍
使用。原创 2025-12-01 16:03:46 · 896 阅读 · 0 评论 -
CPU的Superscalar技术和利用
Scalar CPU:每个周期最多执行一条指令。:每个周期可以取指、译码、发射并执行多条独立指令(例如 4 条、6 条甚至更多),前提是这些指令之间没有数据/控制/资源依赖。注意:不要与超线程(Hyper-Threading)混淆。Superscalar 是指单线程内并行执行多条指令;超线程是在一个物理核上模拟多个逻辑核,同时运行多个线程。目标方法提高 ILP减少依赖、增加独立操作、循环展开避免停顿分支预测友好、减少 cache miss利用硬件依赖 OoOE、寄存器重命名、多发射单元。原创 2025-11-29 20:27:56 · 1291 阅读 · 0 评论 -
CPU分支预测和利用
原则说明减少分支用无分支逻辑或向量化替代提高可预测性让分支倾向某一方向,或排序数据避免随机跳转尤其在内层循环善用工具分析不要过度优化现代 CPU 预测器很强,盲目用可能适得其反。原创 2025-11-28 15:05:10 · 518 阅读 · 0 评论 -
Fortran: namelist(nml)介绍和使用
是一种用于读写程序输入/输出参数的便捷机制,特别适用于配置文件式的输入。它自 Fortran 77 起就存在,但在。:Fortran 2003 允许 namelist 中使用。输入,即 Fortran 默认存储顺序。访问派生类型的成员,结构清晰、可读性强。:二维及多维数组在 namelist 中。,极大地提高了灵活性和表达能力。在 Fortran 中,原创 2025-11-26 14:08:27 · 588 阅读 · 0 评论 -
巴塞罗那超级计算中心(Barcelona Supercomputing Center)介绍
采用 BSD、Apache 或 MIT 等宽松许可证,代码托管于 GitHub(如 https://github.com/bsc-pm、https://github.com/bsc-tools)。BSC 是欧洲高性能计算(HPC)领域的重要研究机构之一,隶属于西班牙国家研究委员会(CSIC)、加泰罗尼亚政府和 UPC 的三方合作。,部署于 2023 年底),在全球 Top500 排名中常年位居前列。)是西班牙国家级超级计算中心,成立于2005年,位于巴塞罗那的。BSC 不仅在硬件部署方面领先,还在。原创 2025-11-24 16:16:33 · 601 阅读 · 0 评论 -
FLASH(Fermilab–Lombardi–Astrophysics–Supernova–Hydrodynamics)仿真软件介绍
采用基于块结构(block-structured)的 AMR 算法(通常基于 PARAMESH 库),能够动态在关键区域(如激波、界面)加密网格,兼顾精度与效率。代码的第五代版本,是一个广泛应用于高能量密度物理(HEDP)、天体物理、惯性约束聚变(ICF)、计算流体动力学(CFD)等领域的。包含可视化工具(如 yt、VisIt 兼容)、分析脚本(Python/MATLAB)、单元测试、性能剖析支持等。支持流体动力学(HD)、磁流体动力学(MHD)、辐射输运、核反应网络、自引力、热传导、粘性等多种物理过程。原创 2025-11-24 15:19:53 · 1061 阅读 · 0 评论 -
Ralf Deiterding博士介绍
他目前是德国航空航天中心(Deutsches Zentrum für Luft- und Raumfahrt, DLR)的研究员,此前曾在多个国际知名研究机构工作,包括美国国家航空航天局(NASA)艾姆斯研究中心(Ames Research Center)。(Adaptive Mesh Refinement in Object-oriented C++)框架,这是一个基于面向对象 C++ 的 AMR 软件平台,支持多物理场、多尺度问题的并行求解。他的工作常涉及处理包含数亿甚至数十亿网格单元的问题。原创 2025-11-24 14:14:18 · 390 阅读 · 0 评论 -
接触力学中的Mortar算法介绍和使用
Mortar 方法是一种用于求解接触力学、多域耦合或非匹配网格耦合问题的数值技术,其核心思想是通过拉格朗日乘子或罚函数在界面(接触面)上强制满足位移连续性或力平衡条件,从而允许不同区域使用独立的、非协调的网格。在接触力学中,Mortar 方法的优势在于:其基本流程包括:以下是可用于学习和研究 Mortar 方法的开源项目与资源:原创 2025-11-21 10:58:42 · 358 阅读 · 0 评论 -
FEMus多物理场有限元计算框架介绍
FEMus 是一个开源的有限元(Finite Element Method, FEM)计算框架,专为解决复杂的多物理场问题而设计,尤其适用于结构力学、流体力学和热传导等耦合问题的数值模拟。该项目由意大利都灵理工大学(Politecnico di Torino)的 FeMTTU 实验室开发和维护,其核心目标是提供一个高效、可扩展且易于使用的平台,用于研究和教学中的高性能有限元计算。格式,可用 Paraview 打开进行可视化。(如 Extrae、TAU、Tracy)、项目包含多个测试用例(位于。原创 2025-11-19 14:25:54 · 841 阅读 · 0 评论 -
SALOME数值模拟前后处理平台介绍
SALOME 是一个开源的数值模拟前后处理平台,广泛应用于工程仿真领域,尤其在结构力学、流体动力学、热传导等多物理场耦合仿真中具有重要地位。SALOME 采用高度模块化设计,核心平台提供统一的图形用户界面(GUI)和数据管理框架,而具体功能(如几何建模、网格生成、求解器接口、后处理)由独立插件实现。这种架构便于扩展和定制。支持与多种开源和商业求解器对接,如 Code_Aster(结构力学)、OpenFOAM(CFD)、CalculiX、GetDP 等,可通过模块化接口提交作业、读取结果。原创 2025-11-19 14:15:36 · 870 阅读 · 0 评论 -
Flotherm电子系统热仿真软件介绍
Flotherm 是由 Mentor Graphics(现为 Siemens EDA 旗下产品)开发的一款专业三维电子系统热仿真软件,广泛应用于电子设备的热设计与热管理分析,如 PCB、芯片封装、机箱、服务器、通信设备和汽车电子等。Flotherm 针对电子元器件的几何特征(如芯片、散热器、风扇、PCB 板、导热垫等)进行了高度优化,支持精确建模复杂电子系统的热传导、对流和辐射传热。提供设计优化功能,支持自动参数扫描、响应面分析和遗传算法,帮助用户快速找到最优散热方案(如风扇转速、散热器尺寸、布局调整)。原创 2025-11-10 14:52:46 · 452 阅读 · 0 评论 -
Timsort排序算法介绍和使用
Timsort 是现代编程语言中主流的排序算法,因其在真实数据上的卓越表现而被广泛采用。在 C++ 中,虽然标准库未直接实现,但是其最接近的替代方案。若需更高性能或并行支持,可结合 Boost、自定义实现或你熟悉的 MPI/OpenMP 技术进行优化。原创 2025-11-08 23:34:28 · 850 阅读 · 0 评论 -
C++: nanobench微基准测试工具介绍和使用
是一个轻量级、header-only 的 C++ 微基准测试(microbenchmarking)库,旨在提供一种简单、精确且可移植的方式来测量和比较小代码段的性能。可以是一个非常有用的工具,用于快速比较不同算法、数据结构或代码优化的性能差异,尤其是在 C++ 环境下。方法,它接受一个描述字符串和一个 lambda 或函数对象,其中包含你想要测试的代码。放在你的项目目录中,并在需要进行性能测试的源文件中包含它。提供了多种方法来控制基准测试的行为。这些参数可以链式调用,以灵活地配置你的基准测试。原创 2025-11-08 15:20:17 · 819 阅读 · 0 评论 -
Julia介绍和使用
Julia 是一种高性能、动态的编程语言,专为科学计算、数值分析、数据科学和机器学习而设计。它结合了高级语言(如 Python 或 MATLAB)的易用性与低级语言(如 C 或 Fortran)的执行速度,特别适合高性能计算和并行处理任务。原创 2025-11-07 14:14:13 · 669 阅读 · 0 评论 -
PETSc: 使用AMGX做预处理器
截至最新版 PETSc(如 3.20+,2024–2025 年间版本),PETSc。然后构建 PETSc。原创 2025-11-04 18:53:14 · 415 阅读 · 1 评论
分享