目前在做mpi并行,发现了一个问题,就是当我把任务均匀的分配到各个进程之后,每个进程的计算时间相加是大于串行的,且进程之间的计算速度也不相同,该过程不涉及任何通信。
针对上述情况,我做了一个简单的测试,我开启了多个进程并行运行同一段代码,该代码执行了10万次向量点乘,向量的长度为10万,然后再用串行的方式运行这段代码,结果发现并行执行所花费的时间高于串行,且进程越多,花费的时间越长。
在此过程中我也在持续监测CPU、内存等资源,发现均没有达到上限。
目前怀疑上述问题可能跟系统资源调度有关,但本人对这块不太熟悉,不太清楚具体原因,有没有专家可以解答一下
开发环境如下:
OS:Windows11
IDE:visual studio
语言:fortran
mpi实现:intel mpi