Buscar

Divisão e conquista em programação paralela

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 3 páginas

Continue navegando


Prévia do material em texto

Divisão e conquista em programação paralela
Exercícios
1. O termo programação paralela pode ser utilizado em conjunto com computação
paralela, pois se refere a sistemas de alta eficiência. A programação paralela é o
processo que decompõe um problema em tarefas menores, de modo que sejam
executadas simultaneamente, utilizando vários recursos de computação.
Dessa forma, é possível afirmar que:
I. utilizando a programação paralela, as tarefas podem ser paralelizadas, sendo
executadas ao mesmo tempo, a partir do uso de mais computadores ou vários
núcleos de um processador;
II. a programação paralela é importante para grandes projetos, que demandam
velocidade e precisão;
III. mesmo sendo uma tarefa complexa, a programação paralela é fundamental, pois
permite que desenvolvedores, pesquisadores e usuários consigam realizar
pesquisas e análises de maneira mais rápida e eficiente, se comparada a programas
que processam somente uma tarefa por vez;
IV. a programação paralela, apesar de ser uma tarefa simples, é muito importante,
pois permite que desenvolvedores, pesquisadores e usuários consigam realizar
pesquisas e análises de maneira mais rápida e eficiente, se comparada a programas
que processam somente uma tarefa por vez.
Quais afirmativas estão corretas?
Você acertou!
B. I, II e III.
A   programação   paralela   é   uma   tarefa   complexa,   mas   fundamental,   pois   é   muito
importante em projetos que exijam velocidade e precisão. Utilizando-a, as tarefas podem
ser executadas ao mesmo tempo.
2. Hardwick (1997) afirma que o método de divisão e conquista é a técnica mais
conhecida de projetos de algoritmos, pois permite resolver de maneira mais
simples um problema maior.
Sendo assim, assinale a alternativa correta.
Você acertou!
E. Dividir e conquistar pode ser considerada uma variante da técnica de programação de
cima para baixo mais geral.
A opção correta diz que dividir e conquistar é considerada uma variante da técnica de
programação de cima para baixo mais geral.
A  opção  que  diz   ser   importante   que  um  algoritmo  diferente   possa   ser   aplicado  aos
subproblemas  do  problema  original   está   incorreta,  pois  o  mesmo algoritmo  pode  ser
aplicado e não diferentes.
A opção que cita os subproblemas como instâncias do mesmo problema está incorreta,
pois,   apesar   dos   subproblemas   serem   instâncias   do   mesmo   problema,   podem   ser
expressos recursivamente.
A opção que diz ser necessária uma fase de combinação está incorreta, pois o necessário
é uma fase de divisão, para o problema ser dividido em subproblemas e uma fase de
combinação.
A opção que diz que soluções são combinadas está incorreta, pois fala que o processo se
repete até que encontre soluções distintas, sendo que o correto é que ele se repita até
que seja encontrada uma solução única.
3. Entre os modelos de aplicação da programação paralela, o mais comum é o divid-
and-conquer (divisão e conquista). Hardwick (1997) afirma que o método de divisão
e conquista é a técnica mais conhecida de projetos de algoritmos, já que permite
resolver de maneira mais simples um problema maior.
Esse algoritmo funciona seguindo um plano que ocorre na seguinte ordem:
Você acertou!
C. dividir, conquistar e combinar.
Os algoritmos de dividir e conquistar funcionam seguindo o plano de dividir, conquistar e
combinar.  Em "dividir",  o  problema é  dividido  em subproblemas  menores,  sendo eles
geralmente   do   mesmo   tamanho.   Em   "conquistar",   os   subproblemas   são   resolvidos
recursivamente. Em "combinar", as soluções obtidas pelos subproblemas são conectadas,
obtendo a solução do problema original. Não há uma etapa chamada "apresentar" nesse
algoritmo.
4. O pseudocódigo é utilizado como referência para outros métodos, que podem
diferenciar algoritmos de divisão e conquista para sua implementação em
arquiteturas paralelas.
Assinale a alternativa que contém os métodos de divisão e conquista em
programação paralela presentes na literatura, de acordo com Hardwik (1997).
Você acertou!
B. Fator de ramificação; equilíbrio; divisibilidade embaraçosa; dependência de dados da
função   de   dividir;   dependência   de   dados   da   função   de   tamanho;   paralelismo   ou
sequencialidade de controle; e paralelismo de dados.
A opção que cita "fator de ramificação; equilíbrio; divisibilidade embaraçosa; dependência
de dados da função de dividir; dependência de dados da função de tamanho; paralelismo
ou sequencialidade de controle; e paralelismo de dados" é a correta. As demais estão
incorretas,   pois   trocam  alguns  métodos,   como  dependência   de   dados   da   função  de
conquistar (seria dependência de dados da função de dividir); e dependência de dados da
função de combinar (a dependência de dados seria da função de tamanho).
5. Quando o tamanho total dos subproblemas de um algoritmo de divisão e
conquista tem algum nível de dependência dos dados de entrada, ele vai ter uma
função de tamanho dependente dos dados. Com isso, esse algoritmo forma uma
subclasse. Esse modelo de algoritmo adiciona ou descarta elementos, baseando-se
nos dados de entrada, para tentar reduzir o tamanho do problema.
Assinale a alternativa que se refere ao método de dependência de dados da função
de tamanho.
Você acertou!
E. Podem   ser  mais   complexos   para   implementação,   pois   os   desequilíbrios   de   carga
podem surgir na quantidade total dos dados em um processador.
A  opção   correta   que   se   refere  ao  método   de   dependência   de   dados   da   função   de
tamanho é a que diz que este pode ser mais complexo para  implementação,  pois os
desequilíbrios de carga podem surgir na quantidade total dos dados em um processador.
A opção que cita o número de subproblemas em que um problema é dividido se refere ao
método de ramificação. A opção que fala sobre apresentar a vantagem de não necessitar
de balanceamento  de carga está   incorreta,  pois  se  refere ao método de equilíbrio.  A
opção que apresenta que o problema pode ser dividido entre dois ou mais subproblemas
de maneira imediata está incorreta, pois se refere à divisibilidade embaraçosa. Por fim, a
opção que cita que geralmente está presente no estágio de divisão está incorreta, pois se
refere ao paralelismo de dados.
	Divisão e conquista em programação paralela
	Exercícios