João Luís Ferreira Sobral
University of Minho
Network
Latest external collaboration on country level. Dive into details by clicking on the dots.
Publication
Featured researches published by João Luís Ferreira Sobral.
aspect-oriented software development | 2006
Carlos A. Cunha; João Luís Ferreira Sobral; Miguel Pessoa Monteiro
In this paper, we present a collection of well-known high-level concurrency patterns and mechanisms, coded in AspectJ. We discuss benefits of these implementations relative to plain Java implementations of the same concerns. We detect benefits from using AspectJ in all the cases presented, in the form of higher modularity, reuse, understandability and unpluggability. For most of the implementations, two alternatives can be used: one based on traditional pointcut interfaces and one based on annotations.
international parallel and distributed processing symposium | 2006
João Luís Ferreira Sobral
This paper presents a methodology to develop more modular parallel applications, based on aspect oriented programming. Traditional object oriented mechanisms implement application core functionality and parallelisation concerns are plugged by aspect oriented mechanisms. Parallelisation concerns are separated into four categories: functional or/and data partition, concurrency, distribution and optimisation. Modularising these categories into separate modules using aspect oriented programming enables (un)pluggability of parallelisation concerns. This approach leads to more incremental application development, easier debugging and increased reuse of core functionality and parallel code, when compared with traditional object oriented approaches. A detailed analysis of a simple parallel application - a prime number sieve - illustrates the methodology and shows how to accomplish these gains.
cluster computing and the grid | 2006
João F. Ferreira; João Luís Ferreira Sobral; Alberto José Proença
This paper presents JaSkel, a skeleton-based framework to develop parallel and grid applications. The framework provides a set of Java abstract classes as a skeleton catalogue, which implements recurring parallel interaction paradigms. This approach aims to improve code efficiency and portability. It also helps to structure scalable applications through the refinement and composition of skeletons. Evaluation results show that using the provided skeletons do contribute to improve both application development time and execution performance.
international conference on image processing | 2005
João Luís Ferreira Sobral
This paper presents a new approach to texture defect detection based on a set of optimised filters. Each filter is applied to one wavelet sub-band and its size and shape are tuned for a defect type. The wavelet transform provides a very efficient way to decompose a complex texture into a set of base components (wavelet sub-bands), which are then analysed by each filter to detect a kind of defect. The proposed methodology has been successfully applied to leather inspection, achieving the detection rate of highly trained human operators. The process is also fast enough to be used for in-line inspection.
high performance distributed computing | 2009
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.
international conference on cluster computing | 2007
João Luís Ferreira Sobral; Alberto José Proença
JaSkel is a skeleton-based framework to develop efficient concurrent, parallel and Grid applications. It provides a set of Java abstract classes that implement recurring parallel interaction paradigms. The key feature of JaSkel is to use aspect-oriented external tools to address distributed execution, by injecting code to support communication middleware into JaSkel built-in skeleton implementations. This feature, when combined with the ability to develop nested skeletons, can help to tailor JaSkel applications to efficiently run on a grid of clusters systems, by taking advantage of inter/intra-cluster and/or intra-node communications. This paper describes the JaSkel distributed execution tools and how they interplay with the JaSkel framework to transparently run applications on a wide range of computing platforms, from multi-core to computational grids. Results are presented to show the feasibility and scalability of this approach.
ieee international conference on high performance computing data and analytics | 2006
João Luís Ferreira Sobral; Carlos A. Cunha; Miguel Pessoa Monteiro
In this paper, we present an approach to develop parallel applications based on aspect oriented programming. We propose a collection of aspects to implement group communication mechanisms on parallel applications. In our approach, parallelisation code is developed by composing the collection into the application core functionality. The approach requires fewer changes to sequential applications to parallelise the core functionality than current alternatives and yields more modular code. The paper presents the collection and shows how the aspects can be used to develop efficient parallel applications.
Proceedings of the 2008 AOSD workshop on Domain-specific aspect languages | 2008
João Luís Ferreira Sobral; Miguel Pessoa Monteiro
This paper overviews a Domain-Specific Language (DSL) for parallel and grid computing, layered on top of AspectJ. This DSL aims to bridge the gap between sequential code and parallel/grid applications, by avoiding invasive source code changes in scientific applications. Moreover, it aims to promote the localization of parallelization and gridification issues into well defined modules that can be (un)plugged (from)to existing scientific applications. This paper builds on previous work based on AspectJ and presents the main motivations for implementing a DSL in preference to a pure-AspectJ solution. The paper presents the DSLs design rationale, overviews current implementation and open research issues.
euromicro workshop on parallel and distributed processing | 1998
João Luís Ferreira Sobral; Alberto José Proença
The ParC++ system is an object oriented programming and execution environment, based on a programming model that aims the development of portable, efficient and scalable parallel applications. The paper presents the main components in the ParC++ system: a pre-processor-that supports a parallel extension to C++ objects and extracts parallelism from standard C++ code-and a run-time system-that dynamically adapts the grain size of parallel activities, according to the computing and communication system load.
Computer Methods and Programs in Biomedicine | 2013
Jorge Henrique Martins de Pinho; João Luís Ferreira Sobral; Miguel Rocha
A large number of optimization problems within the field of Bioinformatics require methods able to handle its inherent complexity (e.g. NP-hard problems) and also demand increased computational efforts. In this context, the use of parallel architectures is a necessity. In this work, we propose ParJECoLi, a Java based library that offers a large set of metaheuristic methods (such as Evolutionary Algorithms) and also addresses the issue of its efficient execution on a wide range of parallel architectures. The proposed approach focuses on the easiness of use, making the adaptation to distinct parallel environments (multicore, cluster, grid) transparent to the user. Indeed, this work shows how the development of the optimization library can proceed independently of its adaptation for several architectures, making use of Aspect-Oriented Programming. The pluggable nature of parallelism related modules allows the user to easily configure its environment, adding parallelism modules to the base source code when needed. The performance of the platform is validated with two case studies within biological model optimization.