dc.contributor.author | Venâncio, Hugo | en_US |
dc.contributor.author | João, Nuno | en_US |
dc.contributor.author | Pereira, João Madeiras | en_US |
dc.contributor.editor | Beatriz Sousa Santos | en_US |
dc.contributor.editor | Joaquim A. Jorge | en_US |
dc.contributor.editor | José Manuel Dionísio | en_US |
dc.date.accessioned | 2023-01-26T08:21:44Z | |
dc.date.available | 2023-01-26T08:21:44Z | |
dc.date.issued | 2023 | |
dc.identifier.isbn | 978-3-03868-195-3 | |
dc.identifier.uri | https://doi.org/10.2312/pt.20001442 | |
dc.identifier.uri | https://diglib.eg.org:443/handle/10.2312/pt20001442 | |
dc.description.abstract | O PAIO é um sistema distribuído que paraleliza a computação do algoritmo de Iluminação Global RayTracing, utilizando um qualquer numero maquinas heterogéneas. Todo o PAIO foi implementado na linguagem Java, o que lhe permite ser completamente independente de plataforma e bastante flexível, tornando-o num sistema adequado ao teste e experimentação. O PAIO executa-se sobre uma maquina MIMD virtual. Como suporte à distribuição utilizamos a biblioteca o JPVM - Java Parallel Virtual Machine - semelhante ao PVM - Parallel Virtual Machine - mas implementado em Java. Esta permite que processos lancem processos num conjunto de maquinas heterogéneas que formam uma só maquina, uma maquina virtual, e comuniquem entre si. E' o JPVM quem escolhe as maquinas físicas onde os processos lançados se irão executar, e quem trata da comunicação. Embora o algoritmo de RayTracing em si possua características que permitem facilmente a sua paralelização, a sua distribuição em particular levanta dois factores importantes que a podem tornar não compensatória: o balanceamento da carga e os custos de comunicação. A comunicação tem que ser reduzida ao mínimo, pois uma transferência através da rede é muito mais lenta do que uma transferência local a uma maquina.O balanceamento da carga computacional é feito dinamicamente, atribuindo mais trabalho aos processos à medida que o anterior é entregue já realizado. Divisão no espaço imagem foi a nossa escolha para o modo de fazer a divisão do trabalho. Tínhamos duas opções: divisão no espaço imagem e divisão no espaço objecto. Na primeira, a imagem 2D é dividida em zonas e cada uma dessas zonas é atribuída a um processo. Na segunda, é o espaço tridimensional da cena que é dividido e cada zona do espaço é atribuída a um processo. No entanto, a divisão no espaço objecto implica uma maior comunicação entre processos, uma vez que, tipicamente, o teste de intersecção de um raio envolve comunicação entre vários processos, pelo que foi colocada de parte. Por outro lado a divisão no espaço imagem exige apenas a comunicação do trabalho em si, mas implica que todos os processos tenham acesso a toda a cena. No PAIO a cena não é replicada pelos processos, é distribuída. Um processo especial coordena as operações, distribuindo os dados da cena e o trabalho, e colectando os resultados. Não conseguimos atingir os objectivos a que nos propusemos inicialmente, não devido a um fraco poder computacional das maquinas e/ou aplicações, mas sim porque grande parte do tempo de execução da aplicação é perdida nas comunicações. | en_US |
dc.publisher | The Eurographics Association | en_US |
dc.rights | Attribution 4.0 International License | |
dc.rights.uri | https://creativecommons.org/licenses/by/4.0/ | |
dc.subject | Ray Tracing, Iluminação Global, Paralelização, Distribuição, Computação Gráfica, Java, JPVM | |
dc.subject | Ray Tracing | |
dc.subject | Iluminação Global | |
dc.subject | Paralelização | |
dc.subject | Distribuição | |
dc.subject | Computação Gráfica | |
dc.subject | Java | |
dc.subject | JPVM | |
dc.title | Paralelização do Algoritmo de Iluminação Global | en_US |
dc.description.seriesinformation | 9º Encontro Português de Computação Gráfica | |
dc.description.sectionheaders | Posters | |
dc.identifier.doi | 10.2312/pt.20001442 | |
dc.identifier.pages | 177-177 | |
dc.identifier.pages | 1 pages | |