• Nenhum resultado encontrado

Mensagens Colectivas

No documento Sistemas de Operação II. Ricardo Rocha (páginas 129-148)

De forma a libertar o programador dos detalhes inerentes `a topologia e eficiˆencia

das comunica¸c˜oes colectivas, o MPI define um conjunto de fun¸c˜oes para lidar especificamente com este tipo de comunica¸c˜oes.

Mensagens Colectivas

De forma a libertar o programador dos detalhes inerentes `a topologia e eficiˆencia

das comunica¸c˜oes colectivas, o MPI define um conjunto de fun¸c˜oes para lidar especificamente com este tipo de comunica¸c˜oes.

Podemos ent˜ao classificar as mensagens em:

♦ Ponto-a-ponto: a mensagem ´e enviada por um processo e recebida por um outro processo (e.g. todo o tipo de mensagens que vimos anteriormente).

Colectivas: podem consistir de v´arias mensagens ponto-a-ponto concorrentes

e envolvendo todos os processos de um comunicador (as mensagens colectivas tˆem de ser chamadas por todos os processos do comunicador).

Mensagens Colectivas

De forma a libertar o programador dos detalhes inerentes `a topologia e eficiˆencia

das comunica¸c˜oes colectivas, o MPI define um conjunto de fun¸c˜oes para lidar especificamente com este tipo de comunica¸c˜oes.

Podemos ent˜ao classificar as mensagens em:

♦ Ponto-a-ponto: a mensagem ´e enviada por um processo e recebida por um outro processo (e.g. todo o tipo de mensagens que vimos anteriormente).

Colectivas: podem consistir de v´arias mensagens ponto-a-ponto concorrentes

e envolvendo todos os processos de um comunicador (as mensagens colectivas

tˆem de ser chamadas por todos os processos do comunicador).

As mensagens colectivas s˜ao varia¸oes ou combina¸oes das seguintes 4 opera¸c˜oes

primitivas: ♦ Broadcast ♦ ReduceScatterGather 49

Broadcast

MPI Bcast(void *buf, int count, MPI Datatype datatype, int root, MPI Comm comm)

MPI Bcast() faz chegar uma mensagem de um processo a todos os outros

Broadcast

MPI Bcast(void *buf, int count, MPI Datatype datatype, int root, MPI Comm comm)

MPI Bcast() faz chegar uma mensagem de um processo a todos os outros

processos no comunicador.

Broadcast

MPI Bcast(void *buf, int count, MPI Datatype datatype, int root, MPI Comm comm)

MPI Bcast() faz chegar uma mensagem de um processo a todos os outros

processos no comunicador.

buf ´e o endere¸co inicial dos dados a enviar/receber.

Broadcast

MPI Bcast(void *buf, int count, MPI Datatype datatype, int root, MPI Comm comm)

MPI Bcast() faz chegar uma mensagem de um processo a todos os outros

processos no comunicador.

buf ´e o endere¸co inicial dos dados a enviar/receber.

count ´e o n´umero de elementos do tipo datatype a enviar/receber.datatype ´e o tipo de dados a enviar/receber.

Broadcast

MPI Bcast(void *buf, int count, MPI Datatype datatype, int root, MPI Comm comm)

MPI Bcast() faz chegar uma mensagem de um processo a todos os outros

processos no comunicador.

buf ´e o endere¸co inicial dos dados a enviar/receber.

count ´e o n´umero de elementos do tipo datatype a enviar/receber.datatype ´e o tipo de dados a enviar/receber.

root ´e a posi¸ao do processo, no comunicador comm, que possui `a partida a

Broadcast

MPI Bcast(void *buf, int count, MPI Datatype datatype, int root, MPI Comm comm)

MPI Bcast() faz chegar uma mensagem de um processo a todos os outros

processos no comunicador.

buf ´e o endere¸co inicial dos dados a enviar/receber.

count ´e o n´umero de elementos do tipo datatype a enviar/receber.datatype ´e o tipo de dados a enviar/receber.

root ´e a posi¸ao do processo, no comunicador comm, que possui `a partida a

mensagem a enviar.

comm ´e o comunicador dos processos envolvidos na comunica¸ao.

Broadcast

MPI Bcast(void *buf, int count, MPI Datatype datatype, int root, MPI Comm comm)

buf MPI_Bcast() count=2 buf datatype datatype root buf buf buf datatype datatype root rank 0 rank 2 rank 3 buf datatype datatype rank 2 buf datatype datatype rank 3 buf datatype datatype rank 0 51

Reduce

MPI Reduce(void *sendbuf, void* recvbuf, int count,

MPI Datatype datatype, MPI Op op, int root, MPI Comm comm)

MPI Reduce() permite realizar opera¸oes globais de resumo fazendo chegar

Reduce

MPI Reduce(void *sendbuf, void* recvbuf, int count,

MPI Datatype datatype, MPI Op op, int root, MPI Comm comm)

MPI Reduce() permite realizar opera¸oes globais de resumo fazendo chegar

mensagens de todos os processos a um ´unico processo no comunicador.

Reduce

MPI Reduce(void *sendbuf, void* recvbuf, int count,

MPI Datatype datatype, MPI Op op, int root, MPI Comm comm)

MPI Reduce() permite realizar opera¸oes globais de resumo fazendo chegar

mensagens de todos os processos a um ´unico processo no comunicador.

sendbuf ´e o endere¸co inicial dos dados a enviar.

➤ recvbuf ´e o endere¸co onde devem ser colocados os dados recebidos (s´o ´e importante para o processo root).

Reduce

MPI Reduce(void *sendbuf, void* recvbuf, int count,

MPI Datatype datatype, MPI Op op, int root, MPI Comm comm)

MPI Reduce() permite realizar opera¸oes globais de resumo fazendo chegar

mensagens de todos os processos a um ´unico processo no comunicador.

sendbuf ´e o endere¸co inicial dos dados a enviar.

➤ recvbuf ´e o endere¸co onde devem ser colocados os dados recebidos (s´o ´e importante para o processo root).

Reduce

MPI Reduce(void *sendbuf, void* recvbuf, int count,

MPI Datatype datatype, MPI Op op, int root, MPI Comm comm)

MPI Reduce() permite realizar opera¸oes globais de resumo fazendo chegar

mensagens de todos os processos a um ´unico processo no comunicador.

sendbuf ´e o endere¸co inicial dos dados a enviar.

➤ recvbuf ´e o endere¸co onde devem ser colocados os dados recebidos (s´o ´e importante para o processo root).

count ´e o n´umero de elementos do tipo datatype a enviar.datatype ´e o tipo de dados a enviar.

Reduce

MPI Reduce(void *sendbuf, void* recvbuf, int count,

MPI Datatype datatype, MPI Op op, int root, MPI Comm comm)

MPI Reduce() permite realizar opera¸oes globais de resumo fazendo chegar

mensagens de todos os processos a um ´unico processo no comunicador.

sendbuf ´e o endere¸co inicial dos dados a enviar.

➤ recvbuf ´e o endere¸co onde devem ser colocados os dados recebidos (s´o ´e importante para o processo root).

count ´e o n´umero de elementos do tipo datatype a enviar.datatype ´e o tipo de dados a enviar.

Reduce

MPI Reduce(void *sendbuf, void* recvbuf, int count,

MPI Datatype datatype, MPI Op op, int root, MPI Comm comm)

MPI Reduce() permite realizar opera¸oes globais de resumo fazendo chegar

mensagens de todos os processos a um ´unico processo no comunicador.

sendbuf ´e o endere¸co inicial dos dados a enviar.

➤ recvbuf ´e o endere¸co onde devem ser colocados os dados recebidos (s´o ´e importante para o processo root).

count ´e o n´umero de elementos do tipo datatype a enviar.datatype ´e o tipo de dados a enviar.

➤ op ´e a opera¸c˜ao de redu¸c˜ao a aplicar aos dados recebidos.

root ´e a posi¸ao do processo, no comunicador comm, que recebe e resume os

Reduce

MPI Reduce(void *sendbuf, void* recvbuf, int count,

MPI Datatype datatype, MPI Op op, int root, MPI Comm comm)

MPI Reduce() permite realizar opera¸oes globais de resumo fazendo chegar

mensagens de todos os processos a um ´unico processo no comunicador.

sendbuf ´e o endere¸co inicial dos dados a enviar.

➤ recvbuf ´e o endere¸co onde devem ser colocados os dados recebidos (s´o ´e importante para o processo root).

count ´e o n´umero de elementos do tipo datatype a enviar.datatype ´e o tipo de dados a enviar.

➤ op ´e a opera¸c˜ao de redu¸c˜ao a aplicar aos dados recebidos.

root ´e a posi¸ao do processo, no comunicador comm, que recebe e resume os

dados.

comm ´e o comunicador dos processos envolvidos na comunica¸ao.

Reduce

MPI Reduce(void *sendbuf, void* recvbuf, int count,

MPI Datatype datatype, MPI Op op, int root, MPI Comm comm)

sendbuf MPI_Reduce() count=2 sendbuf datatype datatype root sendbuf sendbuf recvbuf root rank 0 rank 2 rank 3 recvbuf rank 2 recvbuf rank 3 recvbuf rank 0 count=2 count=2 count=2 datatype datatype datatype datatype datatype datatype op datatype datatype 53

No documento Sistemas de Operação II. Ricardo Rocha (páginas 129-148)

Documentos relacionados