MPI_Init_thread 函数

初始化调用 MPI 进程的执行环境,以便进行线程执行。

语法

int MPIAPI MPI_Init_thread(
  _In_opt_ int                        *argc,
           _In_opt_count_(*argc) char ***argv,
  _In_     int                        required,
  _Out_    int                        *provided
);

参数

  • argc [in, optional]
    指向程序参数数的指针。 此值可以为 NULL。

  • argv [可选]
    指向程序的参数列表的指针。 此值可以为 NULL。

  • required [in]
    所需线程支持的级别。 同一作业中的多个 MPI 进程可能使用不同的值。

    MPI_THREAD_SINGLE 程序中只有一个线程将执行。
    MPI_THREAD_FUNNELED 进程可能包含多个线程,但调用 MPI_Init_thread 的线程是唯一进行 MPI 函数调用的线程。
    MPI_THREAD_SERIALIZED 进程可能包含多个线程,所有这些线程都可以进行 MPI 函数调用,但一次只能调用一个。
    MPI_THREAD_MULTIPLE 多个应用程序线程可以毫无限制地调用 MPI 函数。 此值目前仅在 Windows Server 2012、Windows Server 2012 R2、Windows 8 和 Windows 8.1 上运行的 MS-MPI V6 上受支持。

     

  • provided [out]
    提供的线程支持的级别。 返回的值来自上表。

     

返回值

如果 函数成功返回,则MPI_SUCCESS。 如果调用因其他原因失败, (如) 参数无效,则返回其他错误代码。

在 Fortran 中,返回值存储在 IERROR 参数中。

Fortran

    MPI_INIT_THREAD(REQUIRED, PROVIDED, IERROR)
        INTEGER REQUIRED, PROVIDED, IERROR

注解

此函数只能由一个线程调用。 该线程将称为“主线程”,并且必须是同一线程才能调用 MPI_Finalize

MPI_Init_thread的 Fortran 绑定不接受 ARGC 和 ARGV 参数。

要求

产品

HPC Pack 2012 MS-MPI 可再发行程序包、HPC Pack 2008 R2 MS-MPI 可再发行程序包、HPC Pack 2008 MS-MPI 可再发行程序包或 HPC Pack 2008 客户端实用工具

标头

Mpi.h;Mpif.h

Msmpi.lib

DLL

Msmpi.dll

另请参阅

MPI 外部函数

MPI_Finalize

MPI_Init