JinSol, uma interface em Java para solvers lineares.



Documentos relacionados
Software Livre e Engenharia Elétrica

Implementar algoritmos de solução de sistemas esparsos de grande porte utilizando métodos iterativos não-estacionários e armazenamento otimizado.

O ENSINO DE CÁLCULO NUMÉRICO: UMA EXPERIÊNCIA COM ALUNOS DO CURSO DE CIÊNCIA DA COMPUTAÇÃO

Linguagens de. Aula 01. Profa Cristiane Koehler

3. Fase de Planejamento dos Ciclos de Construção do Software

Soluções via.net para otimização de processos paramétricos com Autodesk Inventor.

Linear Solver Program - Manual do Usuário

Computador E/S, Memória, Barramento do sistema e CPU Onde a CPU Registradores, ULA, Interconexão interna da CPU e Unidade de controle.

Universidade Federal do Espírito Santo Departamento de Informática 1 o Trabalho de Algoritmos Numéricos - 11/1. Sistemas Lineares

BIOSYS: sistema de captura e armazenamento de imagens para exames oftalmológicos em biomicroscópios - Fase 1 1

Sistemas Operacionais. Prof. André Y. Kusumoto

Primeiros passos das Planilhas de Obra v2.6

Orientações para Usuários

Metadados. 1. Introdução. 2. O que são Metadados? 3. O Valor dos Metadados

Ferramenta de Gestão de Web Site e Solution Backsite News Letter

ORGANIZAÇÃO DE COMPUTADORES MÓDULO 1

Introdução à Arquitetura de Computadores. Renan Manola Introdução ao Computador 2010/01

Na medida em que se cria um produto, o sistema de software, que será usado e mantido, nos aproximamos da engenharia.

Luís Cláudio OLIVEIRA-LOPES

Curso de Especialização em Tecnologia da Informação. Engenharia de Software

UNIVERSIDADE FEDERAL DE SANTA MARIA CENTRO DE TECNOLOGIA AULA 14 PROFª BRUNO CALEGARO

QUALIDADE DE SOFTWARE

Engenharia Informática Engenharia Electrotécnica e Computadores Programação Orientada por Objectos Projecto PlayCards

Computador Digital Circuitos de um computador (Hardware)

OANAFAS é um programa computacional


Manual das planilhas de Obras v2.5

Simulado Banco de Dados I Bimestre 1 Capítulo 1 Projeto Lógico de Banco de Dados

Expansão de Imagem #2

Engenharia de Software

Engenharia de Software II

Ambiente Visual para o Desenvolvimento de Jogos Eletrônicos

Manual de Instalação

Monitor de Comercialização - Proponente MT

Manual de instalação, configuração e utilização do Enviador XML

1. Release Instalação/ Logix Update Inovação Distribuição e Logística Inovação

Assunto 9 : Tecnologias de Inteligência Artificial nos Negócios

UNIVERSIDADE ESTADUAL DA PARAÍBA CENTRO DE CIÊNCIAS E TECNOLOGIA DEPARTAMENTO DE QUÍMICA CURSO DE LICENCIATURA EM QUÍMICA LINDOMÁRIO LIMA ROCHA

PORTABILIDADE NUMÉRICA UMA SOLUÇÃO ORIENTADA PELA SIMPLICIDADE, QUALIDADE E BAIXO CUSTO

UML e a Ferramenta Astah. Profa. Reane Franco Goulart

UML: Diagrama de Casos de Uso, Diagrama de Classes

Programação Orientada a Objeto

Projeto em Planejamento Urbano e Regional III Prof. Edvaldo Gonçalves de Amorim

DOMINE O EXCEL Fascículo 1

Manual do Teclado de Satisfação Online WebOpinião

DANDO OS PRIMEIROS PASSOS COM O GVSIG 1.1.1

Cartilha Explicativa sobre o Software de Medição de Qualidade de Conexão (Serviço de Comunicação Multimídia)

AULA 15 Plugin Preenchimento de Células

natureza do projeto e da aplicação métodos e ferramentas a serem usados controles e produtos que precisam ser entregues

Unidade 8: Padrão MVC e DAO Prof. Daniel Caetano

Algoritmos e Programação Parte Teórica

9º ENTEC Encontro de Tecnologia: 23 a 28 de novembro de 2015

FACULDADE DE TECNOLOGIA SENAC GOIÁS Segurança da Informação Módulo 1. Cristhian Lopes de Souza Wesley Bueno William Christian Cleomar Pereira

MANUAL DE UTILIZAÇÃO. Produtos: Saúde Pró Faturamento Saúde Pró Upload. Versão:

UNICE Ensino Superior Linguagem de Programação Ambiente Cliente Servidor.

Planificação de. Aplicações Informáticas B

COORDENAÇÃO DE EAD MANUAL DE UTILIZAÇÃO DO MOODLE 2.6 PERFIL ALUNO. Versão 1.0

Gerenciamento de Requisitos Gerenciamento de Requisitos

Engenharia de Software. Tema 1. Introdução à Engenharia de Software Profa. Susana M. Iglesias

Introdução. à Linguagem JAVA. Prof. Dr. Jesus, Edison O. Instituto de Matemática e Computação. Laboratório de Visão Computacional

Autoria:Aristófanes Corrêa Silva Adaptação: Alexandre César M de Oliveira

1 INTRODUÇÃO 1.1 CONCEITO DE PARADIGMAS DE LINGUAGEM DE PROGRAMAÇÃO PARADIGMAS DE LINGUAGEM DE PROGRAMAÇÃO

Engenharia de Software e Gerência de Projetos Prof. Esp. André Luís Belini Bacharel em Sistemas de Informações MBA em Gestão Estratégica de Negócios

AULA 1 INTRODUÇÃO - ENGENHARIA DE SOFTWARE. Prof. Msc. Hélio Esperidião

Introdução a Banco de Dados Aula 03. Prof. Silvestri

O Gerenciamento de Documentos Analógico/Digital

Trabalho Computacional 2. Aplicativo para Gestão Financeira. Grupos: Os trabalhos devem ser feitos individualmente ou em duplas.

Conceitos Básicos de Rede. Um manual para empresas com até 75 computadores

PROGRAMAÇÃO PARA DISPOSITIVOS MÓVEIS

Gerenciamento do ciclo de vida de um documento Simone de Abreu

Figura 5.1.Modelo não linear de um neurônio j da camada k+1. Fonte: HAYKIN, 2001

Unidade 5: Sistemas de Representação

Capítulo 2. Processos de Software Pearson Prentice Hall. Todos os direitos reservados. slide 1

PRÓ-REITORIA DE EXTENSÃO, PESQUISA E INOVAÇÃO DIRETORIA DE INOVAÇÃO E PESQUISA FORMULÁRIO II: Relatório de Atividades de Pesquisa

CRIAÇÃO DE MAPAS TEMÁTICOS COM ALOV MAP

CAPÍTULO 2. Grafos e Redes

Gerando Certificados Acadêmicos e inserindo Assinaturas Digitalizadas

Carga horária : 4 aulas semanais (laboratório) Professores: Custódio, Daniel, Julio foco: introdução a uma linguagem de programação Linguagem Java

COLETOR DE SEGURANÇA

Palavras-chave: i3geo, gvsig, Mapserver, integração, plugin. Contato: ou

Linguagem de Programação

Medidor Powersave V2 USB

Movie Maker. Fazer download de vídeos no You Tube. Para publicar no You Tube. O Windows Movie Maker 2 torna fácil para qualquer pessoa

LIBERAÇÃO DE ATUALIZAÇÃO CORDILHEIRA

Informática I. Aula 5. Aula 5-13/05/2006 1

DIRETORIA DE TECNOLOGIA DA INFORMAÇÃO SETOR DE ESTÚDIO E SUPORTE MANUAL DE UTILIZAÇÃO DO WEBMAIL DA FTC EAD

INSTALAÇÃO DO FIREFOX E JAVA PORTÁVEL CUSTOMIZADO PELO TRT DA 13ª REGIÃO

CEDERJ - CENTRO DE EDUCAÇÃO SUPERIOR A DISTÂNCIA DO ESTADO DO RIO DE JANEIRO

Fundamentos de Física e Matemática para Biologia-FFCLRP-USP Primeiro Semestre de 2007 Professor: Antônio C. Roque (DFM-FFCLRP-USP)

Estacionamento de Caminhão com Lógica Fuzzy. Daniel Ricardo dos Santos Diogo de Campos Maurício Oliveira Haensch

BACHARELADO EM SISTEMAS DE INFORMAÇÃO EaD UAB/UFSCar Sistemas de Informação - prof. Dr. Hélio Crestana Guardia

Conceito de Rede e seus Elementos. Prof. Marciano dos Santos Dionizio

Desenvolvendo um Ambiente de Aprendizagem a Distância Utilizando Software Livre

RGF SISTEMAS DE INFORMÁTICA LTDA SISARQ SISTEMA DE CONTROLE DE ARQUIVO DESLIZANTE PARAÍSO DO TOCANTINS-TO

18º Congresso de Iniciação Científica IMPLEMENTAÇÃO DE UM MODELO DE TESTE DE APLICAÇÕES WEB

Introdução ao Android

UNIVERSIDADE FEDERAL DE CAMPINA GRANDE CENTRO DE ENGENHARIA ELÉTRICA E INFORMÁTICA

Paradigmas de Linguagens de Programação

Transcrição:

JinSol, uma interface em Java para solvers lineares. Italo C. N. Lima, João Paulo K. Zanardi, Faculdade de Engenharia, PPGEM, UERJ, 20550-900, Rio de Janeiro, RJ E-mail: italonievinski@gmail.com, jpzanardi@gmail.com Luiz Mariano Carvalho Instituto de Matemática e estatística - UERJ 20550-900, Rio de Janeiro, RJ E-mail: luizmc@gmail.com Resumo: Este trabalho consiste na apresentação de uma plataforma de testes e desenvolvimento de métodos de resolução de sistemas lineares com ferramentas de análise de matrizes e de resultados. Esta plataforma conta com uma biblioteca de solvers, precondicionadores e rotinas criadoras de matrizes baseadas em processos de discretização de problemas físicos com capacidade de receber novas ferramentas desenvolvidas por usuários, aumentando sua biblioteca padrão. Palavras-chave: Java, Matlab, Precondicionadores, Sistemas Lineares, Métodos de Krylov Exposição do problema Há uma unanimidade entre os pesquisadores da área de métodos iterativos para solução de sistemas lineares: não existe o melhor método para a solução de problemas com matrizes nãosimétricas. Outro ponto de vista comum é o de que, para matrizes não-normais, há muito ainda o que se trabalhar na compreensão dos fatores que influenciam na convergência dos métodos. Ainda outro consenso, é o da necessidade de precondicionadores para acelerar os métodos de Krylov. [3]. Temos atualmente uma grande variedade de métodos de solução de sistemas lineares e precondicionadores disponíveis e uma vasta bibliografia identificando algumas de suas propriedades e resultados com diferentes problemas. Entretanto ao nos depararmos com um novo problema buscamos também realizar diversos testes afim de obter informações sobre o comportamento de cada método visando encontrar uma escolha viável de solução, tanto em questão de velocidade de processamento quanto em necessidade de armazenamento. Realizar estes testes pode ser uma tarefa exaustiva e consumir tempo devido a dificuldade de se configurar um ambiente de testes, organizar relatórios com os dados dos testes, construir gráficos para análise entre outros aspectos. Da mesma forma ao desenvolver ou modificar um solver ou um precondicionador, desejamos igualmente realizar testes comparativos, com outros métodos aplicados sobre diferentes problemas, o que nos leva à um cenário semelhante. Pensando neste cenário foi iniciado o desenvolvimento de uma ferramenta que funcione como plataforma de testes de solucionadores de sistemas lineares com interface gráfica. O objetivo é tornar este processo simples e eficiente, integrando plataformas e linguagens, com portabilidade e capaz de receber novos métodos e ferramentas em forma de plug-ins através arquivos xml, além dos que já estarão configurados para o usuário. Os arquivos xml poderão ser gerados manualmente pelo usuário, ou a partir de uma área da interface que irá auxiliar neste processo. 228

Proposta de desenvolvimento. A atual proposta é uma reformulação e um grande avanço sobre o trabalho apresentando em [6], que foi desenvolvido inteiramente em MATLAB. A experiência obtida no desenvolvimento da versão anterior nos levou a melhores escolhas, como utilização do Java para o desenvolvimento da interface gráfica, o que possibilitou um avanço significativo na criação do JinSol. Para a troca de informações entre diferentes plataformas, foi implantado o uso um padrão de arquivo de texto, que permite a comunicação e passagem de parâmetros entre a interface e rotinas em qualquer outra linguagem. O programa possui uma interface, que integra rotinas de resolução de sistemas lineares para tornar mais eficiente a realização de testes de métodos conhecidos sobre novos problemas ou de novos métodos sobre problemas conhecidos. Além de uma plataforma de testes, o objetivo é ser um auxiliador no desenvolvimento de métodos de resolução de sistemas lineares. O programa em si também deve atuar como uma biblioteca de métodos e problemas, fornecendo ao usuário opções padrão, mas um das ideias centrais é a de que o programa seja capaz de receber do usuário novos recursos. A escolha do Java para a plataforma principal se deve à sua portabilidade e ao seu paradigma de orientação a objeto fornecer reutilização de código sem duplicação, o que garante uma manutenção facilitada de todo o programa, além de pacotes de widgets abrangentes. Esta plataforma por sua vez tem como meio de funcionamento a utilização de diversos programas de forma integrada para realização dos testes e análise dos dados resultantes. Resultados Obtidos Após o primeiro período de desenvolvimento temos em funcionamento a primeira versão do JinSol oferecendo uma gama razoável de opções de testes, com ferramentas para análise gráfica de propriedades das matrizes e de resultados. As implementações até o presente momento são Figura 1: Interface JinSol apenas de rotinas de solução em MATLAB, algumas intradas à C através de mex-files, as quais recebem como parâmetros os dados fornecidos pelo usuário na interface do programa, contudo, 229

essas informações são enviadas de uma forma genérica, pensando em futuras implementações de rotinas em outras linguagens. A Figura 1 mostra uma das abas de configuração de teste para a categoria de solver básico. A categoria solver básico resolve o problema do tipo M 1 Ax = M 1 b, (1) onde A R n n é a matriz de coeficientes, x, b R n são o vetor de incógnitas e o vetor de constantes respectivamente e M é um precondicionador. O sistema precondicionado será resolvido com um método de Krylov. A aba apresentada na Figura 1 é de configuração do problema, onde o usuário irá preparar uma lista de problemas a serem resolvidos. As matrizes A podem ser criadas a partir de uma das opções fornecidas, ou carregadas de um arquivo em um dos formatos implementados, como o formato mtx utlizado pelo matrix market(http://math.nist.gov/matrixmarket), um repositório de matrizes para estudos comparativos de algoritmos de algebra linear numérica. O lado direito b e o chute inicial x 0 serão também escolhidos pelo usuário. Na aba Solver usuário irá configurar, de forma semelhante, uma lista de solvers, com opções como GMRES, PCG e BiCG [5]. Por fim será configurada uma lista de precondicionadores M de uso geral, entre as opções temos fatorações incompletas e algumas opções de inversa aproximada [1]. Formadas as listas o usuário Figura 2: Relatório em texto irá então rodar uma bateria de testes que será a combinação dos elementos destas três listas. Os dados dos testes serão impressos em um relatório em dois formatos possíveis. Um deles é o formato csv (comma separated value) que poderá ser aberto, organizado e analisado em um programa de edição de planilhas, como MS Excel. O outro é um arquivo de texto que pode ser visualizado no próprio programa como na imagem (2) ou em um editor de texto de preferência. O programa irá gerar também outros dados que poderão ser armazenados, segundo a escolha 230

do usuário, para serem analisados, como os vetores de decaimento do resíduo, que podem ser visualizados no próprio JinSol (Figura 3). O programa oferece também uma ferramenta para análise de matrizes, fornecendo dados como número de não zeros, número de condicionamento e autovalores. É possível também visualizar o padrão de esparsidade (Figura 4) e a posição dos autovalores no plano de Argand-Gauss. Figura 3: Análise do decaimento de resíduo O programa conta também com uma categoria com uma classe de precondicionadores flexíveis para problemas de ponto de sela [2] do tipo descrito em [4], cuja rotina utilizada deriva da desenvolvida pelo próprio Fortes [4] para solução de um problema de simulação de enchimento de reservatórios. A razão do precondicionador ser chamado de flexível é que M em (1) se trata de um método de resolução aproximado do sistema original Ax = b, que utiliza métodos de Krylov na solução. Este método aproximado leva em consideração as propriedades do problema de ponto de sela, aumentando a efetividade do precondicionador ao resolver o sistema precondicionado. Uma terceira categoria oferece uma classe de precondicionadores de decomposição em domínios com uso de malha grosseira. Conclusão O funcionamento da versão descrita do JinSol já passou por avaliação interna e o programa está sendo utilizado para testes em um projeto em parceria com a Petrobras no estudo de precondicionadores que calculam aproximações da inversa da matriz A, ou seja ao invés de se obter M A calcula-se diretamente M 1 A 1. Um dos principais interesses nessa classe de precondicionadores é o alto nível de paralelismo que algumas rotinas são capazes de implementar. O uso do programa tem permitido que sejam implementadas melhorias baseadas na experiência dos usuários na utilização do programa, entre elas: Melhor organização de dados em relatórios. Implementações visuais que facilitam o uso do programa. 231

Figura 4: Análise de Matrizes Armazenamento de dados úteis para análises posteriores. A instalação do programa em outros computadores se mostrou simples tanto no sistema operacional Windows quanto no Ubuntu. Esta portabilidade é um dos objetivos desde a formulação do programa e que parece ter sido alcançada com sucesso. Como planos futuros temos que em breve iremos adicionar o suporte para que o usuário possa implantar novos solvers, precondicionadores e rotinas geradoras de matrizes através de arquivos xml, que poderão ser gerados através de uma interface gráfica simples e intuitiva. Outros planos não muito distantes envolvem a adição de rotinas em linguagem C, C++ e Fortran e uma comunicação com os pacotes PETSc (http://www.mcs.anl.gov/petsc) e Trilinos (http://trilinos.sandia.gov/packages), entre outros. Serão adicionadas também diferentes ferramentas de análise das informações oriundas do problema e um banco de dados de testes estruturado para evitar a execução de testes repetidos desnecessariamente, perda de informações, e facilitar outros testes comparativos. O programa se encontra em teste e ainda não está disponível para download nesta versão, mas estará em uma próxima versão com condições de uso de software livre. Referências [1] M. Benzi, Preconditioning Techniques for Large Linear Systems: A Survey, Journal of Computational Physics, 182 (2002) 418-477. [2] M. Benzi; G. H. Golub; J. Liesen, Numerical solution of saddle point problems. Acta Numerica, 14 (2005) 1-137. [3] L. M. Carvalho, Avanços em métodos de Krylov para solução de sistemas lineares de grande porte. Segunda Edição., SBMAC, São Carlos - SP, 2012. 232

[4] W. R. Fortes, Precondicionadores e solucionadores para resolução de sistemas lineares obtidos de simulação de enchimento de reservatórios, Dissertação de mestrado, PPG-EM UERJ, 2008. [5] G. Meurant, Computer Solution of Large Linear Systems. Elsevier, North-Rolland, 1999. [6] I. C. Nievinski Lima; L. M. Carvalho, Programa com interface gráfica para testes e estudo de soluções para problemas de ponto de sela. In: Congresso Nacional de Matemática Aplicada e Computacional, Águas de Lindóia - SP. Anais do CNMAC, 2012. v. 4. 233