TrabalhosGratuitos.com - Trabalhos, Monografias, Artigos, Exames, Resumos de livros, Dissertações
Pesquisar

Programação Concorrente e Distribuída

Por:   •  28/10/2018  •  Relatório de pesquisa  •  999 Palavras (4 Páginas)  •  138 Visualizações

Página 1 de 4

Universidade Federal do Rio Grande do Norte

Engenharia da Computação e Automação

Programação Concorrente e Distribuida

Aluna: Danielly Fernandes de Albuquerque

Questões:

3.1 –

Ao realizar a alteração e utilizar strlen (greeting) ocorre o seguinte erro:

[pic 1]

[pic 2]

Isso acontece porque o caracter de terminação da string “\0”, usado para finalizar

strings em C, é ignorado. Com isso, ocorre comportamentos inesperados, como

imprimir lixo vindo da memória junto com a mensagem.

Já ao usar MAX_STRING não será possível notar nenhuma diferença nos

resultados a serem impressos. Isso porque é criado strings de tamanhos definidos

para haver espaço.

3.2 –

Para realizar o cálculo alguns processos terão que aplicar a regra com um número maior de trapezóides quando o “comm_sz” não for divisível por n. O resto da divisão deve ser redistribuídos entre os processos a começar pelo processo 0. Com isso, é modificada as linhas que calculam o valor das variáveis local_n e

local_a:

[pic 3]

3.5 –

Teorema: Se T é uma árvore binária completa (cheia) com n folhas, então a

profundidade das folhas é d=log2(n) .

Prova:

Passo base: Para n=1 :

d=log2(1)=0

Que é verdadeiro.

Hipótese de indução: Assumimos que o teorema é verdadeiro quando n = k. Como a árvore é completa (cheia), o número de folhas dobra cada vez que a árvore cresce, de modo que n=k=1.2.2.2...2=2m. Logo,

d=log2(k )=log2(2m)=m

Passo indutivo: Devemos mostrar que, para o número imediatamente seguinte de folhas, isto é, n=2k, d = m + 1:

d = log2(2k)

= log2(2) + log2(k)         [Propriedade do logaritmo]

= log2(k) + log2(2)         [Associatividade de adição]

= m + 1                 [Hipótese de indução]

3.6 –

a) Em uma divisão em bloco, o número de elementos é divido igualmente e em

ordem entre os processos.

Caso o resultado da divisão entre n(numero de elementos) e comm_sz tenha resto, a distribuição é feita entre os processos.

Na questão, cada processo receberá a divisão inteira de n/comm_sz = 14/4 = 3.

Como essa divisão possui resto de valor 2, então os processos 0 e 1 irão receber 4 elementos cada e o restante receberá 3.

[pic 4]

b) Em uma distribuição cíclica, o número n de elementos é distribuído um por vez em cada processo em um determinado número de ciclos.

Nesse caso, o elemento x[0] vai para o processo 0, o x[1] vai para o processo 1, o x[2] vai para o processo 2 e o x[3] vai para o processo 3, fechando um ciclo. O

próximo ciclo segue a mesma lógica.

[pic 5]

c) Em uma distribuição bloco-cíclica, ocorre uma junção das propriedades de bloco e cíclica. Para um determinado b, o vetor x de n elementos seria dividido em blocos.

No caso, número de blocos seria n/b = 14/2 = 7. Caso a divisão inteira tivesse resto, ele seria distribuído entre os blocos seguindo sempre a mesma ordem.

[pic 6]

3.7 - A comunicação das funções coletivas do MPI são dadas por "todos-para-um", "um-para-todos" e "todos-para-todos".

Se considerarmos nesse caso, existindo um único processo, uma comunicação

"todos-para-todos" não haveria problemas no programa.

Seria um caso de enviar e receber pelo mesmo processo.

3.8 - No MPI_SCATTER ocorre que um processo manda informações diferentes, mas de mesmo tamanho para todos os outros processos.

Como o processo 0 distribui os n elementos igualmente (dividindo pela metade),

temos:

[pic 7]

b) O MPI_GATHER cada processo manda uma informação diferente para o mesmo processo raiz.

Nesse caso, o processo 0 recebe dos demais processos, dessa forma a árvore ficou da seguinte maneira:

[pic 8]

3.10 –

O parâmetro recv_count é a quantidade de elementos que será recebida.

O parâmetro send_count é a quantidade de elementos enviada pelo processo 0 aos outros processos.

São considerados argumentos de entrada para a função, por isso não há problema com a chamada da função quando supõe-se que dois argumentos sejam alinhados com e se referem ao mesmo bloco de memória.

...

Baixar como (para membros premium)  txt (6.5 Kb)   pdf (324.3 Kb)   docx (848.6 Kb)  
Continuar por mais 3 páginas »
Disponível apenas no TrabalhosGratuitos.com