我正在开发一个程序来计算矩阵的行列式(可能很大,最多1000行)。
由于它可能很大,我在dim(M) > 250
时使用多线程(< 250在100 ms内计算)。
我的想法是将矩阵分成4个部分,高斯同时消除每个部分,然后重新收集矩阵并计算行列式。
我想知道,如果在多个线程中访问一个向量是安全的,因为它保证我只能访问它的不同部分吗?
另外,有哪些提示可以限制内存使用量?
我使用vector<vector<double>>
,因此8 * 1000 * 1000 doubles
可能会非常麻烦。
答案 0 :(得分:5)
只要你不改变它的大小就是安全的。
除非您调整大小,否则不会移动矢量的内容。因此,只要您访问内存的不同部分,就是安全的。