我正在使用armadillo4.300.0。我正在2840260x103大小的密集矩阵上进行操作。我正在从大小约为3.7GB的.csv文件加载此矩阵。我已经在我的应用程序以及armadillo_bits目录下的config.hpp中启用了“ARMA_64BIT_WORD”。
#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
我需要照顾其他吗?
拉姆基
最佳答案
当我们使用-DMKL_ILP64 -m64进行编译时,此问题可以通过Intel MKL库解决。通常,我们仅关注链接标志。但是必须注意,在gcc命令的编译阶段也必须启用这些标志。我不确定如何在openmpi库上启用此功能。同样,lib armadillo.so必须与mkl_ilp64而不是mkl_lp64链接。请按照以下说明进行操作。
构建和安装 Armadillo :
这应该工作。