【问题标题】:Which PETSc and MPI for Ubuntu on a dual-core system哪个 PETSc 和 MPI 用于双核系统上的 Ubuntu
【发布时间】:2010-09-28 04:38:25
【问题描述】:
我从事科学计算工作,并为多 CPU 系统开发基于 petsc 的应用程序。
出于调试目的,我想在我自己的电脑上安装那个软件,这是一个运行 Ubuntu (Karmic Koala) 的双核系统。
但我不知道要使用哪些资源。有 debian 软件包,以及网络上的源档案。我知道在编译和链接这些包的时候会有各种各样的问题,所以这个麻烦是我最想避免的!
我不关心性能(至少不是太多),因为我只会将这个软件用于调试,因此可用性对我来说是最重要的。
有人可以给点建议吗?
【问题讨论】:
标签:
ubuntu
mpi
scientific-computing
【解决方案1】:
如果存在本地(即 Ubuntu)包并且您没有任何特定理由不这样做,请使用它们。
【解决方案2】:
试试 CentOS。它基于 Red Hat Linux 并且是免费的。我们开发了科学的软件包,找到了方便调试和开发的环境。
【解决方案3】:
使用 Open MPI 或 MPICH2(从包管理器中获取),我更喜欢前者。如果你确定这个第三方项目的代码是坚如磐石的,那么你可以使用 Ubuntu 包,但是如果它大量使用 PETSc 并且你打算调试那个库,那么你应该在调试模式下构建你自己的 PETSc (仅打包版本优化)。
PETSc 仅在调试模式下进行大量完整性检查,包括
- 放置哨兵以检测客户端内存错误。
- 检查索引集是否已排序、不相交或排列。
- 跟踪堆栈,以便它可以在错误或信号(如 SEGV)上打印正确的堆栈跟踪 (
file:line function())。
- 记录内存,以便在程序退出时在摘要中打印泄漏内存的分配堆栈快照(类似于 valgrind,但速度快 1000 倍)。
如果您正在调试客户端代码,这将节省大量时间。现在构建 PETSc 非常简单,但如果您有问题,请咨询 petsc-maint@mcs.anl.gov(无需订阅)或发送邮件至 petsc-users@mcs.anl.gov。