6
私はJuliaで配列操作を最適化しようとしていましたが、ときどき私の行列でかなり大きなエラーが発生していることに気付きました。 JuliaのSharedArrayの同じインデックスに同時に書き込む可能性があることに気付きました。私はJuliaがそれを安全に処理できるかどうか疑問に思っていました。そうでない場合は、どうすれば対応できますか?ここで共有アレイはJuliaで同時書き込みを安全に処理できますか?
が
for a list of arbitrary x,y indexes in array J
j[x,y] += some_value
end
私の問題の基本的な例であるジュリアはCのように、データを上書きする可能性が存在しますが、このケースを処理するかができます。ジュリアの原子力発電は、これを補償するか?
明らかにJuliaはロックをサポートしています。これは基本パッケージの一部です:https://stackoverflow.com/questions/33778907/how-to-use-lock-in-julia – Skylion
これは本当ですが、ソリューションは複数のコンピュータに分散された作業でも機能するように設計されています。配列の要素ごとに1つのロックが必要な場合は、一般的なソリューションのオーバーヘッド量に不満があり、SharedArrays用に最適化されたものが必要と思われます。 – tholy
この情報があれば、あなたは何を示唆しますか? Julia 0.5がリリースされるまで待つと、より洗練されたソリューションを念頭に置いていない限り、PThreadのサポートを追加してAtomicsを使用できます。理想的には、コードが分散システム上で動作することができればいいが、必要ではない。 – Skylion