0

我制作了一个 python 模块(带有 boost::python),它在某些时候创建了一些大型对象的数组(2D 向量)。对象的总大小大约是几 Gb。开始执行程序时,它会挂起/卡在初始化数组的位置:

// my_object.h
class my_object{
   public:
   my_object(n){  create a bunch of 2D arrays (double, int, etc.) of size n x n }
};

// extension.cpp
vector<my_object> arr(t,my_object(n)); // t is big, n is big

如果我减少参数 t,尤其是 n,程序运行良好。因此,在 python 模块中初始化大对象数组的效率或可能性似乎存在一些问题。顺便说一句,我有足够的内存来存储这么大的数组(在 pbs 脚本中保留 ~20 Gb 或内存,这些是集群计算),所以问题几乎不是因为内存(在这种情况下我得到明确的信息,它是足够的内存)。我怎样才能克服这样的问题?先感谢您。

4

0 回答 0