Luiz Gustavo Fernandes

Luiz Gustavo Fernandes
Pontifícia Universidade Católica do Rio Grande do Sul | PUCRS · Programa de Pós-Graduação em Ciência da Computação

About

110
Publications
16,375
Reads
How we measure 'reads'
A 'read' is counted each time someone views a publication summary (such as the title, abstract, and list of authors), clicks on a figure, or views or downloads the full-text. Learn more
674
Citations

Publications

Publications (110)
Conference Paper
Full-text available
O desenvolvimento de aplicações para GPU não é uma tarefa fácil, pois exige um maior conhecimento da arquitetura. Neste trabalho realizamos um estudo piloto para avaliar o esforço de programadores não-especialistas ao desenvolver aplicações para GPU. Os resultados revelaram que a GSParLib requer menos esforço em relação as demais interfaces de prog...
Article
Full-text available
(A read-only version is available at https://rdcu.be/cECIi) In a fast-changing data-driven world, real-time data processing systems are becoming ubiquitous in everyday applications. The increasing data we produce, such as audio, video, image, and, text are demanding quickly and efficiently computation. Stream Parallelism allows accelerating this c...
Article
Full-text available
A recurrent challenge in real‐world applications is autonomous management of the executions at run‐time. In this vein, stream processing is a class of applications that compute data flowing in the form of streams (e.g., video feeds, images, and data analytics), where parallel computing can help accelerate the executions. On the one hand, stream pro...
Article
Full-text available
Several real-world parallel applications are becoming more dynamic and long-running, demanding online (at run-time) adaptations. Stream processing is a representative scenario that computes data items arriving in real-time and where parallel executions are necessary. However, it is challenging for humans to monitor and manually self-optimize comple...
Article
The NAS Parallel Benchmarks (NPB), originally implemented mostly in Fortran, is a consolidated suite containing several benchmarks extracted from Computational Fluid Dynamics (CFD) models. The benchmark suite has important characteristics such as intensive memory communications, complex data dependencies, different memory access patterns, and hardw...
Conference Paper
Stream processing applications compute streams of data and provide insightful results in a timely manner, where parallel computing is necessary for accelerating the application executions. Considering that these applications are becoming increasingly dynamic and long-running, a potential solution is to apply dynamic runtime changes. However, it is...
Conference Paper
O presente trabalho apresenta uma extensão à linguagem SPar para suportar o paralelismo heterogêneo combinado de CPU e GPU através de anotações C++11 em aplicações de processamento de stream. Os testes sugerem melhoras significativas de desempenho com poucas modificações no código.
Conference Paper
Este trabalho apresenta uma perspectiva para adaptar dinamicamente os padrões paralelos em tempo de execução, objetivando abstrair dos programadores a definição de qual padrão paralelo usar e aumentar a flexibilidade. Os resultados preliminares demonstram a eficácia da solução proposta.
Conference Paper
Full-text available
Neste trabalho, a fim de melhorar a eficiência do código paralelo gerado em arquiteturas multi-core, foi estendida a linguagem e o compilador da SPar para permitir a geração automática de padrões paralelos pertencentes aos dois principais domínios de paralelismo, o de stream e de dados. Experimentos mostram que a nova versão da SPar obteve resultados...
Conference Paper
Neste trabalho, foi implementada uma versão do algoritmo de compressão de dados Bzip2 com o framework para processamento de stream Apache Flink, a fim de avaliar seu desempenho em comparação com a versão do Bzip2 já existente na linguagem de domínio específica SPar. Os experimentos revelaram que a versão com SPar possui um desempenho muito superior a...
Article
Stream processing applications are common computing workloads that demand parallelism to increase their performance. As in the past, parallel programming remains a difficult task for application programmers. The complexity increases when application programmers must set nonintuitive parallelism parameters, that is, the degree of parallelism. The ma...
Conference Paper
Since the demand for computing power increases, new architectures emerged to obtain better performance. Reducing the power and energy consumption of these architectures is one of the main challenges to achieving high-performance computing. Current research trends aim at developing new software and hardware techniques to achieve the best performance...
Article
Full-text available
An increasing attention has been given to provide service level objectives (SLOs) in stream processing applications due to the performance and energy requirements, and because of the need to impose limits in terms of resource usage while improving the system utilization. Since the current and next-generation computing systems are intrinsically offe...
Conference Paper
Full-text available
Stream processing paradigm is present in several applications that apply computations over continuous data flowing in the form of streams (e.g., video feeds, image, and data analytics). Employing self-adaptivity to stream processing applications can provide higher-level programming abstractions and autonomic resource management. However, there are...
Article
Full-text available
Stream processing is a parallel paradigm used in many application domains. With the advance of graphics processing units (GPUs), their usage in stream processing applications has increased as well. The efficient utilization of GPU accelerators in streaming scenarios requires to batch input elements in microbatches, whose computation is offloaded on...
Conference Paper
Full-text available
O aumento no volume de dados gerados por sistemas computacionais e a necessidade por processamento rápido desses dados vem alavancando a área de processamento de stream. Entretanto, ainda não existe um benchmark para auxiliar desenvolvedores e pesquisadores. Este trabalho visa propor uma suíte de benchmarks para processamento de stream em arquitetu...
Conference Paper
Full-text available
The combined exploitation of stream and data parallelism is demonstrating encouraging performance results in the literature for heterogeneous architec-tures, which are present on every computer systems today. However, provide parallel software efficiently targeting those architectures requires significant programming effort and expertise. The SPar...
Chapter
Full-text available
The amount of data generated is increasing exponentially. However, processing data and producing fast results is a technological challenge. Parallel stream processing can be implemented for handling high frequency and big data flows. The MPI parallel programming model offers low-level and flexible mechanisms for dealing with distributed architectur...
Conference Paper
Full-text available
Structured parallel programming has been studied and applied in several programming languages. This approach has proven to be suitable for abstracting low-level and architecture-dependent parallelism implementations. Our goal is to provide a structured and high-level library for the Rust language, targeting parallel stream processing applications f...
Article
Full-text available
It is often a challenge to keep input/output tasks/results in order for parallel computations over data streams, particularly when stateless task operators are replicated to increase parallelism when there are irregular tasks. Maintaining input/output order requires additional coding effort and may significantly impact the application’s actual thro...
Conference Paper
Full-text available
The stream processing paradigm is used in several scientific and enterprise applications in order to continuously compute results out of data items coming from data sources such as sensors. The full exploitation of the potential parallelism offered by current heterogeneous multi-cores equipped with one or more GPUs is still a challenge in the conte...
Conference Paper
Full-text available
Este trabalho visa estender os estudos sobre o NAS Parallel Benchmarks (NPB), os quais possuem lacunas relevantes no contexto de GPUs. Os principais trabalhos da literatura consistem em implementações antigas, abrindo margens para possíveis questionamentos. Nessa direção, foram rea-lizados novos estudos de paralelização para GPUs das aplicações EP...
Conference Paper
Full-text available
Visando estender os estudos de avaliação da SPar, efetuamos uma análise comparativa entre SPar, Pthreads e OpenMP em aplicações de stream. Os resultados revelam que o desempenho do código paralelo gerado pela SPar se equipara com as implementações robustas nas consolidadas bibli-otecas Pthreads e OpenMP. Não obstante, também encontramos pontos de p...
Conference Paper
Full-text available
Este artigo apresenta o projeto de um módulo autoadaptativo para controle do grau de paralelismo à ser integrado a DSL SPar. O módulo para aplicações paralelas distribuídas de stream permite a criação de processos em tempo de execução, seleção da política de escalonamento, balanceamento de carga, ordenamento e serialização, adaptando o grau de para...
Conference Paper
Full-text available
Benchmarks são aplicações sintéticas que servem para avaliar e com-parar o desempenho de sistemas computacionais. Torná-los parametrizáveis pode gerar condições diferenciadas de execuções. Porém, a técnica é pouco ex-plorada nos tradicionais e atuais benchmarks. Portanto, esse trabalho avalia o impacto da parametrização de características do domíni...
Conference Paper
Full-text available
Diversas aplicações de processamento de vídeo demandam parale-lismo para aumentar o desempenho. O objetivo deste trabalho é implementar e testar versões com processamento distribuído em aplicações de reconhecimento facial em vídeos. As implementações foram avaliadas quanto ao seu desempe-nho. Os resultados mostraram que essas aplicações podem ter u...
Conference Paper
Full-text available
As aplicações de processamento de streams possuem características de execuções dinâmicas com variações na carga e na demanda por recursos. Adaptar o grau de paralelismo é uma alternativa para responder a variação durante a execução. Nesse trabalho é apresentada uma abstração de parale-lismo para a DSL SPar através de uma estratégia que autonomicame...
Conference Paper
Full-text available
As GPUs (Graphics Processing Units) têm se destacado devido a seu alto poder de processamento paralelo e sua presença crescente nos dispositivos computacionais. Porém, a sua exploração ainda requer conhecimento e esforço consideráveis do desenvolvedor. O presente trabalho propõe o suporte ao para-lelismo de GPU na SPar, que fornece um alto nível de...
Article
Full-text available
Parallel programming has been a challenging task for application programmers. Stream processing is an application domain present in several scientific, enterprise, and financial areas that lack suitable abstractions to exploit parallelism. Our goal is to assess the feasibility of state-of-the-art frameworks/libraries (Pthreads, TBB, and FastFlow) a...
Conference Paper
Nowadays, there are several different architectures available not only for the industry, but also for normal consumers. Traditional multicore processors, GPUs, accelerators such as the Sunway SW26010, or even energy efficiency-driven processors such as the ARM family, present very different architectural characteristics. This wide range of characte...
Conference Paper
Parallel applications of the same domain can present similar patterns of behavior and characteristics. Characterizing common application behaviors can help for understanding performance aspects in the real-world scenario. One way to better understand and evaluate applications' characteristics is by using customizable/parametric benchmarks that enab...
Chapter
Full-text available
Stream processing applications became a representative workload in current computing systems. A significant part of these applications demands parallelism to increase performance. However, programmers are often facing a trade-off between coding productivity and performance when introducing parallelism. SPar was created for balancing this trade-off...
Chapter
In recent years, increasing attention has been given to the possibility of guaranteeing Service Level Objectives (SLOs) to users about their applications, either regarding performance or power consumption. SLO can be implemented for parallel applications since they can provide many control knobs (e.g., the number of threads to use, the clock freque...
Conference Paper
Full-text available
Private IaaS clouds are an attractive environment for scientific workloads and applications. It provides advantages such as almost instantaneous availability of high-performance computing in a single node as well as compute clusters, easy access for researchers, and users that do not have access to conventional supercomputers. Furthermore, a cloud...
Conference Paper
Full-text available
The amount of data generated worldwide related to geolocalization has exponentially increased. However, the fast processing of this amount of data is a challenge from the programming perspective, and many available solutions require learning a variety of tools and programming languages. This paper introduces the support for parallel and distributed...
Conference Paper
Full-text available
Quando uma sequência biológica é obtida, é comum alinhá-la com outra já estudada para determinar suas características. O desafio é processar este alinhamento em tempo útil. Neste trabalho exploramos o paralelismo em uma aplicação de alinhamento de sequências de DNA utilizando as bibliotecas FastFlow e Intel TBB. Os experimentos mostram que a versão...
Conference Paper
Full-text available
Restauração de imagem é uma importante etapa de qualquer sistema de computação gráfica. Este trabalho tem como objetivo apresentar e avaliar o paralelismo de Denoiser, uma aplicação para detecção e eliminação de ruído em streaming de vídeo. Foram avaliados o speed-up e programabilidade das interfaces SPar, Thread Building Blocks e FastFlow. Os resu...
Conference Paper
Full-text available
As aplicações de stream apresentam características que as diferem de outras classes de aplicações, como variação nas entradas/saídas e execuções por períodos indefinidos de tempo. Uma das formas de responder a natureza dinâmica dessas aplicações é adaptando continuamente o grau de paralelismo. Nesse estudo é apresentado o suporte ao grau de paralel...
Conference Paper
Full-text available
Avaliar o desempenho é importante para computação. Porém, assim como o hardware, o software também deve ser avaliado quando características podem influenciar no seu comportamento. Nestes casos, a suíte de benchmarks}parametrizáveis para o processamento de stream serve como uma ferramenta de apoio ao usuário e até programadores.
Conference Paper
Full-text available
Resumo. Este artigo apresenta uma proposta para desenvolvimento de um mó-dulo de provisionamento elástico e autônomo a ser integrado em uma linguagem especifica de domínio (DSL) voltada para o paralelismo de stream. O módulo deverá explorar a elasticidade como uso de MPI-2 em um ambiente de cluster de computadores, permitindo a criação de processos...
Conference Paper
Full-text available
Benchmarking is a way to study the performance of new architectures and parallel programming frameworks. Well-established benchmark suites such as the NAS Parallel Benchmarks (NPB) comprise legacy codes that still lack portability to C++ language. As consequence, a set of high-level and easy-to-use C++ parallel programming frameworks cannot be test...
Conference Paper
Full-text available
The stream processing domain is present in several real-world applications that are running on multi-core systems. In this paper, we focus on data compression applications that are an important subset of this domain. Our main goal is to assess the programmability and efficiency of domain-specific language called SPar. It was specially designed for...
Conference Paper
Full-text available
SPar was originally designed to provide high-level abstractions for stream parallelism in C++ programs targeting multi-core systems. This work proposes distributed parallel programming support for SPar targeting cluster environments. The goal is to preserve the original semantics while source-to-source code transformations will be turned into MPI (...
Conference Paper
Full-text available
SPar is a Domain-Specific Language (DSL) designed to provide high-level parallel programming abstractions for streaming applications. Video processing application domain requires parallel processing to extract and analyze information quickly. When using state-of-the-art frameworks such as FastFlow and TBB, the application programmer has to manage s...
Conference Paper
Full-text available
Cloud computing has emerged as an important paradigm to improve resource utilization, efficiency, flexibility, and the pay-per-use billing structure. However, cloud platforms cause performance degradations due to their virtualization layer and may not be appropriate for the requirements of high-performance applications, such as big data. This paper...
Presentation
Full-text available
Parallel programming has been a challenging task for application programmers. Stream processing is an application domain present in several scientific, enterprise, and financial areas that lack suitable abstractions to exploit parallelism. Our goal is to assess the feasibility of state-of-the-art frameworks/libraries (Pthreads, TBB, and FastFlow) a...
Conference Paper
Full-text available
Com o objetivo de introduzir algoritmos de mineração de dados para-lelos na DSL GMaVis, foram paralelizadas quatro aplicações com cinco interfaces de programação paralela. Este trabalho apresenta a comparação destas interfaces, a fim de avaliar qual oferece maior desempenho e produtividade de código. Os resultados demonstram que é possível atingir...
Conference Paper
Full-text available
O paralelismo é uma tarefa para especialistas, onde o desafio é uti-lizar abstrações que ofereçam a flexibilidade e expressividade necessária para atingir o melhor desempenho. Este artigo visa explorar variações na implemen-tação do padrão Farm utilizando a biblioteca FastFlow nos algoritmos K-means (domínio da mineração de dados) e Mandelbrot Set...
Conference Paper
Full-text available
A linguagem de domínio específico SPar, embarcada na linguagem C++, fornece através de anotações uma alternativa para explorar o paralelismo de stream em arquiteturas multi-núcleo. Neste artigo, o objetivo é demonstrar indicadores de desempenho e produtividade em uma aplicação de detecção de pistas. Os resultados comprovaram que a SPar apresentou m...
Conference Paper
Full-text available
A classe de aplicações de stream possuem características únicas, como variação nas entradas/saídas e execuções por períodos indefinidos. Este paradigma é utilizado com intuito de diminuir os tempos de execução e aumen-tar a vazão das aplicações. Nesse estudo é proposto o suporte adaptativo do grau de paralelismo de stream na DSL (Domain-Specific La...
Conference Paper
Full-text available
Este artigo propõe uma plataforma web para simplificar a avaliação de interfaces de programação paralela. A ideia central é identificar as dificul-dades enfrentadas por potenciais desenvolvedores a fim de propor melhorias que irão reduzir o esforço na paralelização de aplicações. A plataforma pre-vista é composta de uma interface web, implementada...
Article
Full-text available
This paper introduces SPar, an internal C++ Domain-Specific Language (DSL) that supports the development of classic stream parallel applications. The DSL uses standard C++ attributes to introduce annotations tagging the notable components of stream parallel applications: stream sources and stream processing stages. A set of tools process SPar code...
Article
Full-text available
Resumo. Nuvens IaaS (Infrastructure as a Service) fornecem recursos compu-tacionais (memória, rede, unidade de processamento e armazenamento) sob de-manda para a execução de aplicações. Trabalhos que avaliam o desempenho de nuvens IaaS se limitam à camada de virtualização e desconsideram a análise do impacto das ferramentas de gerenciamento. Em con...
Article
Recent advances in High Performance Computing (HPC) have required the attention of scientific community regarding aspects that do not concern only performance. In order to enhance computational capacity, modern parallel and distributed architectures are designed with more processing units, causing an increase in energy consumption. Currently, one o...
Conference Paper
Full-text available
Este artigo apresenta uma proposta de desenvolvimento de um middleware para prover elasticidade para aplicações desenvolvidas com uma linguagem específica de domínio voltada para o paralelismo de stream. O middleware atuará a nível de PaaS e colocará instruções de elasticidade de forma transparente ao desenvolvedor, fazendo o parser do código e inj...
Conference Paper
Full-text available
Data visualization is an alternative for representing information and helping people gain faster insights. However, the programming/creating of a visualization for large data sets is still a challenging task for users with low-level of software development knowledge. Our goal is to increase the productivity of experts who are familiar with the appl...
Article
MapReduce was originally proposed as a suitable and efficient approach for analyzing and processing large amounts of data. Since then, many researches contributed with MapReduce implementations for distributed and shared memory architectures. Nevertheless, different architectural levels require different optimization strategies in order to achieve...
Conference Paper
Full-text available
This paper proposes a new C++ embedded Domain-Specific Language (DSL) for expressing stream parallelism by using standard C++11 attributes annotations. The main goal is to introduce high-level parallel abstractions for developing stream based parallel programs as well as reducing sequential source code rewriting. We demonstrated that by using a sma...
Article
Abstract The Digital Printing industry has become extremely specialized in the past few years. The use of personalized documents has emerged as a consolidated trend in this field. In order to meet this demand, languages to describe templates for personalized documents were proposed along with procedures which allow the correct printing of such docu...
Conference Paper
Full-text available
MapReduce is a suitable and efficient parallel programming pattern for processing big data analysis. In recent years, many frameworks/languages have implemented this pattern to achieve high performance in data mining applications, particularly for distributed memory architectures (e.g., clusters). Nevertheless, the industry of processors is now abl...