Network


Latest external collaboration on country level. Dive into details by clicking on the dots.

Hotspot


Dive into the research topics where Rui Carlos Araújo Gonçalves is active.

Publication


Featured researches published by Rui Carlos Araújo Gonçalves.


high performance distributed computing | 2009

Pluggable parallelisation

Rui Carlos Araújo Gonçalves; João Luís Ferreira Sobral

This paper presents the concept of pluggable parallelisation that allows scientists to develop sequential like codes that can take advantage of multi-core, cluster and grid systems. In this approach parallel applications are developed by plugging parallelisation patterns/idioms into scientific codes (e.g., sequential like codes), softening the move from sequential to parallel programming and promoting the separation between domain specific code and parallelisation issues. Pluggable parallelisation combines three characteristics: 1) parallelisation is performed from outside to inside, localising parallelisation concerns into well defined modules, reducing changes required to the domain specific code and avoiding invasive parallelisation of base code; 2) control view is separated from data view promoting a stronger separation of concerns which improves reuse of parallelisation concerns across platforms and enables fine-grained refinements; and 3) abstractions can be composed, supporting the development of more complex patterns based on fine-grained features. This paper presents the concept of pluggable parallelisation and shows how some well known parallelisation strategies can be implemented in this approach. Results show that this is a feasible approach and performance is competitive with traditional parallel programming.


software language engineering | 2013

Dark Knowledge and Graph Grammars in Automated Software Design

Don S. Batory; Rui Carlos Araújo Gonçalves; Bryan Marker; Janet Siegmund

Mechanizing the development of hard-to-write and costly-to-maintain software is the core problem of automated software design. Encoding expert knowledge (a.k.a. dark knowledge) about a software domain is central to its solution. We assert that a solution can be cast in terms of the ideas of language design and engineering. Graph grammars can be a foundation for modern automated software development. The sentences of a grammar are designs of complex dataflow systems. We explain how graph grammars provide a framework to encode expert knowledge, produce correct-by-construction derivations of dataflow applications, enable the generation of high-performance code, and improve how software design of dataflow applications can be taught to undergraduates.


generative programming and component engineering | 2012

Pushouts in software architecture design

Taylor L. Riché; Rui Carlos Araújo Gonçalves; Bryan Marker; Don S. Batory

A classical approach to program derivation is to progressively extend a simple specification and then incrementally refine it to an implementation. We claim this approach is hard or impractical when reverse engineering legacy software architectures. We present a case study that shows optimizations and pushouts---in addition to refinements and extensions---are essential for practical stepwise development of complex software architectures.


Software and Systems Modeling | 2016

ReFlO: an interactive tool for pipe-and-filter domain specification and program generation

Rui Carlos Araújo Gonçalves; Don S. Batory; João Luís Ferreira Sobral

ReFlO is a framework and interactive tool to record and systematize domain knowledge used by experts to derive complex pipe-and-filter (PnF) applications. Domain knowledge is encoded as transformations that alter PnF graphs by refinement (adding more details), flattening (removing modular boundaries), and optimization (substituting inefficient PnF graphs with more efficient ones). All three kinds of transformations arise in reverse-engineering legacy PnF applications. We present the conceptual foundation and tool capabilities of ReFlO, illustrate how parallel PnF applications are designed and generated, and how domain-specific libraries of transformations are developed.


Software and Systems Modeling | 2017

From Software Extensions to Product Lines of Dataflow Programs

Rui Carlos Araújo Gonçalves; Don S. Batory; João Luís Ferreira Sobral; Taylor L. Riché

Dataflow programs are widely used. Each program is a directed graph where nodes are computations and edges indicate the flow of data. In prior work, we reverse-engineered legacy dataflow programs by deriving their optimized implementations from a simple specification graph using graph transformations called refinements and optimizations. In MDE speak, our derivations were PIM-to-PSM mappings. In this paper, we show how extensions complement refinements, optimizations, and PIM-to-PSM derivations to make the process of reverse engineering complex legacy dataflow programs tractable. We explain how optional functionality in transformations can be encoded, thereby enabling us to encode product lines of transformations as well as product lines of dataflow programs. We describe the implementation of extensions in the


distributed applications and interoperable systems | 2016

An RDMA Middleware for Asynchronous Multi-stage Shuffling in Analytical Processing

Rui Carlos Araújo Gonçalves; José Pereira; Ricardo Jiménez-Peris


aspect oriented software development | 2012

Modular and non-invasive distributed memory parallelization

Rui Carlos Araújo Gonçalves; João Luís Ferreira Sobral

\mathtt{ReFlO}


Archive | 2010

Architecture Design by Transformation

Taylor L. Riché; Don S. Batory; Rui Carlos Araújo Gonçalves; Bryan Marker


Archive | 2008

Non-Invasive Gridification through an Aspect-Oriented Approach

Edgar Sousa; Rui Carlos Araújo Gonçalves; Diogo Telmo Neves; João Luís Ferreira Sobral

ReFlO tool and present two non-trivial case studies as evidence of our work’s generality.


Architecture of Computing Systems. Proceedings, ARCS 2015 - The 28th International Conference on | 2015

On the Synthesis and Reconfiguration of Pipelines

Diogo Telmo Neves; Rui Carlos Araújo Gonçalves

A key component in large scale distributed analytical processing is shuffling, the distribution of data to multiple nodes such that the computation can be done in parallel. In this paper we describe the design and implementation of a communication middleware to support data shuffling for executing multi-stage analytical processing operations in parallel. The middleware relies on RDMA Remote Direct Memory Access to provide basic operations to asynchronously exchange data among multiple machines. Experimental results show that the RDMA-based middleware developed can provide a 75i?ź% reduction of the costs of communication operations on parallel analytical processing tasks, when compared with a sockets middleware.

Collaboration


Dive into the Rui Carlos Araújo Gonçalves's collaboration.

Top Co-Authors

Avatar
Top Co-Authors

Avatar

Don S. Batory

University of Texas at Austin

View shared research outputs
Top Co-Authors

Avatar

Bryan Marker

University of Texas at Austin

View shared research outputs
Top Co-Authors

Avatar
Top Co-Authors

Avatar
Top Co-Authors

Avatar
Top Co-Authors

Avatar

Ricardo Jiménez-Peris

Technical University of Madrid

View shared research outputs
Top Co-Authors

Avatar
Researchain Logo
Decentralizing Knowledge