Master's Dissertation
DOI
https://doi.org/10.11606/D.3.2000.tde-04092024-145327
Document
Author
Full name
Pedro Vaz Artigas
Institute/School/College
Knowledge Area
Date of Defense
Published
São Paulo, 2000
Supervisor
Committee
Zucchi, Wagner Luiz (President)
Ruggiero, Wilson Vicente
Song, Siang Wun
Title in Portuguese
Um ambiente de alto desempenho para aplicações científicas escritas em Java.
Keywords in Portuguese
Aplicações científicas
Linguagem Java
Abstract in Portuguese
Do ponto de vista de engenharia de software, a linguagem de programação Java é uma plataforma atraente para a codificação de aplicações numéricas e científicas. A maior desvantagem da linguagem, que impede a sua adoção neste domínio de aplicaçõesde maneira mais abrangente, é o desempenho insatisfatório das aplicações codificadas em Java. Neste trabalho apresentamos uma biblioteca de classes que implementa arrays, segue o modelo de Java padrão e fornece um desempenho próximo ao deFORTRAN para aplicações numéricas e científicas. De forma a atingir este nível de performance se faz necessária a utilização de um compilador adequado, utilizamos um compilador, construído para este trabalho, que implementa transformações deprograma avançadas, também aqui descritas. Discutimos em detalhe a implementação de: (i) uma package de Java eficiente que implementa arrays verdadeiramente multidimensionais, e (ii) otimizações, implementadas em um compilador, que criam regiõesde código seguras, livres de verificações de exceções, que podem ser otimizadas de maneira agressiva. Estas técnicas, quando aplicadas em conjunto, tornam Java uma linguagem eficiente para a codificação de aplicações numéricas e científicas. Emum conjunto de oito programas benckmark foi obtido um desempenho entre 50% e 90% do desempenho obtido utilizando as mesmas aplicações compiladas com um compilador otimizador avançado para a linguagem FORTRAN. Isto representa uma melhora de ordem de grandeza elevada se compararmos com o que pode ser obtido com o segundo melhor ambiente Java disponível para a plataforma utilizada.
Title in English
Untitled in english
Keywords in English
Java language
Scientific applications
Abstract in English
From a software engineering perspective, the Java programming language provides an attractive platform for writing numerically intensive applications. A major drawback hampering its widespread adoption in this domain has been its poor performanceon numerical codes. In this work we describe an array library that support standard Java and deliver near-FORTRAN performance on numerically intensive codes. In order to reach this level of performance we utilized a research compiler, thatimplements advanced transformations described in this text. We discuss in detail the implementation of: (i) an efficient Java package for true multidimensional arrays; and (ii) compiler optimizations that create safe, exception free regions ofcode that can be aggressively optimized. These techniques work together synergistically to make Java an efficient language for technical computing. In a set of eight benchmarks we achieve between 50% and 90% of the performance of highlyoptimized FORTRAN code. This represents a several-fold improvement compared by what can be achieved by the next best Java environment available in our platform.
WARNING - Viewing this document is conditioned on your acceptance of the following terms of use:
This document is only for private use for research and teaching activities. Reproduction for commercial use is forbidden. This rights cover the whole data about this document as well as its contents. Any uses or copies of this document in whole or in part must include the author's name.
Publishing Date
2024-09-04