Professional Documents
Culture Documents
João Monlevade
2018
SUMÁRIO
1 Introdução 2
2 Paralelismo 2
3 Redução complexidade 5
4 Exemplos 7
5 Conclusão 11
6 Referências 12
1
1 - Introdução
2 - Paralelismo
O processador lê um único fluxo de dados por vez e realiza uma operação por
unidade de tempo, ou seja, não se executa mais que uma operação por unidade de
2
tempo.
Substitui-se um laço do programa que usa instruções escalares por um laço que
usa instruções vetoriais, levadas a cabo por um hardware específico, implementado
por pipeline. O processamento vetorial difere no fato de que os pipelines evoluíram
para instruções vetoriais.
3
2.6 - Programação Paralela
4
● Depende da experiência e capacidade do programador;
● Dificuldade de portabilidade entre diferentes arquiteturas.
3 - Redução Complexidade
Devido aos limites físicos dos recursos disponíveis no computador, não basta
identificar um problema e garantir que exista pelo menos uma solução para este, é
necessário saber se este pode ser resolvido efetivamente dentro de certos limites
referentes a tais recursos. A complexidade computacional consiste em uma função
matemática que depende do tamanho da entrada e dos recursos utilizados pelo
algoritmo, sendo o tempo e o espaço (quantidade de memória) os recursos que
comumente são avaliados para mensuração da mesma, em outras palavras, segundo
Hwang e Jotwani (2010, p 30) a complexidade de um algoritmo para resolver um
problema de tamanho s em um computador é determinada pelo tempo de execução e
pelo espaço requerido.
Complexidade de tempo
Denominada também de complexidade temporal, ela consiste em uma função
que varia de acordo com o tamanho da entrada para o problema, sendo mensurada
pelo número de unidades de tempo necessárias a execução do algoritmo
Complexidade de espaço
Também chamada de complexidade espacial, ela refere-se à quantidade de
memória requerida pelo algoritmo como uma função do tamanho do problema, sendo
mensurada como uma unidade de espaço para cada registro necessário para um
cálculo individual
Ao estudar a complexidade de um algoritmo pode-se avaliá-la sobre a ótica de que o
algoritmo proposto para resolver o problema poderá solucioná-lo em 3(três) diferentes
cenários, sendo eles:
5
Para efeito de análise será abordado apenas o caso em que os elementos da
lista L estão desordenados,O Algoritmo 1 realiza este processo de forma sequencial,
possuindo complexidade de tempo igual a O (n), para o pior caso.
Para construção do algoritmo paralelo para o problema da pesquisa utilizamos uma
técnica de busca em blocos de elementos, no qual um conjunto de p processadores,
fará uma pesquisa em um bloco de tamanho b, onde b = p, em d iterações, sendo d =
log n, onde:
6
Analisando agora a quantidade de iterações necessárias para percorrer todo o conjunto
de elementos de L, está é expressa por O(log n) passos, logo têm-se que:
O(Pesquisa) = O(Computações por Nível) x O(Iterações)
O(Pesquisa) = O(1).O(log n)
O(Pesquisa) = O(log n), para o pior caso.
Há uma redução na ordem de grandeza da complexidade de tempo do Problema da
Pesquisa, haja vista que o melhor algoritmo seqüencial para o referido problema é
O(n), enquanto o algoritmo paralelo descrito (ALGORITMO 2) possui complexidade
O(log n).
4 - Exemplos
Para fazer uma comparação de complexidade, foi se estudado o algoritmo do
Crivo de Eratóstenes, que é um algoritmo clássico para encontrar todos os números
primos menores ou iguais a um número inteiro positivo n.
O estudo consiste na comparação entre o algoritmo executado de forma serial e
e processadores.
paralelo, usando um número p d
7
utilizado) p é escolhido e todos os múltiplos de p são removidos da lista. O algoritmo
termina quando todos os fatores primos menores ou iguais a √n tenham sido utilizados.
A ideia do algoritmo usado é passar como parâmetro um determinado número n, e
como resultado se obtém o número de números primos do intervalo de 2 até n.
8
4.2.1 - Análise de Complexidade
A análise de complexidade do algoritmo levará em conta o limite superior n da
lista de primos.
Espaço: a complexidade de espaço E(n) do algoritmo no pior caso, melhor caso e caso
médio é:
E(n)=O(n)
9
10
4.3.1 - Análise de Complexidade
A análise de complexidade do algoritmo paralelo levará em conta o limite
superior n da lista de primos e número de processos p.
.
Tempo: a complexidade de tempo T(n) do Crivo de Eratóstenes paralelo no pior caso,
melhor caso e caso médio é:
E(n)=O(n/p)
5 - Conclusão
11
uma estratégia de paralelismo restrita aos limites dos recursos disponíveis, e suporte
em hardware.
REFERÊNCIAS
12
JÚNIOR, Fernando Antonio Fernandes; ZIVIANI, Nivio. Projeto e Análise de
Algoritmos. 2006. Disponível em
<http://homepages.dcc.ufmg.br/~nivio/cursos/pa06/tp4/tp42/tp42.pdf> Acesso em 09
de setembro de 2018.
13