そのため、10000x10000より大きい行列を宣言しようとすると、Eigenパッケージがクラッシュすることがわかりました。このような行列を宣言する必要があります。約13000x13000要素を確実に。私は次のようなテストを実行しました:
for( int tortureEigen = 1 ; tortureEigen < 50000 ; tortureEigen++ )
{
printf( "Torturing Eigen with %dx%d..\n", tortureEigen, tortureEigen ) ;
Eigen::MatrixXd m( tortureEigen, tortureEigen ) ;
}
14008要素で私のマシン(6 GB RAM)でクラッシュします。
ちょっとがっかりしました!EigenはMATLABまたはoctaveのようなものであり、ディスクなどにヒットしたとしても、より大きな配列を使用してもクラッシュしないはずだと思いました。
さらに、このテストを実行してTaskManを開いたままにすると、これらのマトリックスを作成しているプロセスはそれほど多くのメモリを使用しません。TaskManは2kの使用量でレポートします。
Eigen2.0.15安定版リリースの使用