función MPI_Iscatter
Dispersa los datos de un miembro en todos los miembros de un grupo de forma no bloqueada. Esta función realiza el inverso de la operación que realiza la función MPI_Igather.
Sintaxis
int MPIAPI MPI_Iscatter(
_In_opt_ const void *sendbuf,
_In_ int sendcount,
_In_ MPI_Datatype sendtype,
_Out_opt_ void *recvbuf,
_In_ int recvcount,
_In_ MPI_Datatype recvtype,
_In_ int root,
_In_ MPI_Comm comm,
_Out_ MPI_Request *request
);
Parámetros
sendbuf [in, optional]
Puntero a un búfer que contiene los datos que se van a enviar al proceso raíz.Este parámetro se omite para todos los procesos no raíz.
Si el parámetro comm hace referencia a un intracomunicador, puede especificar una opción local especificando MPI_IN_PLACE en el proceso raíz. Se omiten los parámetros recvcount y recvtype . El vector disperso todavía se considera que contiene n segmentos, donde n es el tamaño del grupo; el segmento que corresponde al proceso raíz no se mueve.
sendcount [in]
Número de elementos del búfer de envío. Si sendcount es cero, la parte de datos del mensaje está vacía.Este parámetro se omite para todos los procesos no raíz.
sendtype [in]
Tipo de datos de cada elemento del búfer.Este parámetro se omite para todos los procesos no raíz.
recvbuf [out, optional]
Identificador de un búfer que contiene los datos recibidos en cada proceso. El número y el tipo de datos de los elementos del búfer se especifican en los parámetros recvcount y recvtype .recvcount [in]
Número de elementos del búfer de recepción. Si el recuento es cero, la parte de datos del mensaje está vacía.recvtype [in]
Tipo de datos MPI de los elementos del búfer de recepción.raíz [in]
Rango del proceso receptor dentro del comunicador especificado.comm [in]
Identificador del comunicador MPI_Comm.request [out]
Identificador MPI_Request que representa la operación de comunicación.
Valor devuelto
Devuelve MPI_SUCCESS si se realiza correctamente. De lo contrario, el valor devuelto es un código de error.
En Fortran, el valor devuelto se almacena en el parámetro IERROR .
Fortran
MPI_ISCATTER(SENDBUF, SENDCOUNT, SENDTYPE, RECVBUF, RECVCOUNT, RECVTYPE, ROOT, COMM, REQUEST, IERROR)
<type> SENDBUF(*), RECVBUF(*)
INTEGER SENDCOUNT, SENDTYPE, RECVCOUNT, RECVTYPE, ROOT, COMM, REQUEST, IERROR
Comentarios
Una llamada sin bloqueo inicia una operación de reducción colectiva que debe completarse en una llamada de finalización independiente. Una vez iniciada, la operación puede avanzar independientemente de cualquier cálculo u otra comunicación en los procesos participantes. De esta manera, las operaciones de reducción sin bloqueo pueden mitigar los posibles efectos de sincronización de las operaciones de reducción mediante su ejecución en el "fondo".
Todas las llamadas de finalización (por ejemplo, MPI_Wait) se admiten para operaciones de reducción sin bloqueo.
Requisitos
Producto |
Microsoft MPI v7 |
Encabezado |
Mpi.h; Mpif.h |
Biblioteca |
Msmpi.lib |
Archivo DLL |
Msmpi.dll |