The dinamica virtual machine for geosciences

Carregando...
Imagem de Miniatura

Título da Revista

ISSN da Revista

Título de Volume

Editor

Universidade Federal de Minas Gerais

Descrição

Tipo

Dissertação de mestrado

Título alternativo

Membros da banca

Britaldo Silveira Soares Filho
Renato Antonio Celso Ferreira

Resumo

Este trabalho descreve a DinamicaVM, a máquina virtual para execução aplicações desenvolvidas em Dinamica EGO. Dinamica EGO é uma plataforma utilizada em modelagem de uso de solo, dinâmica de paisagens e simulação ambiental. Por detrás da sua biblioteca de elementos visuais em modo gráfico, Dinamica EGO roda em cima de uma máquina virtual. Esta máquina - DinamicaVM - oferece aos desenvolvedores um rico conjunto de instruções, com elementos como o 'map' e 'reduce', que são típicos no mundo de linguagens funcional e paralelismo. Garantir que estes componentes, muito expressivos, trabalhem juntos de forma eficiente é uma tarefa desafiadora. O ambiente de execução do Dinamica vence este desafio através de um conjunto de otimizações, emprestando ideias de linguagens de programação funcional, levando ao comportamento específico esperado em programas de alta performance para geociências. Como mostramos neste trabalho algumas dessas otimizações levam speedups de quase 100 vezes, e são fundamentais para o desempenho e qualidade de uma das ferramentas de modelagem ambiental mais utilizadas do mundo.

Abstract

This work describes DinamicaVM, the virtual machine that runs applications developed in Dinamica EGO. Dinamica EGO is a framework used in the development of geomodeling applications. Behind its multitude of visual modes and graphic elements, Dinamica EGO runs on top of a virtual machine. This machine - DinamicaVM - offers developers a rich instruction set architecture, featuring elements such as map and reduce, which are typical in the functional/parallel world. Ensuring that these very expressive components work together efficiently is a challenging endeavour. Dinamica's runtime addresses this challenge through a suite of optimizations, which borrows ideas from functional programming languages, and leverages specific behavior expected in geo-scientific programs. As we show in this work some of these optimizations deliver speedups of almost 100x, and are key to the industrial-quality performance of one of the world's most widely used geomodeling tools.

Assunto

Linguagem de programação (Computadores), Computação, Modelagem de dados Aspectos ambientais

Palavras-chave

Linguagem de domínio específico, Modelagem ambiental, Fluxos de dados

Citação

Departamento

Curso

Endereço externo

Avaliação

Revisão

Suplementado Por

Referenciado Por