Parallelizing Java programs using transformation laws - DUARTE, Rafael Machado (2008)
Com a adoção pelo mercado dos processadores de nucleos multiplos, o uso de threads em Java se torna cada vez mais proveitoso. O desenvolvimento de sistemas paralelos e, entretanto, uma tarefa que poucos desenvolvedores estão capacitados a enfrentar. Dado esse contexto, foi desenvolvida uma abordagem de paralelizaçaao de programas java baseada em leis de transformação, com o intuito de facilitar esse processo e permitir uma paralelização sistemática. O primeiro passo da abordagem utiliza leis de transformação para converter um programa Java em uma forma normal que utiliza um conjunto restrito de recursos da linguagem. Neste passo, foram definidas leis de transformação adaptadas de trabalhos anteriores, assim como novas leis foram propostas. A partir de um programa na forma normal, são utilizadas regras de transformação focadas em introduzir paralelismo. Após a aplicação dessas regras de acordo com a estretégia desenvolvida, um programa paralelo e produzido. Dois casos de estudo foram realizados para validar a abordagem: calculo de series de Fourier e o algoritmo de criptografia IDEA. Ambos códigos foram obtidos do Java Grande Benchmark Suite. A execução dos estudos de caso comprova o êxito da abordagem em melhorar a performance do cóodigo original