Browsing by Author "Carvalho, Fernando Miguel"
Now showing 1 - 4 of 4
Results Per Page
Sort Options
- Deconstructing yield operator to enhance streams processingPublication . Poeira, Diogo; Carvalho, Fernando MiguelCustomizing streams pipelines with new user-defined operations is a well-known pattern regarding streams processing. However, programming languages face two challenges when considering streams extensibility: 1) provide a compact and readable way to express new operations, and 2) keep streams’ laziness behavior. From here, we may find a consensus around the adoption of the generator operator, i.e. yield, as a means to fulfil both requirements, since most state-of-the-art programming languages provide this feature. Yet, what is the performance overhead of interleaving a yield-based operation in streams processing? In this work we present a benchmark based on realistic use cases of two different web APIs, namely: Last.fm and world weather on line, where custom yield-based operations may degrade the streams performance in twofold. We also propose a purely functional and minimalistic design, named tinyield, that can be easily adopted in any programming language and provides a concise way of chaining extension operations fluently, with low overhead in the eval uated benchmarks. The tinyield proposal was deployed in three different libraries, namely for Java (jayield), JavaScript (tinyield4ts) and .Net (tinyield4net).
- Optimizing memory transactions for large-scale programsPublication . Carvalho, Fernando Miguel; Cachopo, JoãoEven though Software Transactional Memory (STM) is one of the most promising approaches to simplify concurrent programming, current STM implementations incur significant overheads that render them impractical for many real-sized programs. The key insight of this work is that we do not need to use the same costly barriers for all the memory managed by a real-sized application, if only a small fraction of the memory is under contention lightweight barriers may be used in this case. In this work, we propose a new solution based on an approach of adaptive object metadata (AOM) to promote the use of a fast path to access objects that are not under contention. We show that this approach is able to make the performance of an STM competitive with the best fine-grained lock-based approaches in some of the more challenging benchmarks. (C) 2015 Elsevier Inc. All rights reserved.
- Resolução distribuída de interacções de serviços na InternetPublication . Carvalho, Fernando Miguel; Crespo, Rui GustavoA proliferação da Internet levou ao crescimento substancial do número de serviços disponibilizados em aplicações como Email, VoIP e WWW, que conduziu à inevitável ocorrência de interacções, com comportamentos indesejáveis. A resolução das interacções de serviços na Internet deve obedecer às características deste meio e como tal deve ter uma arquitectura distribuída. O projecto desenvolvido nesta dissertação apresenta uma solução baseada numa arquitectura distribuída, onde cada nó recorre à resolução prestada por um conselheiro[1]. Finalmente é apresentada uma proposta para a implementação do conselheiro com utilização de fórmulas deônticas e assente em tecnologia Java. O funcionamento da solução foi testado e adaptado com a aplicação de correio electrónico JAMES (Java Apache Mail Enterprise Server) da Apache Software Foundation (ASF). Os resultados obtidos demonstraram o funcionamento da solução de acordo com os objectivos do projecto e o desempenho do sistema não comprometeu o nível de serviço da aplicação de Email.
- Runtime elision of transactional barriers for captured memoryPublication . Carvalho, Fernando Miguel; Cachopo, JoaoIn this paper, we propose a new technique that can identify transaction-local memory (i.e. captured memory), in managed environments, while having a low runtime overhead. We implemented our proposal in a well known STM framework (Deuce) and we tested it in STMBench7 with two different STMs: TL2 and LSA. In both STMs the performance improved significantly (4 times and 2.6 times, respectively). Moreover, running the STAMP benchmarks with our approach shows improvements of 7 times in the best case for the Vacation application.