ebook img

Algoritmos PRAM PDF

122 Pages·2014·0.8 MB·Portuguese
by  
Save to my drive
Quick download
Download
Most books are stored in the elastic cloud where traffic is expensive. For this reason, we have a limit on daily download.

Preview Algoritmos PRAM

Definindo melhor alguns conceitos Processamento Paralelo: processamento de informação concorrente que pertencem a um ou mais processos que resolvem um único problema. Processamento Distribuído: processamento de informações em um sistema cujos recursos estão sendo compartilhados por vários programas Computador Paralelo: computador de múltiplos processadores capaz de realizar processamento paralelo Supercomputador: computador de propósito geral capaz de resolver problemas em alta velocidade, comparando com outras máquinas da mesma época. Terminologia A vazão de um dispositivo é o número de resultados produzidos por unidade de tempo. (throughtput) Speedup (aceleração): razão entre o tempo de execução necessário para o algoritmo seqüencial mais eficiente e o tempo necessário para se realizar a mesma computação numa máquina paralela Existem diversas definições de speedup: – speedup absoluto(n)= T(melhor alg. seq. )/ T( prog // c/ n proc.) – speedup aproximado(n)= T(prog.// c/1 proc.)/T( prog // c/ n proc.) – speedup relativo (n)= T(prog. // c/(n-1) proc.)/T(prog.// c/ n proc.) Computação concorrente Duas formas de se explorar a concorrência em computação em computação – Paralelismo de controle e de dados tempo t 77 ++ 33 stri1n0g + = 2=0“0c asa”? 3323 *+ 1342 9 Paralelismo de Controle aplicando-se operações diferentes a diferentes dados simultaneamente. – fluxo de dados entre processos pode ser arbitrariamente complexo Exemplo: – Pipelining: cada estágio trabalha em velocidade plena sobre uma parte particular da computação. A saída de um estágio é a entrada do estágio seguinte Paralelismo de Controle E1 E2 E3 E4 tempo info 1 info 2 info 1 info 3 info 2 info 1 info 4 info 1 info 3 info 2 Paralelismo de Dados uso de vários processadores para executar a mesma operação ao mesmo tempo sobre elementos distintos de dados Um aumento de k vezes no número de unidades funcionais levaria a um aumento de k vezes a vazão do sistema 7 + 3 10 + 200 33 + 329 Aplicações Aplicações ou programas podem ser executados mais rapidamente, considerando duas formas de paralelismo – tratar o programa seqüencial como uma série de tarefas – cada tarefa = uma instrução ou blocos de instruções OU – especificar um programa paralelo, que resolve o problema através da especificação de tarefas ou processos concorrentes Exploração de paralelismo Particionamento – identificar em um programa, as tarefas que possam ser executadas em paralelo (simultaneamente em mais de um processador) • caso extremo: cada linha do programa correspondendo a uma tarefa um bom desempenho só é alcançado se um número máximo de comandos são executados simultaneamente É preciso considerar dependências de dados problema: se quase todos os comandos são dependentes Exemplo: programa seqüencial  paralelismo de instruções program nothing(){ input (A,B,C); if A>B then { C=A-B; output (C); } else { C = B-A; output (A,B,C) } A=0; B=1; for i=1 to 3 { input(C); A=A+C; B=B*C; } output (A,B,C); } Exemplo Tarefa T1 Tarefa T2 input (A,B,C); A = 0; if A>B then{ C=A-B; Tarefa T3 output (C); B=1; }else{ C = B-A; Tarefa T4 output (A,B,C) for i=1 to 3 { input(C); } A=A+C; B=B*C; } output (A,B,C)

Description:
Exemplo: programa seqüencial → paralelismo de instruções program nothing(){ .. Ts o tempo de execução do melhor algoritmo seqüencial p < P(n)
See more

The list of books you might like

Most books are stored in the elastic cloud where traffic is expensive. For this reason, we have a limit on daily download.