213 resultados para Programacao distribuida
Resumo:
En años recientes,la Inteligencia Artificial ha contribuido a resolver problemas encontrados en el desempeño de las tareas de unidades informáticas, tanto si las computadoras están distribuidas para interactuar entre ellas o en cualquier entorno (Inteligencia Artificial Distribuida). Las Tecnologías de la Información permiten la creación de soluciones novedosas para problemas específicos mediante la aplicación de los hallazgos en diversas áreas de investigación. Nuestro trabajo está dirigido a la creación de modelos de usuario mediante un enfoque multidisciplinario en los cuales se emplean los principios de la psicología, inteligencia artificial distribuida, y el aprendizaje automático para crear modelos de usuario en entornos abiertos; uno de estos es la Inteligencia Ambiental basada en Modelos de Usuario con funciones de aprendizaje incremental y distribuido (conocidos como Smart User Model). Basándonos en estos modelos de usuario, dirigimos esta investigación a la adquisición de características del usuario importantes y que determinan la escala de valores dominantes de este en aquellos temas en los cuales está más interesado, desarrollando una metodología para obtener la Escala de Valores Humanos del usuario con respecto a sus características objetivas, subjetivas y emocionales (particularmente en Sistemas de Recomendación).Una de las áreas que ha sido poco investigada es la inclusión de la escala de valores humanos en los sistemas de información. Un Sistema de Recomendación, Modelo de usuario o Sistemas de Información, solo toman en cuenta las preferencias y emociones del usuario [Velásquez, 1996, 1997; Goldspink, 2000; Conte and Paolucci, 2001; Urban and Schmidt, 2001; Dal Forno and Merlone, 2001, 2002; Berkovsky et al., 2007c]. Por lo tanto, el principal enfoque de nuestra investigación está basado en la creación de una metodología que permita la generación de una escala de valores humanos para el usuario desde el modelo de usuario. Presentamos resultados obtenidos de un estudio de casos utilizando las características objetivas, subjetivas y emocionales en las áreas de servicios bancarios y de restaurantes donde la metodología propuesta en esta investigación fue puesta a prueba.En esta tesis, las principales contribuciones son: El desarrollo de una metodología que, dado un modelo de usuario con atributos objetivos, subjetivos y emocionales, se obtenga la Escala de Valores Humanos del usuario. La metodología propuesta está basada en el uso de aplicaciones ya existentes, donde todas las conexiones entre usuarios, agentes y dominios que se caracterizan por estas particularidades y atributos; por lo tanto, no se requiere de un esfuerzo extra por parte del usuario.
Resumo:
o presente trabalho tem como propósito validar o projeto piloto, cujo objetivo é modificar uma realidade existente no método de descarte dos resíduos sólidos gerados na CEASA-POA, objetivando diminuir o desperdício de alimentos e reduzir a poluição ambiental, - - em sua maioria são resíduos de alta qualidade. No modelo atual os resíduos sólidos de hortiftutigranjeiros da CEASA-POA, são quase que integralmente descartados no aterro sanitário, mas que podem e devem ser reprocessados, via novo ciclo produtivo. Em pesquisa realizada, encontramos outros dois tipos de atividades. desenvolvidas, nas demais CEASAS existentes no país, inclusive na CEASA-POA. O reaproveitamento dos resíduos em condições para consumo humano, com a existência de um banco de alimentos, onde os atacadistas doam produtos que não estão em boas condições para venda, por motivos diversos, mas em condições para alimentação humana em Curitiba-PR esta doação sofre um processo de industrialização, resultando na fabricação de uma sopa enlatada, distribuida a entidades assistenciais Existe também, o descarte seletivo dos resíduos para produção de adubo composto orgânico. A partir deste trabalho, apresenta-se uma terceira alternativa, que é o processamento dos resíduos sólidos gerados na CEASA - Porto Alegre-RS, em uma planta piloto, com a finalidade de obter-se um complemento para ser ofertado na alimentação de anlinais. Através de um estudo prévio com o mapeamento de toda a CEASA, consistindo na localização, quantificação e qualificação de todos os resíduos sólidos gerados na CEASA. Os valores obtidos foram ao longo de quatro meses, com a geração média de 30 toneladas de resíduos hortiftutigranjeiros por dia. De posse das informações levantadas, foi proposto este presente projeto piloto, em beneficiar uma pequena parte destes resíduos. O método utilizado para obtenção da ração, foi o processo de desidratação via evaporação térmica, obtendo-se um complemento alimentar, com teor de proteína brota média na ordem de 10,3%, excelente aceitação pelos bovinos e suínos. Assim, espera-se que este projeto piloto, proposto, elaborado e executado com sucesso, justifique a implementação de equipamentos de grande porte, com capacidade de processar o total do descarte, em escala industrial Podendo ser reproduzido nas demais CEASAS de nosso Estado e Pais, evitandose assim o desperdício de alimentos, e aumento do tempo de vida útil dos aterros sanitários com maior preservação do meio ambiente.
Resumo:
Neste estudo são discutidos alguns aspectos relacionados à escolha da primeira linguagem de programação em currículos de ciência da computação, com interesse especial em Pascal e Java. A primeira linguagem é amplamente adotada para ensinar programação aos novatos, enquanto a segunda está ganhando popularidade como uma linguagem moderna e abrangente, que pode ser usada em muitas disicplinas ao longo de um curso degraduação em computação como ferramenta para ensinar desde recursos básicos de programação até tópicos mais avançados. Embora vários problemas quanto ao ensino de Java, com a primeira linguagem de programação, possam ser apontadas, consideramosque Java é uma boa escolha, visto que (a) oferece apoio a importantes questões conceituais e tecnológicos e, (b) é possível contornar algumas complexidades da linguagem e da plataforma Java para torná-las mais adequadas à alunos iniciantes. Além disso, considerando a grande popularidade de Pascal nos currículos de cursos de computação, uma eventual adoção de Java conduz à outro problema: a falta de professores aptos a lecionar programação orientada a objetos. Sugerimos que este problema de migração de Pascal para Java seja enfrentado através de smplificação do ambiente de desenvolvimento de programas, uso de um pacote com classes que facilitam a entrada e saída, e o desenvolvimento de um catálogo comparativo de programas implementados em ambas as linguagens. Neste estudo também é apresentado o JEduc, um IDE muito simples com o objetivo de dar suporte ao ensino da linguagem de programação orientada a objetos Java aos novatos. Oferece componentes desenvolvidos em Java que integram edição, compilação e execução de programas Java. Além das funcionalidades comuns a um IDE, JEduc foi desenvolvido para gir como uma ferramente pedagógica: simplifica a maioria das mensagens do compilador e erros da JRE, permite a inserção de esqueletos de comandos, e incorpora pacotes especiais para esconder alguns detalhes sintáticos e semânticos indesejáveis.
Resumo:
A simulação paralela de eventos é uma área da computação que congrega grande volume de pesquisas, pela importância em facilitar o estudo de novas soluções nas mais diferentes áreas da ciência e tecnologia, sem a necessidade da construção de onerosos protótipos. Diversos protocolos de simulação paralela podem ser encontrados, divididos em dois grandes grupos de acordo com o algoritmo empregado para a execução em ordem dos eventos: os conservadores e os otimistas; contudo, ambos os grupos utilizam trocas de mensagens para a sincronização e comunicação. Neste trabalho, foi desenvolvido um novo protocolo de simulação paralela, fazendo uso de memória compartilhada, o qual foi implementado e testado sobre um ambiente de estações de trabalho, realizando, assim, simulação paralela com uso de memória compartilhada distribuída. O protocolo foi desenvolvido tendo como base de funcionamento os protocolos conservadores; utilizou diversas características dos mesmos, mas introduziu várias mudanças em seu funcionamento. Sua execução assemelha-se às dos protocolos de execução síncrona, utilizando conceitos como o lookahead e janelas de tempo para execução de eventos. A principal mudança que o novo protocolo sofreu foi proporcionada pelo acesso remoto à memória de um LP por outro, produzindo diversas outras nas funções relativas à sincronização dos processos, como o avanço local da simulação e o agendamento de novos eventos oriundos de outro LP. Um ganho adicional obtido foi a fácil resolução do deadlock, um dos grandes problemas dos protocolos conservadores de simulação paralela. A construção de uma interface de comunicação eficiente com uso de memória compartilhada é o principal enfoque do protocolo, sendo, ao final da execução de uma simulação, disponibilizado o tempo de simulação e o tempo de processamento ocioso (quantia utilizada em comunicação e sincronização). Além de uma implementação facilitada, propiciada pelo uso de memória compartilhada ao invés de trocas de mensagens, o protocolo oferece a possibilidade de melhor ocupar o tempo ocioso dos processadores, originado por esperas cada vez que um LP chega a uma barreira de sincronização. Em nenhum momento as modificações efetuadas infringiram o princípio operacional dos protocolos conservadores, que é não possibilitar a ocorrência de erros de causalidade local. O novo protocolo de simulação foi implementado e testado sobre um ambiente multicomputador de memória distribuída, e seus resultados foram comparados com dois outros simuladores, os quais adotaram as mesmas estratégias, com idênticas ferramentas e testados em um mesmo ambiente de execução. Um simulador implementado não utilizou paralelismo, tendo seus resultados sido utilizados como base para medir o speedup e a eficiência do novo protocolo. O outro simulador implementado utilizou um protocolo conservador tradicional, descrito na literatura, realizando as funções de comunicação e sincronização através de trocas de mensagens; serviu para uma comparação direta do desempenho do novo protocolo proposto, cujos resultados foram comparados e analisados.
Resumo:
Este trabalho descreve a aplicação da Programação Genética, uma técnica de Computação Evolucionária, ao problema da Síntese de Fala automática. A Programação Genética utiliza as técnicas da evolução humana para descobrir programas bem adaptados a um problema específico. Estes programas, compostos de instruções, variáveis, constantes e outros elementos que compõe uma linguagem de programação, são evoluídos ao longo de um conjunto de gerações. A Síntese de Fala, consiste na geração automática das formas de ondas sonoras a partir de um texto escrito. Uma das atividades mais importantes, é realizada através da conversão de palavras e letras para os sons da fala elementares (fonemas). Muitos sistemas de síntese são implementados através de regras fixas, escritas por programadores humanos. Um dos mais conhecidos sistemas de síntese é o FESTIVAL, desenvolvido pela Universidade de Edimburgh, usando a linguagem de programação funcional LISP e um número fixo de regras. Neste trabalho, nós exploramos a possibilidade da aplicação do paradigma da Programação Genética, para evoluir automaticamente regras que serão adotadas para implementação do idioma Português na ferramenta FESTIVAL, desenvolvido no projeto SPOLTECH (CNPq – NSF cooperação entre UFRGS e Universidade do Colorado). A modelagem do problema, consiste na definição das regras de pronúncia do Português Brasileiro, que a implementação do sistema FESTIVAL pronuncia erradamente, já que o mesmo foi implementado primariamente para o idioma Inglês. A partir destas regras, o sistema de Programação Genética, desenvolvido neste trabalho, evolui programas que constituem boas soluções para a conversão de letras para fonemas. A descrição dos resultados obtidos, cobre detalhes sobre a evolução das soluções, complexidade e regras implementadas, representadas pelas soluções mais bem adaptadas; mostrando que a Programação Genética, apesar de ser complexa, é bastante promissora.
Resumo:
A programação paralela é sem dúvida mais complexa do que a programação seqüencial. O controle de múltiplos processos e de suas interações são as principais razões para tal complexidade. Apesar da existência de algumas ferramentas que atendem à fase de desenvolvimento de programas paralelos, a complexidade é normalmente passada para as ferramentas paralelas, isto é, as ferramentas não são de fácil utilização. Assim, existe uma necessidade de ambientes e ferramentas realmente fáceis de usar no âmbito da programação paralela. Embora existam algumas ferramentas interessantes, inclusive algumas comerciais, seu uso permanece insuficiente, em parte devido à complexidade na utilização de algumas delas, em parte devido ao seu uso específico em determinadas plataformas. Portanto, existe ainda um grande campo de estudo no que diz respeito a melhorias de projeto sobre ferramentas existentes e desenvolvimento de ferramentas com um maior número de recursos. Provavelmente, a ferramenta paralela mais necessária aos programadores é o depurador paralelo. Por sua vez, ferramentas de depuração paralela estão entre as mais complexas de se desenvolver e talvez isso explique o motivo pelo qual poucas têm sido efetivamente utilizadas. Este trabalho descreve uma contribuição no campo da depuração paralela através da análise de interfaces de depuração paralela e da proposta de um modelo. A partir deste modelo, uma interface de depuração paralela – PADI (PArallel Debugger Interface) foi desenvolvida e seu principal objetivo é o de oferecer uma interface intuitiva e de fácil utilização. O modelo proposto e conseqüentemente a ferramenta PADI tratam da depuração paralela simbólica on-line. A depuração on-line trata do oferecimento de acesso aos símbolos do programa, como variáveis e registradores. A depuração on-line diferencia-se da off-line pelo tipo de interação com a execução do programa. A depuração on-line oferece interação direta com a aplicação, enquanto que a off-line interage com um arquivo de monitoração gravado durante a execução da aplicação paralela. A depuração on-line é similar à depuração seqüencial tradicional e, conseqüentemente, é de mais fácil utilização por parte da maioria dos programadores.
Resumo:
Com a proliferação de computadores pessoais e a popularização da Internet, as novas tecnologias da comunicação começam a provocar impactos no setor educacional, com a promessa de construção de cenários inovadores, apoiados em diferentes formas de educação baseada na Web. Estas inovações tecnológicas aplicadas ao ensino caracterizam a intensificação dos processos de educação à distância como uma das tendências mais marcantes desse final de milênio. A tendência destas inovações é crescer e juntamente com a Internet contribuir para a melhoria do ensino e/ou aprendizagem a distância. A Educação à Distância (EAD) tem sido um termo usado para qualquer forma de estudo em que os alunos não estejam em contato direto com seu professor. Este tipo de ensino pode ser considerado como uma alternativa educacional capaz de propiciar a ampliação de oportunidades educativas, através de programas de qualidade. Atualmente, para desenvolver ambientes para o ensino a distância são utilizados os conceitos de Inteligência Artificial Distribuída, mais precisamente o conceito de sistemas multiagentes, com a finalidade de aprimorar e monitorar o ensino através da Internet. O sistema AME-A proposto por D’Amico é um exemplo de ambiente que utiliza a tecnologia de multiagentes. Ele é constituído de vários agentes inteligentes que atuam de forma concorrente e comunicam-se através de mensagens. Dessa maneira, transformam o sistema em um conjunto de agentes cooperantes em busca de um objetivo que é o de ensinar e/ou aprender. Este trabalho tem como objetivo utilizar o estudo e a abordagem de modelagem do sistema de ensino/aprendizagem definido por D’Amico no que se refere ao agente ferramentas para o professor. Propõe-se a desenvolver uma ferramenta que irá auxiliar o professor na distribuição de seus conhecimentos na Internet, armazenando as informações inseridas pelo professor bem como fornecer orientações a respeito de determinadas operações que o sistema realiza. Estas orientações também apresentam como foco os seguintes fatores: descrição da importância da motivação e interatividade num curso a distância, sugestões de metodologias de ensino que o professor pode usar nas suas aulas, orientações a respeito de avaliação do aprendizado do aluno, dicas sobre conteúdos de materiais complementares às aulas e por fim, menciona exemplos de ferramentas em modo texto e multimídia que podem ser utilizadas para comunicação.
Resumo:
Este trabalho situa-se na área de Sistemas Multiagente, que é uma sub-área da Inteligência Artificial Distribuída. Em particular, o problema abordado nesta dissertação é o da modelagem de ambientes, um aspecto importante na criação de simulações baseadas em sociedades de agentes cognitivos, no entanto pouco tratado na literatura da área. A principal contribuição deste trabalho é a concepção de uma linguagem, chamada ELMS, própria para a definição de ambientes multiagente, e a implementação de um protótipo de interpretador para esta linguagem. O resultado da interpretação é um processo que simula o ambiente descrito em alto nível, e é apropriado para a interação com os agentes cognitivos que irão compartilhar o ambiente. Esta linguagem foi desenvolvida no contexto do projeto MASSOC, que tem como objetivo a criação de simulações sociais com agentes cognitivos. A abordagem deste projeto dá ênfase ao uso da arquitetura BDI para agentes cognitivos, a comunicação inter-agente de alto nível (ou seja, baseada em atos de fala) e a modelagem de ambientes com a linguagem ELMS, que é proposta neste trabalho. Os ambientes e agentes que podem ser usados na criação de simulaçõpes, bem como a comunicação entre eles utilizando a ferramenta SACI, são definidos ou gerenciados a partir de uma interface gráfica, que facilita a criação e controle de simulações com a plataforma MASSOC. Além de apresentar a linguagem ELMS e seu interpretador, esta dissertação menciona ainda, como breve estudo de caso, uma simulação de aspectos sociais do crescimento urbano. Esta simulação social auxiliou na concepção e avaliação da linguagem ELMS.
Resumo:
Modelos BDI (ou seja, modelos Beliefs-Desires-Intentions models) de agentes têm sido utilizados já há algum tempo. O objetivo destes modelos é permitir a caracterização de agentes utilizando noções antropomórficas, tais como estados mentais e ações. Usualmente, estas noções e suas propriedades são formalmente definidas utilizandos formalismos lógicos que permitem aos teóricos analisar, especificar e verificar agentes racionais. No entanto, apesar de diversos sistemas já terem sido desenvolvidos baseados nestes modelos, é geralmente aceito que existe uma distância significativa entre esta lógicas BDI poderosas e sistemas reais. Este trabalho defende que a principal razão para a existência desta distância é que os formalismos lógicos utilizados para definir os modelos de agentes não possuem uma semântica operacional que os suporte. Por “semântica operacional” entende-se tanto procedimentos de prova que sejam corretos e completos em relação à semântica da lógica, bem como mecanismos que realizem os diferentes tipos de raciocínio necessários para se modelar agentes. Há, pelo menos, duas abordagens que podem ser utilizadas para superar esta limitação dos modelos BDI. Uma é estender as lógicas BDI existentes com a semântica operacional apropriada de maneira que as teorias de agentes se tornem computacionais. Isto pode ser alcançado através da definição daqueles procedimentos de prova para as lógicas usadas na definição dos estados mentais. A outra abordagem é definir os modelos BDI utilizando formalismos lógicos apropriados que sejam, ao mesmo tempo, suficientemente poderosos para representar estados mentais e que possuam procedimentos operacionais que permitam a utilizaçao da lógica como um formalismo para representação do conhecimento, ao se construir os agentes. Esta é a abordagem seguida neste trabalho. Assim, o propósito deste trabalho é apresentar um modelo BDI que, além de ser um modelo formal de agente, seja também adequado para ser utilizado para implementar agentes. Ao invés de definir um novo formalismo lógico, ou de estender um formalismo existente com uma semântica operacional, define-se as noções de crenças, desejos e intenções utilizando um formalismo lógico que seja, ao mesmo tempo, formalmente bem-definido e computacional. O formalismo escolhido é a Programação em Lógica Estendida com Negação Explícita (ELP) com a semântica dada pelaWFSX (Well-Founded Semantics with Explicit Negation - Semântica Bem-Fundada com Negação Explícita). ELP com a WFSX (referida apenas por ELP daqui para frente) estende programas em lógica ditos normais com uma segunda negação, a negação explícita1. Esta extensão permite que informação negativa seja explicitamente representada (como uma crença que uma propriedade P não se verifica, que uma intenção I não deva se verificar) e aumenta a expressividade da linguagem. No entanto, quando se introduz informação negativa, pode ser necessário ter que se lidar com programas contraditórios. A ELP, além de fornecer os procedimentos de prova necessários para as teorias expressas na sua linguagem, também fornece um mecanismo para determinar como alterar minimamente o programa em lógica de forma a remover as possíveis contradições. O modelo aqui proposto se beneficia destas características fornecidas pelo formalismo lógico. Como é usual neste tipo de contexto, este trabalho foca na definição formal dos estados mentais em como o agente se comporta, dados tais estados mentais. Mas, constrastando com as abordagens até hoje utilizadas, o modelo apresentanto não é apenas uma especificação de agente, mas pode tanto ser executado de forma a verificar o comportamento de um agente real, como ser utilizado como mecanismo de raciocínio pelo agente durante sua execução. Para construir este modelo, parte-se da análise tradicional realizada na psicologia de senso comum, onde além de crenças e desejos, intenções também é considerada como um estado mental fundamental. Assim, inicialmente define-se estes três estados mentais e as relações estáticas entre eles, notadamente restrições sobre a consistência entre estes estados mentais. Em seguida, parte-se para a definição de aspectos dinâmicos dos estados mentais, especificamente como um agente escolhe estas intenções, e quando e como ele revisa estas intenções. Em resumo, o modelo resultante possui duas características fundamentais:(1) ele pode ser usado como um ambiente para a especificação de agentes, onde é possível definir formalmente agentes utilizando estados mentais, definir formalmente propriedades para os agentes e verificar se estas propriedades são satifeitas pelos agentes; e (2) também como ambientes para implementar agentes.
Resumo:
A presente tese visa contribuir na construção de ambientes de desenvolvimento de software através da proposição de uma arquitetura reflexiva para ambiente de suporte a processo, nomeada WRAPPER (Webbased Reflective Architecture for Process suPport EnviRonment). O objetivo desta arquitetura é prover uma infra-estrutura para um ambiente de suporte a processo de software, integrando tecnologias da World Wide Web, objetos distribuídos e reflexão computacional. A motivação principal para esta arquitetura vem da necessidade de se obter maior flexibilidade na gerência de processo de software. Esta flexibilidade é obtida através do uso de objetos reflexivos que permitem a um gerente de processo obter informações e também alterar o processo de software de forma dinâmica. Para se obter um ambiente integrado, a arquitetura provê facilidades para a agregação de ferramentas CASE de plataformas e fabricantes diversos, mesmo disponibilizadas em locais remotos. A integração de ferramentas heterogêneas e distribuídas é obtida através do uso de tecnologias Web e de objetos distribuídos. Reflexão computacional é usada no ambiente tanto para extrair dados da execução do processo, quanto para permitir a adaptação do mesmo. Isto é feito através da introdução e controle de meta-objetos, no metanível da arquitetura, que podem monitorar e mesmo alterar os objetos do nível base. Como resultado, a arquitetura provê as seguintes características: flexibilidade na gerência de processo, permitindo o controle e adaptação do processo; distribuição do ambiente na Web, permitindo a distribuição de tarefas do processo de software e a integração de ferramentas em locais remotos; e heterogeneidade para agregar componentes ao ambiente, permitindo o uso de ferramentas de plataformas e fornecedores diversos. Neste contexto, o presente trabalho apresenta a estrutura da arquitetura reflexiva, bem como os mecanismos usados (e suas interações) para a modelagem e execução de processo dentro do ambiente de suporte ao processo de software.
Resumo:
O aumento na complexidade dos sistemas embarcados, compostos por partes de hardware e software, aliado às pressões do mercado que exige novos produtos em prazos cada vez menores, tem levado projetistas a considerar a possibilidade de construir sistemas a partir da integração de componentes já existentes e previamente validados. Esses componentes podem ter sido desenvolvidos por diferentes equipes ou por terceiros e muitas vezes são projetados utilizando diferentes metodologias, linguagens e/ou níveis de abstração. Essa heterogeneidade torna complexo o processo de integração e validação de componentes, que normalmente é realizado através de simulação. O presente trabalho especifica mecanismos genéricos e extensíveis que oferecem suporte à cooperação entre componentes heterogêneos em um ambiente de simulação distribuída, sem impor padrões proprietários para formatos de dados e para a descrição do comportamento e interface dos componentes. Esses mecanismos são baseados na arquitetura DCB (Distributed Co-Simulation Backbone), voltada para co-simulação distribuída e heterogênea e inspirada nos conceitos de federado (componente de simulação) e federação (conjunto de componentes) que são definidos pelo HLA (High Level Architecture), um padrão de interoperabilidade para simulações distribuídas. Para dar suporte à co-simulação distribuída e heterogênea, esse trabalho descreve mecanismos que são responsáveis pelas tarefas de cooperação e distribuição, chamados de embaixadores, assim como o mecanismo gateway, que é responsável pela interoperabilidade entre linguagens e conversão de tipos de dados. Também é apresentada uma ferramenta de suporte à geração das interfaces de co-simulação, que são constituídas de dois embaixadores configuráveis e um gateway para cada federado, gerado a partir de templates pré-definidos.
Resumo:
Resumo não disponível.
Resumo:
Este trabalho apresenta um mapeamento centrado nas construções não usuais da linguagem Nautilus, para a linguagem convencional, no caso Java, mantendo propriedades com atomicidade que são requisitos da semântica formal da linguagem. Nautilus é originalmente uma linguagem de especificação baseada em objetos, textual que suporta objetos concorrentes e não deterministas. Desde então a linguagem foi modificada aom extensões como classes e uma notação diagramática, além de se investigar seu uso como linguagem de programação. Suas construções incomuns (reificação, agregação, etc.) são baseados em seu domínio semântico: Automâtos Não Sequenciais. Este domíno satisfaz composição diagonal, i.e refinamentos se compõem (verticalmente) refletindo uma descrição gradual de sistemas, envolvendo múltiplos níveis de abstração, e distribui-se através de combinadores (horizontalmente), o que significa que o refinamento de um sistema composto é a combinação de do refinamento de suas partes.O trabalho inclui um mapeamento inicial de um subconjunto da linguagem(objeto base, reificação, agregação e visão), uma versão ampliada para abranger mais construções( interação e classes), e uma versão refinada mais concorrente e sugestões de modificação na linguagem.
Resumo:
Na simulação heterogênea de um sistema eletrônico complexo, um mesmo modelo pode ser composto por partes distintas em relação às tecnologias ou linguagens utilizadas na sua descrição, níveis de abstração, ou pela combinação de partes de software e de hardware (escopo da co-simulação). No uso de modelos heterogêneos, a construção de uma ponte eficaz entre diferentes simuladores, em conjunto com a solução de problemas tais como sincronização e tradução de dados, são alguns dos principais desafios. No contexto do projeto de sistemas embarcados, a validação desses sistemas via co-simulação está sujeita a estes desafios na medida em que um mesmo modelo de representação precisa suportar a cooperação consistente entre partes de hardware e de software. Estes problemas tornam-se mais significativos quando abordados em ambientes distribuídos, o que aumenta a complexidade dos mecanismos que gerenciam os ítens necessários à correta cooperação entre partes diferentes. Contudo, embora existam abordagens e ferramentas voltadas para o tratamento de modelos heterogêneos, inclusive em ambientes distribuídos, ainda persiste uma gama de limitações causadas pela distribuição e heterogeneidade de simuladores. Por exemplo, restrições quanto à variedade de tecnologias (ou linguagens) utilizadas na descrição das partes de um modelo, flexibilidade para o reuso de partes existentes, ou em tarefas de gerenciamento de sincronização/dados/interface/distribuição. Além disso, em geral, nas soluções existentes para simulação heterogênea, alterações são necessárias sobre as partes do modelo, limitando a preservação de sua integridade. Esta é uma característica indesejável, por exemplo, no reuso de componentes IP (Intellectual Property) Neste contexto, esta tese apresenta o DCB (Distributed Co-simulation Backbone), cujo propósito geral é o suporte à execução distribuída dos modelos heterogêneos. Para isso, são observados de modo integrado quatro fatores básicos: a distribuição física; a independência dos componentes (partes); o encapsulamento das estratégias de gerenciamento de tempo, de dados e de comunicação; e a sincronização híbrida. Em geral, as soluções existentes valorizam um fator em detrimento dos demais, dependendo dos propósitos envolvidos e sua variação em relação ao grau de especificidade (soluções proprietárias ou restritas a um escopo de aplicações). O Tangram, também discutido nesta tese em termos de requisitos, é uma proposta de ambiente para projeto de modelos heterogêneos distribuídos. No contexto da especificação do DCB, esta proposta tem como objetivo geral agregar num mesmo ambiente funcionalidades de apoio para a busca e catalogação de componentes, seguidas do suporte à construção e à execução distribuída de modelos heterogêneos via DCB. À luz dos princípios de generalidade e flexibilidade da arquitetura do DCB, o Tangram visa permitir que o projetista reduza seu envolvimento com detalhes relacionados ao provimento de condições necessárias à cooperação entre componentes heterogêneos. No escopo desta tese, ênfase foi dada à co-simulação de sistemas embarcados, ênfase esta observada também na construção do protótipo do Tangram/DCB, e nos estudos de caso. Contudo, a estrutura do DCB é apropriada para qualquer domínio onde a simulação possa ser utilizada como instrumento de validação, entre outros propósitos.
Resumo:
Esse trabalho de dissertação está incluído no contexto das pesquisas realizadas no Grupo de Processamento Paralelo e Distribuído da UFRGS. Ele aborda as áreas da computação de alto desempenho, interfaces simples de programação e de sistemas de interconexão de redes velozes. A máquina paralela formada por agregados (clusters) tem se destacado por apresentar os recursos computacionais necessários às aplicações intensivas que necessitam de alto desempenho. Referente a interfaces de programação, Java tem se mostrado uma boa opção para a escrita de aplicações paralelas por oferecer os sistemas de RMI e de soquetes que realizam comunicação entre dois computadores, além de todas as facilidades da orientação a objetos. Na área a respeito de interconexão de rede velozes está emergindo como uma tentativa de padronização a nova tecnologia Infiniband. Ela proporciona uma baixa latência de comunicação e uma alta vazão de dados, além de uma série de vantagens implementadas diretamente no hardware. É neste contexto que se desenvolve o presente trabalho de dissertação de mestrado. O seu tema principal é o sistema Aldeia que reimplementa a interface bastante conhecida de soquetes Java para realizar comunicação assíncrona em agregados formados por redes de sistema. Em especial, o seu foco é redes configuradas com equipamentos Infiniband. O Aldeia objetiva assim preencher a lacuna de desempenho do sistema padrão de soquetes Java, que além de usar TCP/IP possui um caráter síncrono. Além de Infiniband, o Aldeia também procura usufruir dos avanços já realizados na biblioteca DECK, desenvolvida no GPPD da UFRGS. Com a sua adoção, é possível realizar comunicação com uma interface Java sobre redes Myrinet, SCI, além de TCP/IP. Somada a essa vantagem, a utilização do DECK também proporciona a propriedade de geração de rastros para a depuração de programas paralelos escritos com o Aldeia. Uma das grandes vantagens do Aldeia está na sua capacidade de transmitir dados assincronamente. Usando essa técnica, cálculos da aplicação podem ser realizados concorrentemente com as operações pela rede. Por fim, os canais de dados do Aldeia substituem perfeitamente aqueles utilizados para a serialização de objetos. Nesse mesmo caminho, o Aldeia pode ser integrado à sistemas que utilizem a implementação de soquetes Java, agora para operar sobre redes de alta velocidade. Palavras-chave: Arquitetura Infiniband, agregado de computadores, linguagem de programação Java, alto desempenho, interface de programação.