在带有 Visual Studio 的 Windows 中使用 Trilinos 和/或 Petsc?

计算科学 并行计算 软件 模拟
2021-12-24 04:55:39

我目前正在做一个构建模拟器的项目。到目前为止,我主要使用非常简单的示例,但关于未来,我一直认为使用外部库进行数值计算可能是一个好主意,特别是因为我可能还想研究这种可能性用于并行化。

到目前为止,我已经使用了 Eigen 库,它非常简单,因为您只需要包含适当的头文件就可以了。但是,我有点不确定从长远来看它是否足够好?(多功能性,速度等)如果您广泛使用 Eigen 并且知道我错了,请纠正我!;)

但无论如何,我的想法是学习使用其中一种“大炮”,Trilinos 或 Petsc,据我所知,它们是最受推崇的库。但是,让一切都在 Windows 上运行似乎有点问题?(使用Visual Studio)从我通过谷歌搜索和阅读here发现的内容来看,似乎有一个使用CMAKE为Visual Studio编译的选项,但我发现大多数用户指南对于它的效果有点混乱工作,可能会出现什么丑陋的问题等。

我想我的主要问题是:为我当前的项目设置例如 Trilinos 有多容易?我主要需要代码来进行线性代数计算(向量、稀疏矩阵等),可能是并行的。还有选择“正确”的网格数据结构的问题,但也许我应该从其他地方获取那些(或者构建我自己的,就像我目前所做的那样)。

2个回答

Trilinos(和 PETSc)肯定会在 Windows 上工作,但它确实有很多依赖项。这将是多么容易取决于你。我建议只是启动 CMake 视觉工作室构建,让它告诉你你缺少什么,然后一次接一个。在例如 ubuntu 中,这要容易得多,只需 apt-get install tr​​ilinos。

至于它是否合适,这取决于你的程序的细节。如果您确实需要并行性,那么使用 trilinos 或 PETSc 是个好主意。但如果你不这样做,我确实发现与 Eigen 一起工作会更愉快。我个人实际上使用混合,其中我有 PETSc 向量用于全局、并行数据并使用它的线性/非线性求解器,但在本地我使用了很多小型矩阵操作,使用 Eigen 更有意义。

这对我构建 Trilinos 有用。在为您的文件位置修改它之后,将它放在一个批处理文件中。还要安装第三方软件。并非以下所有选项都是绝对必要的。您可以使用 cmake 为(缓慢的)blas 和 lapack 安装 clapack。在此处查看更多信息http://trilinos.sandia.gov/Trilinos10CMakeQuickstart.txt

"c:\Program Files (x86)\CMake 2.8\bin\cmake"
-G "Visual Studio 11 Win64"
-DTrilinos_ENABLE_TESTS:BOOL=ON
-DTrilinos_ENABLE_EXAMPLES:BOOL=ON
-DTrilinos_ENABLE_Fortran=OFF
-DPYTHON_EXECUTABLE:FILEPATH=C:/Python26/python
-DTrilinos_ENABLE_Teuchos:BOOL=ON
-DTrilinos_ENABLE_Epetra:BOOL=ON
-DTrilinos_ENABLE_Triutils:BOOL=ON
-DTrilinos_ENABLE_Galeri:BOOL=ON
-DTrilinos_ENABLE_Amesos:BOOL=ON
-DTrilinos_ENABLE_Ifpack:BOOL=ON
-DTrilinos_ENABLE_AztecOO:BOOL=ON
-DTrilinos_ENABLE_ML:BOOL=ON
-DTPL_ENABLE_MPI:BOOL=ON
-DMPI_BASE_DIR:PATH="c:/Program Files/Microsoft HPC Pack 2008 SDK"
-DLAPACK_LIBRARY_DIRS:PATH="C:\blas_lapack\x64\Debug"
-DLAPACK_LIBRARY_NAMES:STRING="lapack"
-DBLAS_LIBRARY_DIRS:PATH="C:\blas_lapack\x64\Debug"
-DBLAS_LIBRARY_NAMES:STRING="blas;f2c"
C:/Trilinos_master/