行列はプロセッサ 0 で作成され、他のプロセッサに分散されます。行列は対称密行列です。そのため、プロセッサ 0 で初期化されます。
マトリックスは次のように作成されます。
A=malloc(sizeof(double)*N*N);
for (i=0; i<N; i++)
for(j=0; j<N; j++)
A(i,j)=rand()%10; // The code will be changed.
A(i,j) は次のように定義されます。
#define A(i,j) A[i*N+j]
アルゴリズムをテストするには、N を 100,000 にする必要があります。
ここでの問題は、N=100,000 の場合、必要なメモリが約 76GB になることです。Aマトリックスを保存するために何を提案しますか?
PS: N<20.000 で、クラスタが乱れたメモリ システム (プロセッサあたり 2GB RAM) の場合、アルゴリズムは非常にうまく機能します。