Publications

Export 54 results:
Sort by: Author Title Type [ Year  (Desc)]
In Press
Silva, J. A., J. Lourenço, and H. Paulino, "Boosting Locality in Multi-version Partial Data Replication", 29th Annual ACM Symposium on Applied Computing, SAC '15, Salamanca, Spain, ACM, In Press.
2015
Silva, J. A., H. Paulino, and J. Lourenço, Crowdsourcing Mobile Devices to Provide Storage in Edge-Clouds, , 2015.
Paulino, H., and E. Marques, "Heterogeneous Programming with Single Operation Multiple Data", Journal of Computer and System Sciences, vol. 81, issue 1, pp. 16-37, 2015. Abstracthttp://nova-lincs.di.fct.unl.pt/person/22

Heterogeneity is omnipresent in today’s commodity computational systems, which comprise at least one multi-core Central Processing Unit (CPU) and one Graphics Processing Unit (GPU). Nonetheless, all this computing power is not being exploited in mainstream computing, as the programming of these systems entails many details of the underlying architecture and of its distinct execution models. Current research on parallel programming is addressing these issues but, still, the systems’ heterogeneity is exposed at language level.
This paper proposes a uniform framework, grounded on the Single Operation Multiple Data model, for the programming of such heterogeneous systems. The model is declarative, empowering the compiler to generate code for multiple architectures from the same source. To this extent, we designed a simple extension of the Java programming language that embodies the model, and developed a compiler that generates code for both multi-core CPUs and GPUs. A performance evaluation attests the validity of the approach that, despite being based on a simple programming model, is able to deliver performance gains on par with hand-tuned data parallel multi-threaded Java applications.

Silva, J. A., T. Vale, R. Dias, H. Paulino, and J. M. Lourenço, "Supporting Multiple Data Replication Models in Distributed Transactional Memory", ICDCN 2015, Goa, India, ACM, 2015. Abstract

Distributed transactional memory (DTM) presents itself as a highly expressive and programmer friendly model for con- currency control in distributed programming. Current DTM systems make use of both data distribution and replication as a way of providing scalability and fault tolerance, but both techniques have advantages and drawbacks. As such, each one is suitable for different target applications, and deployment environments. In this paper we address the support of different data replication models in DTM. To that end we propose ReDstm, a modular and non-intrusive framework for DTM, that supports multiple data replication models in a general purpose programming language (Java). We show its application in the implementation of distributed software transactional memories with different replication models, and evaluate the framework via a set of well-known benchmarks, analysing the impact of the different replication models on memory usage and transaction throughput.

2014
Silva, J., J. M. Lourenço, and H. Paulino, "Um Mecanismo de Caching para o Protocolo SCORe", INForum 2014 - 6º Simpósio de Informática, Porto, Portugal, Universidade do Porto, 5-6 August, 2014. Abstract

Os protocolos de replicação parcial de dados apresentam um grande potencial de escalabilidade. O SCORe é um protocolo para replicação parcial proposto recentemente que faz uso de controlo de concorrência multi-versão. Neste artigo abordamos um dos problemas principais que afeta o desempenho deste tipo de protocolos: a localidade dos dados, i.e., pode-se dar o caso do nó local não ter uma cópia dos dados a que pretende aceder, e nesse caso é necessário realizar uma ou mais operações de leitura remota. Assim, a não ser que se empreguem técnicas para melhorar a localidade no acesso aos dados, o número de operações de leitura remota aumenta com o tamanho do sistema, acabando por afetar o desempenho do mesmo. Nesse sentido, introduzimos um mecanismo de caching que permite replicar cópias de dados remotos de maneira a que seja possível servir localmente dados remotos enquanto que se mantém a consistência dos mesmos e a escalabilidade oferecida pelo protocolo. Avaliamos o mecanismo de caching com um benchmark conhecido da literatura e os resultados experimentais mostram resultados animadores com algum aumento no desempenho do sistema e uma redução considerável da quantidade de operações de leitura remota.

Soldado, F., F. Alexandre, and H. Paulino, "Towards the Transparent Execution of Compound OpenCL Computations in Multi-CPU/Multi-GPU Environments", Euro-Par 2014 International Workshops, Revised Selected Papers, Part I, Porto, Portugal, Springer, 25-29 August, 2014. Abstract

Currentcomputationalsystemsareheterogeneousbynature, featuring a combination of CPUs and GPUs. As the latter are becoming an established platform for high-performance computing, the focus is shifting towards the seamless programming of the heterogeneous systems as a whole. The distinct nature of the architectural and execution models in place raise several challenges, as the best hardware configuration is behavior and data-set dependent. In this paper, we focus the execution of compound computations in multi-CPU/multi-GPU environments, in the scope of Marrow algorithmic skeleton framework, the only, to the best of our knowledge, to support skeleton nesting in GPU computing. We address how these computations may be efficiently scheduled onto the target hardware, and how the system may adapt itself to changes in the CPU’s load and in the input data-set.

Alexandre, F., R. Marques, and H. Paulino, "On the Support of Task-Parallel Algorithmic Skeletons for Multi-GPU Computing", 28th Annual ACM Symposium on Applied Computing, SAC '14, Gyeongju, South Korea, March 24-28, 2014, ACM, pp. 880-885, 2014. Abstract

An emerging trend in the field of Graphics Processing Unit (GPU) computing is the harnessing of multiple devices to cope with scalability and performance requirements. How- ever, multi-GPU execution adds new challenges to the al- ready complex world of General Purpose computing on GPUs (GPGPU), such as the efficient problem decomposition, and dealing with device heterogeneity. To this extent, we pro- pose the use of the Marrow algorithmic skeleton framework (ASkF) to abstract most of the details intrinsic to the pro- gramming of such platforms. To the best of our knowledge, Marrow is the first ASkF to support skeleton nesting on single and (now) multiple GPU systems. In this paper we present how it can transparently distribute the execution of skeleton compositions among a set of, possibly, hetero- geneous devices. An experimental evaluation assesses the proposal’s effectiveness, from a scalability and performance perspective, with good results.

Silva, J. A., T. Vale, R. Dias, H. Paulino, and J. M. Lourenço, "Supporting Partial Data Replication in Distributed Transactional Memory", Joint Euro-TM/MEDIAN Workshop on Dependable Multicore and Transactional Memory Systems (DMTM), Vienna, Austria, Euro-TM, 2014. Abstract

Transactional memory (TM) is consistently making its way into mainstream programming, being already deployed by some of the major CPU manufacturers and in several reference compilers. To cope with requirements such as scalability and dependability, recent proposals explore the combination of TM with data replication, bringing TM to distributed environments - conceiving distributed transactional memory (DTM). However, current DTM frameworks support only full data replication. They provide the best possible level of tolerance to data loss, but limit the system's total storage capacity to the capacity of the node with fewer resources, and require coordination among all the system's nodes, an approach bound to hamper scalability in large scale systems. In this context, a partial data replication strategy can help to lessen these shortcomings. Each node replicates only a subset of the system's dataset, an approach that aims at combining the best of data distribution and full replication, while trying to attenuate their disadvantages. The key idea is to allow the dataset to be distributed among the participating nodes and to decrease the number of nodes that have to participate in a transaction's confirmation, as any given transaction only has to be confirmed by the nodes that replicate the data items in its read and write sets. By distributing the data and reducing the coordination cost among nodes, partial data replication leverages the system's scalability. Although this strategy has already been explored by the distributed databases research field, it is yet to be addressed in the context of (D)TM. More specifically, partial data replication has been broadly applied in key-value stores, and even though these work on in-memory data and support transactions, they present significant differences when compared with DTM systems for general purpose programming languages. To this extent, we propose PARdstm, to the best of our knowledge, the first DTM framework to include support for partial data replication. As such, the contributions of this work are: a reasoning on how partial data replication shall be supported in general purpose programming languages (Java, in particular), and a modular software framework that embeds such principles to provide a highly expressive and non-intrusive programming API. Initial experimental results give evidence that our approach may enhance scalability in large scale systems, when compared to full data replication. An ongoing comprehensive study will allow us to assess in which contexts of use (workloads, number of nodes, etc.) partial data replication may be an effective alternative.

2013
Alexandre, F., R. Marques, and H. Paulino, "Esqueletos Algorítmicos para Paralelismo de Tarefas em Sistemas Multi-GPU", INForum 2013 - Atas do 5º Simpósio de Informática, Évora, Portugal, Escola de Ciências e Tecnologia da Universidade de Évora, pp. 238-249, 09, 2013. Abstract

A crescente utilização de Unidades de Processamento Gráfico (GPUs) na computação de caráter geral levanta questões de desempenho e de escalabilidade. Para responder a estes requisitos de forma efetiva, cada vez mais se recorre à utilização colaborativa de vários GPUs num só sistema. Esta abordagem introduz, no entanto, novos desafios, tal como a decomposição do domínio do problema e a gestão da possível heterogeneidade dos dispositivos. Neste contexto assume particular relevância a proposta de abstrações que escondam a complexidade da programação destes sistemas. Existe já algum trabalho na área, mas este restringe-se ao paralelismo de dados. Por conseguinte, neste artigo abordamos a utilização de uma biblioteca de esqueletos algorítmicos, Marrow, para a exploração de paralelismo de tarefas em sistemas computacionais com estas características. Os resultados são promissores, apresentado a escalabilidade esperada nos sistemas testados.

Silva, J., T. Vale, J. M. Lourenço, and H. Paulino, "Replicação Parcial com Memória Transacional Distribuída", INForum 2013 - Atas do 5º Simpósio de Informática, Évora, Portugal, Escola de Ciências e Tecnologia da Universidade de Évora, pp. 310-321, 09, 2013. Abstract

Os sistemas de memória transacional distribuída atuais recorrem essencialmente à distribuição ou à replicação total para distribuir os seus dados pelos múltiplos nós do sistema. No entanto, estas estratégias de replicação de dados apresentam limitações. A distribuição não oferece tolerância a falhas e a replicação total limita a capacidade de armazenamento do sistema. Nesse contexto, a replicação parcial de dados surge como uma solução intermédia, que combina o melhor das duas anteriores com o intuito de mitigar as suas desvantagens. Esta estratégia tem sido explorada no contexto das bases de dados distribuídas, mas tem sido pouco abordada no contexto da memória transacional e, tanto quanto sabemos, nunca antes tinha sido incorporada num sistema de memória transacional distribuída para uma linguagem de propósito geral. Assim, neste artigo propomos e avaliamos uma infraestrutura para replicação parcial de dados para programas Java bytecode, que foi desenvolvida com base num sistema já existente de memória transacional distribuída. A modularidade da infraestrutura que apresentamos permite a implementação de múltiplos algoritmos e, por conseguinte, avaliar em que contextos de utilização (workloads, número de nós, etc.) a replicação parcial se apresenta como uma alternativa viável a outras estratégias de replicação de dados.

Parreira, D., and H. Paulino, "Uma Abordagem Alto Nível ao Controlo de Concorrência Componível Centrado nos Dados", INForum 2013 - Atas do 5º Simpósio de Informática, Évora, Portugal, Escola de Ciências e Tecnologia da Universidade de Évora, pp. 298-309, 09, 2013. Abstract

O controlo da concorrência no acesso a estado partilhado assume actualmente um papel de destaque no desenvolvimento de software. Trabalhos recentes propõem que tal gestão seja expressa ao nível dos dados, em alternativa à usual centralidade no código. A principal vantagem é o acoplamento da gestão da concorrência com a declaração dos dados, eliminando desse modo a descentralização dos erros de concorrência, facilitando a sua correção. No entanto, as abordagens centradas nos dados existentes pecam por não garantirem a ausência de deadlocks em todos os cenários e/ou exigirem do programador a agregação explícita dos recursos que devem ser avaliados atomicamente. A nossa proposta colmata ambas estas limitações. O programador anota isoladamente que zonas de memória requerem acesso exclusivo, sendo que uma análise estática infere quais dessas devem ser agrupadas e adquiridas atomicamente, e garante que o código gerado é ausente de deadlocks. De modo a aferir-se a eficiência da nossa solução, comparamos o seu desempenho e a sua produtividade relativamente à memória transacional e outras abordagens centrada nos dados.

Delgado, N., and H. Paulino, "Uma Abordagem Sistema para o Paralelismo Hierárquico em Arquitecturas Multi-core", INForum 2013 - Atas do 5º Simpósio de Informática, Évora, Portugal, Escola de Ciências e Tecnologia da Universidade de Évora, pp. 274-285, 09, 2013. Abstract

A decomposição correta de um problema paralelo com base na hierarquia de memória onde irá executar pode levar a ganhos de desempenho significativos durante execução do mesmo. No entanto, os subsistemas de memória das arquiteturas multicore modernas apresentam variadas configurações, em termos das suas organizações hierárquicas e da capacidade dos seus diversos níveis de memória. Existem diversas abordagens que permitem adequar a execução de uma aplicação à estratificação hierárquica da memória,. Contudo estas exigem do programador um conhecimento profundo da arquitetura alvo e de programação paralela em geral. A abordagem apresentada neste artigo contrasta com as demais, transpondo esta responsabilidade para o sistema de execução, colocando sobre a sua alçada a decomposição hierárquica da computação. Nessa medida, ao programador cabe apenas expressar de forma genérica os algoritmos de subdivisão do domínio do problema. Avaliamos o desempenho da nossa abordagem relativamente a outra baseada na usual decomposição horizontal do domínio do problema. Os resultados são bons, apresentando ganhos de performance em aplicações que usufruem do tipo de otimização efetuada e desempenhos equiparáveis nas restantes.

Marques, R., H. Paulino, F. Alexandre, and P. D. Medeiros, "Algorithmic Skeleton Framework for the Orchestration of GPU Computations", Euro-Par 2013 Parallel Processing - 19th International Conference, Euro-Par 2013, Aachen, Germany, August 26-30, 2013. Proceedings, no. 8097, Aachen, Germany, Springer-Verlag, pp. 874-885, 08, 2013. Abstract

The Graphics Processing Unit (GPU) is gaining popular- ity as a co-processor to the Central Processing Unit (CPU). However, harnessing its capabilities is a non-trivial exercise that requires good knowledge of parallel programming, more so when the complexity of these applications is increasingly rising. Languages such as StreamIt [1] and Lime [2] have addressed the offloading of composed computations to GPUs. However, to the best of our knowledge, no support exists at library level. To this extent, we propose Marrow, an algorithmic skeleton frame- work for the orchestration of OpenCL computations. Marrow expands the set of skeletons currently available for GPU computing, and enables their combination, through nesting, into complex structures. Moreover, it introduces optimizations that overlap communication and computa- tion, thus conjoining programming simplicity with performance gains in many application scenarios. We evaluated the framework from a perfor- mance perspective, comparing it against hand-tuned OpenCL programs. The results are favourable, indicating that Marrow’s skeletons are both flexible and efficient in the context of GPU computing.

2012
Gomes, C. M., H. Paulino, A. Baptista, and F. Araújo, "Accessing wireless sensor networks via dynamically reconfigurable interaction models", International Journal of Interactive Multimedia and Artificial Intelligence, vol. 1, no. 7, pp. 52-61, 12, 2012. Abstract
n/a
Marques, R., H. Paulino, and P. D. Medeiros, "Desenho e Implementação de uma Biblioteca de Padrões Algorítmicos para GPGPU", INForum 2012 - Atas do 4º Simpósio de Informática: Universidade Nova de Lisboa, pp. 298-301, 09, 2012. Abstract
n/a
Paulino, H., and G. Camacho, "Enhancing Service-Oriented Computing with Software Mobility", Algorithms and Architectures for Parallel Processing - 12th International Conference, ICA3PP 2012, Fukuoka, Japan, September 4-7, 2012, Proceedings, Part I, no. 7439: Springer-Verlag, pp. 487-501, 09, 2012. Abstract
n/a
Araújo, F., C. M. Gomes, and H. Paulino, "Reconfiguração Dinâmica Estruturada de Workflows de Serviços Web", INForum 2012 - Atas do 4º Simpósio de Informática: Universidade Nova de Lisboa, pp. 331-342, 09, 2012. Abstract
n/a
Delgado, N., and H. Paulino, "Sobre um Mecanismo de Controlo de Concorrência baseado em Grupos de Recursos", INForum 2012 - Atas do 4º Simpósio de Informática: Universidade Nova de Lisboa, pp. 302-305, 09, 2012. Abstract
n/a
Saramago, J., D. Mourão, and H. Paulino, "Towards an Adaptable Middleware for Parallel Computing in Heterogeneous Environments", 2012 IEEE International Conference on Cluster Computing Workshops, CLUSTER Workshops 2012, Beijing, China, September 24-28, 2012: IEEE, pp. 143-151, 09, 2012. Abstract
n/a
Gomes, C. M., H. Paulino, A. Baptista, and F. Araújo, "Dynamic Interaction Models for Web Enabled Wireless Sensor Networks", MUE 2012: Multimedia and Ubiquitous Engineering in 10th IEEE International Symposium on Parallel and Distributed Processing with Applications, ISPA 2012, Leganes, Madrid, Spain, July 10-13, 2012: IEEE, pp. 823-830, 07, 2012. Abstract
n/a
Marques, E., and H. Paulino, "Single Operation Multiple Data - Data Parallelism at Subroutine Level", 14th IEEE International Conference on High Performance Computing & Communication, HPCC 2012, Liverpool, UK, June 25-27, 2012: IEEE Computer Society, pp. 254-261, 06, 2012. Abstract
n/a
Baptista, A., C. M. Gomes, and H. Paulino, "Session-based Dynamic Interaction Models for Stateful Web Services", Exploring Services Science - Third International Conference, IESS 2012, Geneva, Switzerland, February 15-17, 2012. Proceedings, no. 103: Springer-Verlag, pp. 29-43, 02, 2012. Abstract
n/a
2011
Baptista, A., C. M. Gomes, and H. Paulino, "Reconfiguração Dinâmica de Modelos de Interação para Redes de Sensores", Atas do INFORUM 2011 - Terceiro Simpósio de Informática: Universidade de Coimbra, pp. 705-716, 09, 2011. Abstract
n/a
Paulino, H., and J. R. Santos, "A Middleware Framework for the Web Integration of Sensor Networks", Sensor Systems and Software - Second International ICST Conference, S-Cube 2010, Miami, FL, USA, December 13-15, 2010, Revised Selected Papers, no. 57: Springer-Verlag, pp. 75-90, 08, 2011. Abstract
n/a