5. O DESEMPENHO DO ALGORITMO DE "RAY TRACING" EM
5.4. Particionamento de Quadros
O particionamento de quadros é caracterizado pelo processamento de imagens
completas em cada nó do sistema. Dessa forma, este tipo de particionamento se distingue
dos demais por ser aplicável apenas às situações onde se deseja gerar um conjunto de
imagens e não apenas uma. Este é o caso das animações, uma aplicação bastante comum,
onde cada imagem é denominada quadro. Tradicionalmente, para cada segundo de
animação, é necessária a geração de 30 quadros
10.
Na geração de animações é comum a movimentação dos objetos do cenário,
incluindo fontes de luz e observador, de quadro para quadro. Ao iniciar-se o processamento
de nova cena (cinematográfica) pode ocorrer total mudança de cenário, requerendo um
banco de dados totalmente diferente. Dessa forma, os nós do sistema estarão sempre
operando com dados distintos (apesar de, às vezes, bastante semelhantes). Esta
característica torna necessária a disponibilidade de memória local, em cada nó, suficiente
para o armazenamento completo do banco de dados do cenário de trabalho.
Apesar de os dados contidos na memória local de cada nó serem distintos, esta
implementação será considerada como apresentando replicação total dos dados pois, para
fins práticos, apresenta inconvenientes típicos de outras implementações com esta mesma
característica.
A implementação desta técnica se faz geralmente num esquema "fazenda de
processadores", com um nó gerenciando a execução das tarefas.
Deve-se notar que o particionamento de quadros não é um caso particular do
particionamento de imagens com o tamanho do pacote de pontéis (partição) igual ao
tamanho da imagem. Diferentemente do primeiro caso, neste último apenas uma imagem
estaria sendo processada em dado instante (com todos os nós, exceto um, ociosos !)
implicando no pior balanceamento de carga possível.
O particionamento de quadros é especialmente interessante para uso em
multicomputadores distribuídos, interligados por rede, pelas seguintes razões:
• processadores de estações de trabalho tipicamente passam 90 a 95% do tempo
em estado ocioso (edição de texto, leitura de correspondência, etc.) (GREEN,
1991);
10 Se a animação for tranferida para película cinematográfica, 24 quadros/s são suficientes. Dependendo da finalidade da animação pode-se repetir duas vezes cada quadro reduzindo estes valores à metade.
• estações de trabalho modernas dispõem de boa capacidade de memória (> 16
Mbytes) permitindo a replicação de dados ou uso de memória virtual;
• suportam mecanismo de comunicação que permite fácil transferência de dados e
resultados de imagem;
A tab. 5.1 apresenta uma comparação das características dos particionamentos de
quadros e imagem, com especial atenção para o caso de usar-se um ambiente de
processamento distribuído (rede de computadores) (BLOOMER, 1992).
PARTICIONAMENTO
DE QUADROS
PARTICIONAMENTO
DE IMAGEM
V
ISUALIZAÇÃOINTERATIVA
não acelera acelera
A
NIMAÇÃOacelera acelera
S
OBRECARGA PARACONTROLE DA REDE
baixa maior
S
OBRECARGA COM BANCO DE DADOSbaixa, bancos de dados
diferentes
maior, mesmo banco de
dados
T
OLERÂNCIA A FALHASgranularidade espessa granularidade fina
R
ECUPERAÇÃO DEFALHAS
granularidade espessa granularidade fina
TAB. 5.1 - Comparação entre partic. de quadros e de imagem para redes de comp.
Conforme destacado na tabela 5.1 o particionamento de quadros, por não acelerar
(via paralelismo) a geração individual dos quadros, não se presta como alternativa para
visualização interativa. Independentemente do número de processadores disponíveis, a
geração de um quadro será executada sempre no mesmo tempo.
As características de tolerância e recuperação de falhas, bastante importantes na
geração de longas animações (Stöβer et alli, 1988), são negativas no particionamento de
quadros pois implica geralmente em desperdício de toda ou parte de uma imagem enquanto
o particionamento de imagem reduz esta perda a apenas um pacote de pontéis, isto é, uma
pequena fração da imagem.
Finalmente, é importante ressaltar que os resultados do particionamento de quadros
devem ser avaliados considerando-se seu ambiente típico de processamento, estações de
trabalho em rede, e nunca um multicomputador, mais adequado às outras modalidades de
particionamento já apresentadas. Sob este enfoque, esta metodologia pode se constituir em
eficiente ferramenta para aproveitamento do grande poder de processamento disponível em
redes de estações de trabalho cujas taxas de utilização são bastante baixas.
As qualidades do particionamento de quadros são mostradas na figura 5.19, abaixo:
DESEMPENHO DO PARTICIONAMENTO DE QUADROS
Características
D
ese
m
p
enho
PROC. BALANC. COMUNIC. MEMÓRIA EFICIÊNCIA RESTR.ALG.
FIG. 5.19 - Desempenho do particionamento de quadros
A) Sobrecargas de Processamento
Na prática, as implementações de "ray tracing" paralelo por particionamento de
quadros equivalem a computadores executando tarefas totalmente independentes (sem
cooperação entre sí) porém sob uma coordenação central. A única forma de sobrecarga está
relacionada com esta coordenação, e pode ser considerada bastante pequena apesar de
algumas implementações alocarem um nó somente para esta atividade.
Em ambientes de processamento distribuído, normalmente o processamento de uma
animação por "ray tracing" se fará como tarefa de fundo (background) para aproveitamento
do período ocioso dos processadores da rede.
B) Balanceamento
É mais difícil obter-se bom balanceamento no particionamento de quadros pois a
granularidade das tarefas é muito elevada.
Neste tipo de implementação, geralmente é feita alocação dinâmica e o
particionamento é uniforme (um quadro). Pode-se prever um balanceamento com
características parecidas ao de particionamento de imagens com granularidade muito
grande, portanto, ruim.
Próximo ao fim do processamento de todas as imagens, quando o estoque de
imagens a gerar tiver se esgotado, grande parte dos processadores tende a ficar ociosa
enquanto apenas um ou alguns nós completam suas tarefas. Sendo a granularidade elevada,
a execução de uma tarefa (geração de uma imagem completa) pode levar até horas
significando horas de ciclo ocioso em quase todos os processadores do multicomputador.
C) Comunicação
A comunicação em implementações deste tipo de particionamento tende a ser
pequena se todos os nós têm acesso direto ao sistema de arquivos para armazenamento das
imagens geradas e para a carga das estruturas de dados dos cenários de trabalho.
As mensagens são em pequeno número e muito curtas (controle) ou muito longas
(envio de imagens prontas ao nó com acesso ao sistema de arquivos se este não é local).
Não é requerido nenhum grau de conectividade explícito. A comunicação se faz
exclusivamente com o nó controlador.
D) Uso de Memória
Conforme mencionado, este tipo de implementação implica em disponibilidade de
memória, em todos os nós, suficiente para o armazenamento completo das estruturas de
dados correspondentes a um cenário, sendo equivalente a replicação total dos dados.
E) Ganho de Velocidade e Eficiência
Green (GREEN , 1991) relata o processamento de uma animação com duração de 2
segundos (3600 quadros) em uma rede com 30 estações de trabalho. O processamento
durou 24 dias e 10 horas com tempo efetivo de processamento de 24 horas, resultando em
eficiência aproximada de 80%. Este é o único resultado númerico que dispomos e,
portanto, não deve ser tomado como estimativa geral.
F) Restrições Algorítmicas
Como o algoritmo executado em cada nó é praticamente idêntico ao da versão
seqüencial, não existe qualquer tipo de restrição algorítmica imposta pelo particionamento
de quadros, com uma exceção. Técnicas para aceleração de animações, baseadas na
coerência temporal das imagens são prejudicadas pois não se têm, localmente, informações
sobre outros quadros adjacentes da animação.
A alternativa de alocar-se pacotes de tarefas com várias imagens consecutivas a
cada nó pode atenuar este problema, porém com graves efeitos sobre o balanceamento de
carga no sistema, pois a granularidade das tarefas, já bastante alta, seria aumentada ainda
mais.
No documento
AVALIAÇÃO DO ALGORITMO DE "RAY TRACING" EM MULTICOMPUTADORES
(páginas 140-144)