簡體   English   中英

Java中的並發訪問稀疏矩陣

[英]Concurrent Access Sparse Matrix in Java

我在 Java 中尋找一個矩陣/線性代數庫,它提供了一個可以從不同線程同時寫入的稀疏矩陣。 我遇到的大多數庫要么根本不提供稀疏矩陣,要么 1.) 使用開放地址 hash map 支持它們,或者 2.) 然后以 CSR 或 CSC 格式存儲,這根本不適合多線程建造。 Right now I'm gather the entries in parallel using a concurrent hash map and them populating the sparse matrix from a single thread, but this seems like a waste of resources (space to store the concurrent hash map, and time to essentially fill in the矩陣兩次)。

您不能只是神奇地使稀疏矩陣代數例程可伸縮地並行。 解決這些問題涉及一些最復雜的數值分析算法,並且仍然是深入研究的主題。

你沒有說你想用這些矩陣做什么,但我想你想要解決線性方程組。 如果您想要並行,那么您將需要一個 3rd 方庫、非常大的矩陣,並且可能需要一些錢。

組裝稀疏矩陣的最常見方法是以三元組格式組裝它們並轉換為壓縮的行或列格式。 組裝可能很昂貴,但很容易並行進行。 只需讓每個線程都有自己的三元組列表並將它們拼接在一起,然后再轉換為壓縮格式。

我記得並行 colt的矩陣是線程安全的。 該庫是 colt 的多線程版本。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM