Cookies Policy
The website need some cookies and similar means to function. If you permit us, we will use those means to collect data on your visits for aggregated statistics to improve our service. Find out More
Accept Reject
  • Menu
Publications

Publications by Fernando Silva

2005

Topic 9 - Parallel Programming: Models, Methods and Languages

Authors
Danelutto, M; Caromel, D; Szafron, D; Silva, FMA;

Publication
Euro-Par 2005, Parallel Processing, 11th International Euro-Par Conference, Lisbon, Portugal, August 30 - September 2, 2005, Proceedings

Abstract

1993

An Or-Parallel Prolog Execution Model for a Distributed Shared Memory Machine

Authors
Silva, FMA;

Publication
Progress in Artificial Intelligence, 6th Portuguese Conference on Artificial Intelligence, EPIA '93, Porto, Portugal, October 6-8, 1993, Proceedings

Abstract
Recently, new parallel architectures, namely distributed shared memory architectures, have been proposed and built. These combine the ease-of-use of shared memory architectures with the scalability of the message-passing architectures. These architectures provide software and hardware support for shared virtual address space on physically distributed memory. This paper describes Dorpp, an execution model that supports or-parallelism for these machine architectures, namely for the EDS parallel machine. Dorpp uses a shared memory model for or-parallelism. It attempts, however, at exploiting locality and at reducing communication overheads through scheduling and by caching accesses to remote shared data. The problem of memory coherency of cached data is discussed and solutions are proposed. Preliminary evaluation results of the execution model through simulation are presented. © Springer-Verlag Berlin Heidelberg 1993.

1999

YapOr: an Or-Parallel Prolog System Based on Environment Copying

Authors
Rocha, R; Silva, FMA; Costa, VS;

Publication
Progress in Artificial Intelligence, 9th Portuguese Conference on Artificial Intelligence, EPIA '99, Évora, Portugal, September 21-24, 1999, Proceedings

Abstract
YapOr is an or-parallel system that extends the Yap Prolog system to exploit implicit or-parallelism in Prolog programs. It is based on the environment copying model, as first implemented in Muse. The development of YapOr required solutions for some important issues, such as designing the data structures to support parallel processing, implementing incremental copying technique, developing a memory organization able to answer with efficiency to parallel processing and to incremental copying in particular, implementing the scheduler strategies, designing an interface between the scheduler and the engine, implementing the sharing work process, and implementing support to the cut builtin. An initial evaluation of YapOr performance showed that it achieves very good performance on a large set of benchmark programs. Indeed, YapOr compares favorably with a mature parallel Prolog system such as Muse, both in terms of base speed and in terms of speedups. © Springer-Verlag Berlin Heidelberg 1999.

2012

Querying subgraph sets with g-tries

Authors
Pinto Ribeiro, PM; Silva, FMA;

Publication
Proceedings of the 2nd ACM SIGMOD Workshop on Databases and Social Networks, DBSocial 2012, Scottsdale, AZ, USA, May 20, 2012

Abstract
In this paper we present an universal methodology for finding all the occurrences of a given set of subgraphs in one single larger graph. Past approaches would either enumerate all possible subgraphs of a certain size or query a single subgraph. We use g-tries, a data structure specialized in dealing with subgraph sets. G-Tries store the topological information on a tree that exposes common substructure. Using a specialized canonical form and symmetry breaking conditions, a single non-redundant search of the entire set of subgraphs is possible. We give results of applying g-tries querying to different social networks, showing that we can efficiently find the occurrences of a set containing subgraphs of multiple sizes, outperforming previous methods. Copyright 2012 ACM.

2012

Or-parallel prolog execution on multicores based on stack splitting

Authors
Vieira, R; Rocha, R; Silva, FMA;

Publication
Proceedings of the POPL 2012 Workshop on Declarative Aspects of Multicore Programming, DAMP 2012, Philadelphia, PA, USA, Saturday, January 28, 2012

Abstract
Many or-parallel Prolog computational models exploiting implicit parallelism have been proposed in the past. The Muse and YapOr systems are arguably two of the most efficient systems exploiting or-parallelism on shared memory architectures, both based on the environment copying model. Stack splitting emerged as an alternative model specially geared to distributed memory architectures as it basically splits the computation in such a way that no further, or just minimal, synchronization is required. With the new multicore architectures, it just makes sense to recover the body of knowledge there is in this area and reengineer prior computational models to evaluate their performance on newer architectures. In this paper, we focus on the design and implementation of stack splitting in the YapOr system. Our aim is to take advantage of its robustness to efficiently implement stack splitting support using shared memory, and then be able to directly compare the original YapOr with the YapOr using stack splitting. We consider two splitting models, vertical splitting and half splitting, and have adapted data structures, scheduling and incremental copy procedures in YapOr to cope with the new models. Experimental results, on a multicore machine with 24 cores, show that YapOr using stack splitting is, in general, comparable to the original YapOr, obtaining in some cases better performance than with only environment copying. Copyright © 2012 ACM.

2010

Efficient Parallel Subgraph Counting Using G-Tries

Authors
Pinto Ribeiro, PM; Silva, FMA; Lopes, LMB;

Publication
Proceedings of the 2010 IEEE International Conference on Cluster Computing, Heraklion, Crete, Greece, 20-24 September, 2010

Abstract
Finding and counting the occurrences of a collection of subgraphs within another larger network is a computationally hard problem, closely related to graph isomorphism. The subgraph count is by itself a very powerful characterization of a network and it is crucial for other important network measurements. G-tries are a specialized data-structure designed to store and search for subgraphs. By taking advantage of subgraph common substructure, g-tries can provide considerable speedups over previously used methods. In this paper we present a parallel algorithm based precisely on gtries that is able to efficiently find and count subgraphs. The algorithm relies on randomized receiver-initiated dynamic load balancing and is able to stop its computation at any given time, efficiently store its search position, divide what is left to compute in two halfs, and resume from where it left. We apply our algorithm to several representative real complex networks from various domains and examine its scalability. We obtain an almost linear speedup up to 128 processors, thus allowing us to reach previously unfeasible limits. We showcase the multidisciplinary potential of the algorithm by also applying it to network motif discovery. © 2010 IEEE.

  • 10
  • 19