Fortran中的自动稀疏矩阵

时间:2013-05-11 04:25:53

标签: arrays memory-management fortran sparse-matrix sparse-array

我知道英特尔Fortran的库具有用于处理稀疏矩阵的函数和子程序,但我想知道是否还有某种数据类型或自动方法来创建稀疏矩阵。< / p>

背景:我有一个使用3&amp; 3的程序。在前2维中可能非常大的4维阵列(每个维度中约10k到~100k个元素,可能更多)。在前两个维度中,每个阵列大多数(95%左右)填充w /零。使程序对于具有&#34;正常&#34;的机器友好可用的RAM量,我想转换为稀疏matricies。处理当前传统阵列的方式&amp;整个代码更新很大程度上取决于代码应用程序,因此我正在寻找一种转换为稀疏矩阵存储的方法,而无需对代码进行重大修改。基本上,我很懒,而且我不想修改整个内存管理实现,也不想在我的阵列存在和管理的地方编写一个全新的模块。是否有一个库或Fortran的其他东西可以实现数据类型或其他东西,以便我可以使用稀疏矩阵存储而无需重新设计每个数组以及如何处理它?谢谢您的帮助。欢呼声。

1 个答案:

答案 0 :(得分:0)

有许多不同的稀疏格式和许多不同的库用于处理Fortran中的稀疏矩阵(例如sparskitpetsc,...)但是,它们都不能提供紧凑的数组处理形式,在Fortran中可用于内部密集阵列(尤其是子阵列表示法)。因此,当您想要将其更改为使用稀疏矩阵时,您必须在多个位置触摸代码。