我想也许我在这里不理解MPI的一些基本方面,但是使用4个流程,这里是使用time ./main
的细分:
13.00 real 4.99 user 3.05 sys
13.00 real 4.84 user 2.87 sys
13.00 real 4.91 user 2.84 sys
13.00 real 5.18 user 3.04 sys
因此,似乎每个进程的CPU时间只需要大约5秒,但总的经过时间比这要长得多。为什么这样,如果进程并行运行,那么总的经过时间应该更接近5秒?
如果我执行1个进程,我会
9.92 real 8.49 user 0.88 sys
有问题的代码是组装一个稍大的矩阵(大小为120,000 x 120,000)并解决线性系统问题。在我能想到的代码中,我能想到的唯一可以减缓的地方就是线性求解,但是我使用superlu_dist
包来解决,这是专门用于解决的问题。平行。
有人可以帮我理解这些结果吗?