运行MPI时,有一种方法可以先执行顺序代码,然后再运行并行代码

时间:2018-06-22 00:00:01

标签: sockets parallel-processing pthreads mpi

我正在编写代码,我需要初始化变量并依次且仅一次执行一系列任务。之后,我目前正在使用pthreading运行并行进程,然后返回顺序代码对数据进行排序并执行二进制搜索。并行进程只是同时从多个(大约35个)套接字读取大量数据。我被要求使用MPI实现相同的设置,而我目前的理解是,如果我使用MPI,则每个进程都将执行整个程序,并且并行处理并不局限于MPI_Init_thread和MPI_Finalize所在的行。我的理解正确吗?还是有一种方法可以在使用MPI的同时在并行代码之前和之后执行顺序代码?

1 个答案:

答案 0 :(得分:3)

    在对其他MPI例程的任何调用之前,先调用
  • MPI_Init。它的 目的是初始化MPI环境。
  • 在计算结束时调用
  • MPI_Finalize,它 执行各种清理任务以终止MPI 环境。
  • MPI_Init还会剥离任何与MPI相关的命令行参数。

如果要执行顺序代码,可以执行

 if (myrank == 0){ 
 //code
 }

并且主线程(id = 0)将仅执行代码,因此您在该位置将不会出现并行处理。