Java中的并发访问稀疏矩阵

时间:2011-05-31 20:03:01

标签: java concurrency linear-algebra sparse-matrix

我正在寻找Java中的矩阵/线性代数库,它提供了一个稀疏矩阵,可以从不同的线程同时写入。我遇到的大多数库都没有提供稀疏矩阵,或者1.)用开放的寻址哈希映射来支持它们,或者2.)然后以CSR或CSC格式存储,这完全不适合多线程施工。现在我使用并发哈希映射并行收集条目,并从单个线程填充稀疏矩阵,但这似乎浪费资源(存储并发哈希映射的空间,以及基本上填写矩阵两次)。

2 个答案:

答案 0 :(得分:1)

你不能只是神奇地使稀疏矩阵代数例程可伸缩并行。处理这些问题涉及一些最复杂的数值分析算法,并且仍然是激烈研究的主题。

你没有说你想对这些矩阵做什么,但我想你想要解决线性方程组。如果你想要并行,那么你需要一个第三方库,非常大的矩阵,可能还有一些钱。

组装稀疏矩阵的最常用方法是将它们组合成三重格式并转换为压缩的行或列格式。组装可能很昂贵,但很容易并行进行。只需让每个线程都有自己的三元组列表,然后将它们拼接在一起,然后再转换为压缩格式。

答案 1 :(得分:0)

我记得parallel colt中的矩阵是线程安全的。该库是colt的多线程版本。