Compartilhar via


Função MSMPI_Waitsome_interruptible

Aguarda até que pelo menos uma das operações associadas a identificadores ativos na lista seja concluída ou a chamada seja interrompida por outro thread que chama MSMPI_Queuelock_acquire.

Sintaxe

int MPIAPI MSMPI_Waitsome_interruptible(
        int                                         incount,
        _Inout_count_(incount) MPI_Request          array_of_requests[],
  _Out_ int                                         *outcount,
        _Out_cap_post_count_(incount,*outcount) int array_of_indices[],
        _Out_cap_post_count_(incount,*outcount) int array_of_statuses[]
);

Parâmetros

  • incount
    O número de solicitações na matriz array_of_requests.

  • array_of_requests
    Matriz de identificadores de solicitação das operações nas quais aguardar a conclusão. Se um identificador de solicitação tiver sido alocado por uma função de comunicação sem bloqueio, ele será desalocado e o identificador associado será definido como MPI_REQUEST_NULL.

  • outcount [out]
    O número de solicitações especificadas no parâmetro array_of_requests concluído e o número de elementos nas matrizes array_of_indices e array_of_statuses .

    Se o array_of_requests não contiver identificadores ativos, a função retornará imediatamente com o parâmetro outcount definido como MPI_UNDEFINED.

    Se essa função for interrompida antes de qualquer solicitação ser concluída, a chamada retornará com o parâmetro outcount definido como zero.

  • array_of_indices
    Retorna os índices dentro do parâmetro array_of_requests das operações concluídas. Os índices de matriz são baseados em zero em C e baseados em um no Fortran.

  • array_of_statuses
    Retorna o status das operações concluídas. Os elementos dessa matriz correspondem aos elementos da matriz array_of_indices .

Retornar valor

Retorna MPI_SUCCESS em caso de êxito. Caso contrário, o valor retornado será um código de erro.

Em Fortran, o valor retornado é armazenado no parâmetro IERROR .

Se a função retornar um erro diferente de MPI_ERR_IN_STATUS, ela não atualizará os campos de erro dos status no parâmetro array_of_statuses .

Comentários

Em um ambiente de vários threads, os usuários devem obter o bloqueio global do Microsoft MPI usando a função MSMPI_Queuelock_acquire antes de chamarem MSMPI_Waitsome_interruptible. Essa função é interrompida quando outro thread chama a função MSMPI_Queuelock_acquire para acessar a biblioteca MPI.

Essa função é uma extensão para o padrão.

Requisitos

Produto

Pacote Redistribuível do HPC Pack 2012 MS-MPI, Pacote Redistribuível HPC Pack 2008 R2 MS-MPI, Pacote Redistribuível do HPC Pack 2008 MS-MPI ou Utilitários de Cliente HPC Pack 2008

parâmetro

Mpi.h

Biblioteca

Msmpi.lib

DLL

Msmpi.dll

Confira também

Funções ponto a ponto do MPI

MSMPI_Lock_queue

MSMPI_Queuelock_acquire

MSMPI_Queuelock_release

MPI_Waitsome