我使用的是armadillo4.300.0。我在一个2840260x103的密集矩阵上运行。我从大小约3.7GB的.csv文件加载此矩阵。我在我的应用程序中启用了“ARMA_64BIT_WORD”以及在armadillo_bits目录下启用了config.hpp。
#if !defined(ARMA_64BIT_WORD)
#define ARMA_64BIT_WORD
#endif
我正在使用gcc49编译并在ubuntu 12.04上运行。当我运行时,我收到以下错误。有趣的是,该应用程序偶尔也会运行。例如,如果我继续尝试10次,它会运行一段时间。
error: Mat::init(): requested size is too large
terminate called after throwing an instance of 'std::logic_error'
what(): Mat::init(): requested size is too large
我需要照顾别的吗?
拉姆金。
答案 0 :(得分:2)
当我们使用-DMKL_ILP64 -m64进行编译时,使用英特尔MKL库解决了这个问题。通常我们只关注链接标志。但重要的是要注意,在gcc命令的编译阶段也必须启用这些标志。我不知道如何在openmpi库上启用它。 lib armadillo.so也必须与mkl_ilp64而不是mkl_lp64链接。请按照以下说明操作。
建立并安装犰狳:
这应该有效。