• Nenhum resultado encontrado

CAPÍTULO 2 Computação Paralela

2.3.3 Bulk Synchronous Parallel (BSP)

Bulk Synchronous Parallel (BSP), proposto por Valiant em 1989, é um modelo que propõe alcançar todo potencial da programação paralela de forma natural e seme- lhante à programação sequencial. A máquina abstrata do BSP consiste em uma coleção

2.3 Modelos Computacionais Paralelos 35

de processadores abstratos, cada qual com uma memória local, conectados por uma rede de interconexão. A Figura 2.14 representa uma abstração desse modelo.

Figura 2.14: Modelo Bulk Synchronous Parallel (BSP)

O modelo BSP define propriedades da rede de interconexão por alguns parâ- metros arquiteturais. Essas propriedades são: o custo de invocar a sincronização, repre- sentado pela letra L, e o custo necessário para enviar um dado para dentro da rede de comunicação, representado pela letra g. O parâmetro L implica na latência da memória e o g enfatiza a limitação da largura de banda [25]. Esses parâmetros são determinados experimentalmente por cada computador paralelo. Com esse método de abstrair as arqui- teturas paralelas, esse modelo torna-se altamente escalável e facilita a programação em máquinas que implementam esse modelo [35].

Os algoritmos BSP consistem de p threads e de uma sequência de super-etapas, onde p é o número de processadores. Cada superetapa contém: um número de operações de computação, um número de operações de comunicação e, por último, uma barreira de sincronização. No final de cada superetapa, os resultados de comunicações globais tornam-se visíveis na memória local de cada processador logo após a sincronização. A Figura 2.15 ilustra essa superetapa do BSP. Se o tempo de computação é w e o número máximo de mensagens enviadas ou recebidas por um processador é h, então o tempo de uma superetapa é dado por: t = w+hg+L. Com essas características, o BSP é considerado uma generalização do modelo PRAM. Quando a arquitetura BSP tem o valor de g muito pequeno (g = 1), ela torna-se uma PRAM [25] [35].

Um modelo semelhante ao BSP, é o modelo CGM (Coarse Grained Multicom- puter) proposto por Dehne et al [10]. Uma máquina CGM consiste de um conjunto de pprocessadores, cada qual com uma memória de tamanho O(Np). O algoritmo em CGM consiste em uma sequencia de rodadas, onde fases bem definidas de computação local e

2.4 Medidas de Desempenho 36

Figura 2.15: Super-etapa do BSP: computação, comunicação e sincronização.

comunicação global são realizadas. Normalmente, o tamanho da entrada nos algoritmos CGM é consideravelmente maior do que a quantidade de processadores, por isso o nome coarse grained. O modelo considera somente dois parâmetros: o número de processadores pe o tamanho da entrada N. Tanto a máquina quanto o algoritmo CGM são considerados casos especiais do modelo BSP [10].

2.4

Medidas de Desempenho

A principal razão de implementar um algoritmo paralelo está na obtenção de um desempenho superior ao do algoritmo sequencial. Esse ganho de desempenho (spee- dup) é medido, normalmente, pelo tempo que leva para completar uma tarefa num único processador sobre o tempo necessário para completar a mesma tarefa em N processa- dores paralelos. Assim, o Speedup S(N) é definido usando N processadores paralelos como [30] [31]:

S(N) = Tp(1) Tp(N)

(2-1)

Onde Tp(1) é o tempo do algoritmo sobre um único processador e Tp(N) é o tempo de processamento em processadores paralelos. Uma situação ideal seria a paralelização total do algoritmo. Com isso, teria-se Tp(N) = Tp(1)/N e a equação 2-1 seria transformada em:

2.4 Medidas de Desempenho 37

Essa situação ideal é díficil de acontecer, pois há vários fatores que influenciam no tempo de execução dos algoritmos paralelos, por exemplo, a sobrecarga de comuni- cação que inclui problemas na rede de intercomunicação, largura de banda, colisões na memória, gargalo da memória e entre outros.

Além disso, a lei de Amdahl proposta por Gene Amdahl (1967) [2] dita que todo problema possui uma fração inerentemente sequencial, ou seja, uma parte que não pode ser paralelizada. Com isso, o tempo do algoritmo paralelo depende do tempo da execução dessa fração sequencial. De acordo com a lei de Amdahl [2], o speedup é definido em:

S(N) = 1

s+Np (2-3)

Sendo s o tempo da fração sequencial, p é o tempo da fração do algoritmo que pode ser paralelizada. A Figura 2.16 ilustra um problema para obter o speedup de acordo com Amdahl, equação 2-3. Partindo do pressuposto que o tempo do algoritmo executado em um processador é constante, sendo ele composto por frações sequencial (s) e paralela (p), e a fração paralelizável é fixa; o tempo do algoritmo sendo executado em processador paralelo é a soma do tempo da fração sequencial s somado ao tempo da fração paralelizável p executada em N processadores. Com isso, duas conclusões podem ser tiradas a partir da equação 2-3. Primeiro, quando a fração sequencial s é grande, o uso de processadores paralelos tem pouco efeito. Segundo, quando N se aproxima do infinito, o speedup fica limitado ao inverso da fração sequencial s [2] [15].

Figura 2.16: Lei de Amdahl [15]

Enquanto a lei de Amdahl prediz que o tamanho da fração paralelizável é fixa e não depende do tamanho do problema, a lei de Gustafson (1988) [15] faz a observação de que o paralelismo aumenta em uma aplicação de acordo com o tamanho do problema. Segundo Gustafson, o tempo do algoritmo paralelo é constante e, em contrapartida, o tempo do algoritmo sequencial é variável. Sendo assim, o speedup baseado na lei de Gustafson é definido como:

2.4 Medidas de Desempenho 38

S(N) = s + N p (2-4)

A Figura 2.17 mostra a divisão de um problema de acordo com Gustafson [15] para obter o speedup. Nela, o tempo do algoritmo em paralelo é constante, considerando isso, quanto maior é o problema, maior poderá ser a quantidade de processadores em paralelo para alcançar um speedup maior. Isso, implica que o speedup não fica limitado pelo tempo de execução da fração sequencial, como dito na lei de Amdahl.

Figura 2.17: Lei de Gustafson [15]

Neste capítulo, foram apresentados os principais conceitos e fundamentos da computação paralela que este trabalho utilizou para alcançar os objetivos: implementa- ções paralelas eficientes para o problema do fecho transitivo e do caminho mínimo entre todos os pares de vértices. No capítulo seguinte, uma explanação sobre a programação paralela nas Unidades de Processamento Gráficas será mostrada.

CAPÍTULO

3

Documentos relacionados