Buscar

Prova 1 - 2010-1

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 5 páginas

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

Prévia do material em texto

UNIVERSIDADE FEDERAL DE MINAS GERAIS
INSTITUTO DE CIEˆNCIAS EXATAS
DEPARTAMENTO DE CIEˆNCIA DA COMPUTAC¸A˜O
ALGORITMOS E ESTRUTURAS DE DADOS III
Professores: Wagner Meira Jr e Jussara Almeida
Primeiro Teste: 12.5 pontos
Aluno:
Avaliador:
• Durac¸a˜o do teste: 50 minutos.
• Prova individual e sem consulta.
• Faz parte da prova a interpretac¸a˜o das questo˜es. Caso voceˆ ache que falta algum
detalhe nas explicac¸o˜es fac¸a as suposic¸o˜es que achar necessa´rias e documente-as na
resoluc¸a˜o das questo˜es.
1a Questa˜o ( 1+0.5+1+0.5 pontos)
Uma estrate´gia tradicional de aproximar o valor de uma integral de uma func¸a˜o e´
a estrate´gia dos trape´zios, ou seja, divida o intervalo de integrac¸a˜o em um nu´mero
de sub-intervalos e calcule a a´rea do trape´zio formado em cada sub-intervalo. Uma
forma de tornar esse me´todo mais eficiente e preciso e´ realizar refinamentos (ou seja,
subdividir recursivamente) nos intervalos onde a func¸a˜o na˜o for bem aproximada por
uma reta. A aproximac¸a˜o pode ser avaliada pela colinearidade entre um nu´mero
pre´-fixado de pontos do intervalo. Assuma um modelo de memo´ria compartilhada.
Pede-se:
1. Descreva uma estrate´gia baseada em paralelismo de dados
A estrate´gia de paralelismo de dados mais simples e´ dividir o intervalo em p
sub-intervalos, onde p e´ o nu´mero de cores e cada core recebe um sub-intervalo
para calcular a integral parcial daquele intervalo. Ao fim do processo, e´ realizada
uma reduc¸a˜o para chegar ao valor desejado.
Nota Crite´rio S/N
0.5 Conceituou corretamente paralelismo de dados
1.0 Apresentou uma estrate´gia correta de paralelismo de dados
2. Indique uma fonte de degradac¸a˜o de desempenho na sua paralelizac¸a˜o.
A fonte de degradac¸a˜o de desempenho mais prova´vel e´ o desbalanceamento de
carga entre os cores, como consequeˆncia da variac¸a˜o da func¸a˜o a ser integrada,
ou seja, alguns cores trabalham mais pois teˆm que realizar mais refinamentos.
Pode tambe´m haver contenc¸a˜o pela varia´vel compartilhada que acumula a inte-
gral.
Nota Crite´rio S/N
0.25 Indicou uma fonte de degradac¸a˜o de desempenho
0.5 Fonte de degradac¸a˜o de desempenho e´ pertinente
3. Descreva uma estrate´gia baseada em paralelismo de tarefas
A estrate´gia baseada em paralelismo de tarefas usaria uma sacola de tarefas onde
intervalos a serem integrados seriam armazenados. Um core, quando ocioso,
requisitaria um intervalo a` sacola e retornaria o valor da integral parcial ou
intervalos menores a serem armazenados na sacola.
Nota Crite´rio S/N
0.5 Conceituou corretamente paralelismo de tarefas
1.0 Apresentou uma estrate´gia correta de paralelismo de tarefas
4. Indique uma fonte de degradac¸a˜o de desempenho na sua paralelizac¸a˜o.
A fonte de degradac¸a˜o de desempenho mais prova´vel e´ contenc¸a˜o (ou sincro-
nizac¸a˜o), uma vez que a sacola de tarefas e´ um recurso compartilhado e u´nico
no sistema. Da mesma forma, podemos tambe´m ter contenc¸a˜o para acesso a`
varia´vel que armazena o valor da integral.
Nota Crite´rio S/N
0.25 Indicou uma fonte de degradac¸a˜o de desempenho
0.5 Fonte de degradac¸a˜o de desempenho e´ pertinente
2a Questa˜o (1.5+1.5 pontos)
Suponha que voceˆ tenha executado o seu algoritmo de integrac¸a˜o em uma ma´quina
com 8 cores. Os tempos de execuc¸a˜o obtidos foram:
Cores 1 2 3 4 5 6 7 8
Tempo 100 55 40 34 32 31 33 36
Pede-se:
1. Apresente uma poss´ıvel explicac¸a˜o para o fato de que o uso de 2 cores na˜o
reduziu o tempo de execuc¸a˜o pela metade. Deˆ um exemplo de como uma de
suas propostas de paralelizac¸a˜o poderia apresentar esse comportamento.
Uma explicac¸a˜o o´bvia neste caso e´ a frac¸a˜o serial inerente ao problema. Em
ambas as propostas de implementac¸a˜o a varia´vel de reduc¸a˜o, que armazena o
valor da integral representa frac¸a˜o serial.
Nota Crite´rio S/N
0.5 Apresentou uma explicac¸a˜o va´lida
1.5 Identificou a fonte de degradac¸a˜o na implementac¸a˜o
2. Apresente uma poss´ıvel explicac¸a˜o para o fato de que o tempo de execuc¸a˜o
aumenta para mais de 7 cores.
Uma explicac¸a˜o o´bvia neste caso e´ a computac¸a˜o adicional e o tempo de espera.
A contenc¸a˜o pela sacola de tarefas e´ um caso t´ıpico, ale´m do desbalanceamento
de carga no caso do paralelismo de dados.
Nota Crite´rio S/N
0.5 Apresentou uma explicac¸a˜o va´lida
1.5 Identificou a fonte de degradac¸a˜o na implementac¸a˜o
3a Questa˜o ( 1.5+1+1.5+1+1.5 pontos)
Suponha que voceˆ tenha dois conjuntos A e B, cada um contendo n inteiros positivos.
Estes nu´meros podem ser ordenados em qualquer ordem arbitra´ria dentro de cada
conjunto. Dada uma configurac¸a˜o de ordenac¸a˜o, seja ai o i-e´simo elemento de A e
bi o i-e´simo elemento de B. Com base nessa configurac¸a˜o voceˆ recebe um preˆmio de
pini=1a
bi
i . O objetivo e´ maximizar o preˆmio.
Pede-se:
1. Apresente um algoritmo forc¸a-bruta (tentativa e erro) para resolver o problema.
O algoritmo forc¸a-bruta faria todas as permutac¸o˜es poss´ıveis entre os dois ve-
tores, gerando todas os produto´rios poss´ıveis.
Nota Crite´rio S/N
0.5 Identifica a necessidade de fazer as permutac¸o˜es
1.5 Argumenta pela gerac¸a˜o de todos os produto´rios poss´ıveis
2. Qual e´ a complexidade do seu algoritmo? Explique.
Temos dois vetores a serem permutados, cada um de tamanho n. A permutac¸a˜o
de cada vetor gera n! configurac¸o˜es. Para cada permutac¸a˜o do vetor A, temos
n! permutac¸o˜es de B. O resultado e´ O(n!× n!).
Nota Crite´rio S/N
0.5 Identificou a permutac¸a˜o
1.0 Compoˆs as permutac¸o˜es adequadamente
3. Apresente uma estrate´gia gulosa para resolver o problema.
Ordene decrescentemente cada um dos vetores e realize a multiplicac¸ao par a
par. Ordenar crescentemente tambe´m funciona.
Nota Crite´rio S/N
0.5 Estrate´gia e´ gulosa
1.5 Estrate´gia gera soluc¸a˜o
4. Qual a complexidade da sua estrate´gia gulosa?
E´ O(nlogn), o custo de ordenac¸a˜o dos vetores. O ca´lculo do produto´rio tem
custo linear.
Nota Crite´rio S/N
0.5 Identificou o componente de custo
1.0 Calculou a complexidade corretamente
5. A soluc¸a˜o gulosa encontrada e´ o´tima? Por que?
A soluc¸a˜o encontrada e´ o´tima. Considere quaisquer ı´ndices i e j tal que i < j e
os termos abii e a
bj
j . Podemos mostrar que e´ sempre melhor incluir estes pares
do que a
bj
i e a
bi
j , ou seja, a
bi
i a
bj
j ≥ a
bj
i a
bi
j . Uma vez que A e B sa˜o ordenados em
ordem decrescente e i < j, temos que ai ≥ aj e bi ≥ bj. Uma vez que ai e aj sa˜o
positivos e bi− bj ≥ 0, temos que a
bi−bj
i ≥ a
bi−bj
j . Multiplicar ambos os lados por
a
bj
i a
bj
j leva a a
bi
i a
bj
j ≥ a
bj
i a
bi
j provando a otimalidade. Ou seja, a sub-estrutura
o´tima compreende comec¸ar pelas maiores poteˆncias poss´ıveis.
Nota Crite´rio S/N
0.5 Respondeu Sim
1.0 Apresentou a justificativa
Item Nota Observac¸o˜es
1.1
1.2
1.3
1.4
2.1
2.2
3.1
3.2
3.3
3.4
3.5
Total

Outros materiais