77 research outputs found

    Avaliação de Desempenho, Consumo de Energia e Gerenciadores de Frequência em Sistemas Transacionais

    Get PDF
    Empresas como a IBM e Intel adicionaram suporte em hardware para memória transacional em seus últimos processadores. Semelhante às pesquisas iniciais com memória transacional em software, análises preliminares conduzidas com o suporte em hardware focaram na avaliação do tempo de execução. Dada a importância do consumo de energia em sistemas computacionais modernos, é vital que também sejam avaliados seu comportamento e respective correlação desempenho/energia. Com isso em mente, este trabalho avalia não apenas o tempo de execucção, mas também o consumo de energia de uma  implementação em software de memória transacional e o novo suporte em hardware presente no processador Haswell da Intel. Além disso, este artigo também avalia o impacto de cinco gerenciadores de frequência presentes no kernel do Linux, observando ganhos em EDP (Produto Energia-Latência) de até 20% em 2 de 8 aplicações estudadas.

    O Conceito de Tempo nas Linguagens de Programação

    Get PDF
    A arquitetura atual de computadores pede para que os aplicativos estejam preparados para utilizar mais de um núcleo de processamento.  Este trabalho verificará se o modelo de programação atual, i.e. orientado a objetos, permite que os programas façam bom uso desta arquitetura ou se é preciso procurar alternativas para acompanhar a evolução arquitetural. Trará uma breve explanação da história das linguagens de programação, contextualizando os motivos que levaram o mercado até o paradigma orientado a objetos.  Através destes motivos e da evolução da arquitetura, será feita uma projeção sobre algumas razões que poderão fazer com que o estilo de programação atual seja substituído.  Serão abordados os conceitos de concorrência e paralelismo que se tornam cada vez mais necessários com esta nova arquitetura. Esta abordagem será feita no modelo atual, em Java, e, trazendo como uma possível alternativa, no modelo funcional puro e de avaliação preguiçosa, mais precisamente na linguagem Haskell

    Comparando o Desempenho de Implementações de Tabelas Hash Concorrentes em Haskell

    Get PDF
    Implementar um algoritmo de tabela hash concorrente que extraia desempenho está longe de ser uma tarefa computacional trivial. Neste artigo apresentamos sete diferentes implementações de tabelas hash em Haskell, explorando desde modelos de sincronização de baixo nível até os de mais alta abstração como memórias transacionais. Nos testes realizados a implementação usando a biblioteca STM Haskell de memória transacional foi a que apresentou melhor desempenho

    Mesobi: memória transacional em software tolerante a faltas bizantinas

    Get PDF
    Dissertação (mestrado) - Universidade Federal de Santa Catarina, Centro Tecnológico, Programa de Pós-Graduação em Ciência da Computação, Florianópolis, 2015.Memória Transacional em Software (STM) é um modelo utilizado para tratar acesso concorrente a dados compartilhados, onde programadores não precisam lidar explicitamente com mecanismos de controle de concorrência, como locks. O programador, apenas delineia qual parte do código necessita ser tratado como concorrente e sua execução seguirá o modelo transacional, respeitando as propriedades: atomicidade, consistência e isolação. É proposto nessa dissertação um modelo denominado Mesobi: Memória Transacional em Software Tolerante a Faltas Bizantinas onde transações somente leitura não abortam. Existem algumas abordagens na literatura que utilizam Memória Transacional em Software, das quais grande parte tolera faltas de parada mas pouco se fala sobre faltas maliciosas. Somente o trabalho de Zhang 2012 faz tolerância a faltas Bizantinas no contexto de STM; sua proposta utiliza dois clusters para alcançar tolerância a faltas Bizantinas.No modelo de Zhang, transações somente leitura podem ser abortadas, não é suportada a execução de transações interativas e não é possível executar transações de forma otimista. O Mesobi permite alcançar tolerância a faltas Bizantinas utilizando (3f+1) réplicas, sendo que, f é o número de faltas toleradas. O modelo consiste em inicialmente tentar executar as transações de forma otimista sem a necessidade de executar o protocolo Bizantino. Transações conflitantes localmente não são iniciadas de imediato com isso evita-se trabalho improdutivo. É possível e viável a execução de transações pré-declaradas e interativas no mesmo ambiente, sendo que, transações interativas têm pior desempenho devido a sua maior troca de mensagens.Abstract : Software Transactional Memory (STM) is a model to deal concurrent accesses on shared data. With STM developers do not need to cope with explicit concurrency control mechanisms like locks. Instead developers can write parallel portions of code as transactions, which are garanteed to execute atomically and in isolation regardless of eventual data races. In this dissertation we propose a model named Mesobi: Memória Transacional em Software Tolerante a Faltas Bizantinas in which read-only transactions do not abort. There are some approaches in literature that use STM, but most of them treat crash faults, but few deal with arbitrary faults. The work presented by Zhang 2012 mentions Byzantine Fault Tolerance (BFT) in STM context, but two clusters are necessary, one for consensus and another to execute transactions. Zhang's model abort read-only transactions, does not use optimistic execution neither interactive transactions processing. It achieves BFT using (3f+1) replicas where f represents the number of tolerated faults. The model executes in an optimistic fashion the transactions without the BFT protocol. Conflicting local transactions are not executed immediately thereby saving wasted work. Execution and consistency tests showed that execution of interactive and pre-declared transactions on same environment are possible and practical. Interactive transactions have worse performance than pre-declared due to need of more message exchanges

    Especulação de threads usando arquiteturas de memória transacional em hardware

    Get PDF
    Orientadores: Guido Costa Souza de Araújo, José Nelson AmaralTese (doutorado) - Universidade Estadual de Campinas, Instituto de ComputaçãoResumo: Especulação no nível de threads (TLS) é uma técnica em hardware/software que possibilita a execução paralela de múltiplas iterações de um laço, inclusive na presença de algumas dependências loop-carried. TLS exige mecanismos em hardware para auxiliar a detecção de conflitos, o armazenamento especulativo, os commits das transações em ordem, e o roll-back das transações. Trabalhos anteriores exploraram enfoques para implementar TLS, tanto em hardware dedicado como puramente em software, e tentaram predizer o desempenho de futuras implementações de TLS em hardware. Contudo, não existe nenhum processador comercial que forneça suporte direto para TLS. Entretanto, execução especulativa é suportada na forma de Memória Transacional em Hardware (HTM) ¿ disponível em processadores modernos como Intel Core e IBM POWER8. HTM implementa três características essenciais para TLS: detecção de conflitos, armazenamento especulativo, e roll-back de transações. Antes de aplicar TLS a um laço quente, é necessário determinar se o laço tem potencial para ser especulado. Um laço pode ser adequado para TLS se a probabilidade de dependências loop-carried em tempo de execução for baixa; para estimar esta probabilidade um perfilamento de dependências do laço deve ser usado. Este trabalho apresenta um verificador das dependências loop-carried integrado como uma nova extensão de OpenMP, a diretiva parallel for check, a qual pode ser usada para ajudar desenvolvedores a identificarem a existência destas dependências em construções parallel for. Este trabalho também apresenta uma análise detalhada da aplicação de HTM para a paralelização de laços com TLS e descreve uma avaliação cuidadosa da implementação de TLS usando HTMs disponíveis em processadores modernos. Como resultado, esta tese proporciona evidências para validar várias afirmações importantes sobre o desempenho de TLS nestas arquiteturas. Os resultados experimentais mostram que TLS usando HTM produz speedups de até 3.8× para alguns laços. Finalmente, este trabalho descreve uma nova técnica de especulação para a otimização, e execução simultânea, de múltiplos traços de regiões de código quente. Esta técnica, chamada Speculative Trace Optimization (STO), enumera, otimiza, e executa especulativamente traços de laços quentes. Isto requer o suporte em hardware disponível em sistemas HTM. Este trabalho discute as características necessárias para suportar STO: multi-versão, resolução de conflitos tardia, detecção de conflitos prematura, e sincronização das transações. Uma revisão das arquiteturas HTM existentes ¿ Intel TSX, IBM BG/Q, e IBM POWER8 ¿ mostra que nenhuma delas tem todas as características requeridas para implementar STO. Entretanto, este trabalho mostra que STO pode ser implementado nas arquiteturas HTM existentes através da adição de privatização e código para esperar/retomarAbstract: Thread-Level Speculation (TLS) is a hardware/software technique that enables the execution of multiple loop iterations in parallel, even in the presence of some loop-carried dependences. TLS requires hardware mechanisms to support conflict detection, speculative storage, in-order commit of transactions, and transaction roll-back. Prior research has investigated approaches to implement TLS, either on dedicated hardware or purely in software, and has attempted to predict the performance of future TLS hardware implementations. Nevertheless, there is no off-the-shelf processor that provides direct support for TLS. Speculative execution is supported, however, in the form of Hardware Transactional Memory (HTM) ¿ available in recent processors such as the Intel Core and the IBM POWER8. HTM implements three key features required by TLS: conflict detection, speculative storage, and transaction roll-back. Before applying TLS to a hot loop, it is necessary to determine if the loop has potential to be amenable. A loop could be amenable if the probability of loop-carried dependences at runtime is low; to measure this probability loop dependence profiling is used. This project presents a novel dynamic loop-carried dependence checker integrated as a new extension to OpenMP, the parallel for check construct, which can be used to help programmers identify the existence of loop-carried dependences in parallel for constructs. This work also presents a detailed analysis of the application of HTM support for loop parallelization with TLS and describes a careful evaluation of the implementation of TLS on the HTM extensions available in such machines. As a result, it provides evidence to support several important claims about the performance of TLS over HTM in the Intel Core and the IBM POWER8 architectures. Experimental results reveal that by implementing TLS on top of HTM, speed-ups of up to 3.8× can be obtained for some loops. Finally, this work describes a novel speculation technique for the optimization, and simultaneous execution, of multiple alternative traces of hot code regions. This technique, called Speculative Trace Optimization (STO), enumerates, optimizes, and speculatively executes traces of hot loops. It requires hardware support that can be provided in a similar fashion as that available in HTM systems. This work discusses the necessary features to support STO, namely multi-versioning, lazy conflict resolution, eager conflict detection, and transaction synchronization. A review of existing HTM architectures ¿ Intel TSX, IBM BG/Q, and IBM POWER8 ¿ shows that none of them has all the features required to implement STO. However, this work demonstrates that STO can be implemented on top of existing HTM architectures through the addition of privatization and wait/resume codeDoutoradoCiência da ComputaçãoDoutor em Ciência da ComputaçãoCAPESFAPESPCNP

    RELAÇÃO ENTRE O CAPITAL HUMANO E O DESEMPENHO EM EMPRESAS PRESTADORAS DE SERVIÇOS CONTÁBEIS DO OESTE DE SANTA CATARINA

    Get PDF
    Nas pesquisas sobre administração estratégica das organizações, um dos temas mais recorrentes é o estudo do desempenho, seja medido de maneira objetiva ou subjetiva, com dados reais ou a partir de percepções, respectivamente. Vários têm sido os determinantes abordados e, na atualidade, como consequência do crescente valor que possui o conhecimento, vêm ganhando importância os ativos intangíveis. Entre eles, o capital intelectual tornou-se um dos mais relevantes nos estudos do desempenho por ser fonte de vantagens competitivas (CURADO; BONTIS, 2007). A valorização do ser humano enquanto detentor do conhecimento é um recurso fundamental desta era econômica. Diante de tais condições, as organizações tiveram a necessidade de dispor de ferramentas adequadas para medir o valor de seus recursos intangíveis. Toda organização possui seu capital humano, mas o êxito empresarial passa também por outros condicionantes, entre os quais se destacam suas capacidades dinâmicas e a orientação empreendedora. Sem dúvidas, a capacidade de absorção de conhecimento, ou seja, a “[...] capacidade de uma empresa em reconhecer o valor da informação nova, externa, assimilá-la e aplicá-la para fins comerciais é fundamental para suas capacidades inovadoras” (COHEN; LEVINTHAL, 1990, p. 128) e constitui um dos pilares do sucesso. No entanto, esse conhecimento precisa ser estocado em um sistema eficiente e eficaz que possibilite sua recuperação e uso pelos membros das equipes de trabalho. Isso implica um mecanismo básico ou um microprocesso das capacidades dinâmicas, que se conhece como sistema de memória transacional (ARGOTE; REN, 2012). Outra característica relevante que atua na consolidação das vantagens competitivas e na obtenção de melhores desempenhos, é a orientação empreendedora que a organização manifeste. Nessa pesquisa, teve-se por objetivo geral analisar as associações que existem entre o capital humano (CH), o sistema de memória transacional (TMS), a orientação empreendedora (OE) e o desempenho organizacional (DO) em empresas prestadoras de serviços contábeis do Oeste de Santa Catarina. A pesquisa de cunho descritivo, com auxílio de uma abordagem quantitativa, será uma pesquisa survey, em que será aplicado um questionário para aferir a percepção dos respondentes. Destaca-se que o estudo está em andamento, pois é fruto do Edital n. 11/2015 do Programa de Bolsas Universitárias (Uniedu) de Santa Catarina e tem como prazo de conclusão março de 2016. O estudo demonstra sua relevância ao buscar novas evidências empíricas a respeito das relações entre os construtos analisados. Sua consecução, além de original para as organizações foco da pesquisa, possui proeminência prática para a melhoria do funcionamento das empresas prestadoras de serviços contábeis catarinenses. Por outro lado, as proposições de articulações teóricas, ainda pouco trabalhadas em estudos empíricos da realidade brasileira, justificam o interesse acadêmico.Palavras-chave: Capital intelectual. Memória transacional. Prestadoras de serviços contábeis.

    A modular distributed transactional memory framework

    Get PDF
    Dissertação para obtenção do Grau de Mestre em Engenharia InformáticaThe traditional lock-based concurrency control is complex and error-prone due to its low-level nature and composability challenges. Software transactional memory (STM), inherited from the database world, has risen as an exciting alternative, sparing the programmer from dealing explicitly with such low-level mechanisms. In real world scenarios, software is often faced with requirements such as high availability and scalability, and the solution usually consists on building a distributed system. Given the benefits of STM over traditional concurrency controls, Distributed Software Transactional Memory (DSTM) is now being investigated as an attractive alternative for distributed concurrency control. Our long-term objective is to transparently enable multithreaded applications to execute over a DSTM setting. In this work we intend to pave the way by defining a modular DSTM framework for the Java programming language. We extend an existing, efficient, STM framework with a new software layer to create a DSTM framework. This new layer interacts with the local STM using well-defined interfaces, and allows the implementation of different distributed memory models while providing a non-intrusive, familiar,programming model to applications, unlike any other DSTM framework. Using the proposed DSTM framework we have successfully, and easily, implemented a replicated STM which uses a Certification protocol to commit transactions. An evaluation using common STM benchmarks showcases the efficiency of the replicated STM,and its modularity enables us to provide insight on the relevance of different implementations of the Group Communication System required by the Certification scheme, with respect to performance under different workloads.Fundação para a Ciência e Tecnologia - project (PTDC/EIA-EIA/113613/2009

    Partial replication in distributed software transactional memory

    Get PDF
    Dissertação para obtenção do Grau de Mestre em Engenharia InformáticaDistributed software transactional memory (DSTM) is emerging as an interesting alternative for distributed concurrency control. Usually, DSTM systems resort to data distribution and full replication techniques in order to provide scalability and fault tolerance. Nevertheless, distribution does not provide support for fault tolerance and full replication limits the system’s total storage capacity. In this context, partial data replication rises as an intermediate solution that combines the best of the previous two trying to mitigate their disadvantages. This strategy has been explored by the distributed databases research field, but has been little addressed in the context of transactional memory and, to the best of our knowledge, it has never before been incorporated into a DSTM system for a general-purpose programming language. Thus, we defend the claim that it is possible to combine both full and partial data replication in such systems. Accordingly, we developed a prototype of a DSTM system combining full and partial data replication for Java programs. We built from an existent DSTM framework and extended it with support for partial data replication. With the proposed framework, we implemented a partially replicated DSTM. We evaluated the proposed system using known benchmarks, and the evaluation showcases the existence of scenarios where partial data replication can be advantageous, e.g., in scenarios with small amounts of transactions modifying fully replicated data. The results of this thesis show that we were able to sustain our claim by implementing a prototype that effectively combines full and partial data replication in a DSTM system. The modularity of the presented framework allows the easy implementation of its various components, and it provides a non-intrusive interface to applications.Fundação para a Ciência e Tecnologia - (FCT/MCTES) in the scope of the research project PTDC/EIA-EIA/113613/2009 (Synergy-VM

    Um estudo de performance de uma ferramenta de Object/Relational Mapping

    Get PDF
    Dissertação para obtenção do Grau de Mestre em Engenharia InformáticaAtualmente existem inúmeras ferramentas que ajudam no desenvolvimento de aplicações multi-camada, retirando aos programadores a responsabilidade de definir a estrutura e as interações com o sistema de gestão de base de dados que serve de repositório permanente para os dados. Porém, a introdução de mais uma camada entre a aplicação e a base de dados tem necessariamente implicações no desempenho global do sistema. Estes sistemas recorrem por isso a múltiplas estratégias para diminuir o overhead imposto pela sua utilização, incorporando múltiplas soluções de caching. O trabalho reportado nesta dissertação visa realizar um estudo para compreender a dimensão das perdas de performance introduzidas pela utilização de ferramentas de mapeamento objeto relacional numa arquitetura multi-camada e o impacto da utilização dos mecanismos de caching disponíveis nesses sistemas, tanto num contexto centralizado como num contexto distribuído. Para isso iremos medir a produtividade do benchmark TPC-W em duas variantes: uma (standard) que trabalha sobre uma base de dados relacional; e outra (adaptada) que trabalha sobre um sistema de mapeamento objeto-relacional, suportado também pela mesma de dados relacional. Nesta última variante também será testada a inclusão das várias caches suportadas pela ferramenta Object Relational Mapping(ORM) e avaliar os seus potenciais benefícios para o desempenho da aplicação. Da análise da produtividade das duas variantes do benchmark, pretende-se quantificar as perdas de desempenho decorrentes da introdução de mais uma camada entre a aplicação e a base de dados, bem como identificar a origem dessas perdas e potenciais formas de as mitigar.Fundação para a Ciência e Tecnologia - projecto de investigação Synergy-VM (PTDC/EIA-EIA/113613/2009

    Facilitadores e barreiras para o compartilhamento de conhecimento em cadeias de suprimentos

    Get PDF
    O compartilhamento do conhecimento constitui um processo que influencia o sucesso organizacional. Este trabalho analisou os fatores que facilitam ou dificultam o compartilhamento do conhecimento em um contexto de cadeia de suprimentos. Para tanto, foi desenvolvido um estudo qualitativo do tipo exploratório, onde agentes da indústria de máquinas e equipamentos do estado do Rio Grande do Sul foram entrevistados a respeito da percepção das barreiras e facilitadores para o compartilhamento de conhecimento em sua cadeia. Como resultado, obteve-se um conjunto de facilitadores e outro de barreiras ao compartilhamento de conhecimento, assim como a relação entre eles
    corecore