Table of Contents

Research interests

My research interests are mainly in the field of parallel and distributed computing. That is, in methodologies, programming models, support tools and environments for parallel and distributed computing on multiprocessors, networks and grids. I'm currently involved in the development of parallel programming frameworks based on algorithmic skeletons/design patterns, including FastFlow and Ocaml parmap. I've been and I'm involved in different research (projects), including the new STREP project ParaPhrase, started October 1st, 2011, and related to algorithmic skeletons used to target heterogeneous multicores. Here you can access the Univ. of Pisa page related to my research activity (in italian).


I've been one of the main designers of P3L the (Pisa Parallel Programming Language) and I designed and I maintained the muskel full Java skeleton based programming library in early '2000. I currently contribute to the development and maintainance of FastFlow.

FastFlow is a parallel programming framework for multi-core platforms based upon non-blocking lock-free/fence-free synchronization mechanisms. The framework is composed of a stack of layers that progressively abstracts out the programming of shared-memory parallel applications. The goal of the stack is twofold: to ease the development of applications and make them very fast and scalable. FastFlow is particularly targeted to the development of streaming applications and is implemented as a set of C++ classes running on top of Posix Pthreads. FastFlow is developed on Intel/Linux architectures, but ports exist targeting Windows, AMD and Tilera. Recently FastFlow has been also ported to ARM architectures.

In the past:

Macro Data Flow

I proposed since early '2000 the adoption of Macro Data Flow models to support the implementation of structured parallel programming frameworks (Marco Danelutto: Efficient Support for Skeletons on Workstation Clusters. Parallel Processing Letters 11(1): 41-56 (2001)). We demonstrated different results related to Macro Data Flow, in particular:

Autonomic computing

I've been responsible of the “Non Functional Component Features” work package in the GridCOMP STREP project, where we completed the design of the GCM Behavioural skeletons originally developed within the Programming model Institute of CoreGRID. Within GridCOMP a reference implementation of a couple of Behavioural skeletons (a task farm and a data parallel functional replication behavioural skeletons) have been implemented with an autonomic manager completely taking care of performance tuning aspects (See GridCOMP web site).

More recently, we demonstrated feasibility of both hierarchical, single concern and multi concern autonomic management of structured parallel computations.


I've been responsible of the Programming model Institute within the CoreGRID EU NoE. The Institute designed the GCM (Grid Component Model) that has been later on implemented within the GridCOMP EU STREP project on top of ProActive. Our main contribution to GCM has been related to the design and development of the Behavioural skeletons, GCM components modelling notable parallelism exploitation patterns and provided with autonomic managers taking care of non functional concerns (e.g. performance tuning).

The work on Behavioural skeletons and on the associate autonomic management constituted and currently constitutes my main research area.

In 2008-2009 I participated to the design of STKM (the Spatio-Temporal Skeleton component Model) derived from STCM (the Spatio-Temporal Skeleton component Model) adding skeleton component assemblies.


Within the Grid.IT Italian national FIRB project, I leaded the workpage that designed and implemented the ASSIST programming environment targeting grids as well as NOW/COWs. My main contribution to the ASSIST design concerned the introduction of the components and of the performance self-tuning features.

Within the CoreGRID EU NoE and the GridCOMP I participated to the design and development of the GCM (Grid Component Model) (see above) and to different research activities mostly related to the subject of grid programming models. During this period I also participated to the activities of the EU NGG working group that led to the introduction of the SOKU concept. More recently, I participated to the activities of the Dagstuhl seminar 09082, Feb. 2009, Perspectives Workshop: The Future of Grid Computing.

Multi/Many-Core and Heterogeneous Architectures

I'm currently investigating programming models most suitable to exploit multi/many core and heterogeneous architectures. In particular, my research interest is in moving skeleton technology to the fine grain, heterogenous technology typical of chips that have been recently introduced or announced.

Preliminary results presented at PARCO'09 demonstrate the portability of muskel skeleton framework originally developed for COW/NOW target architectures to state-of-the-art multicore systems, both in terms of functionality and in terms of performance (scalability).

A C++ version of the muskel skeleton framework (currently implemented in Java) is under development, to test the feasibility of seamless targeting of mixes CPU and GPU cores under the control of the skeleton framework application manager.


I experimented feasibility of using Services for the implementation of skeleton based programming environments. With G. Zoppi, a prototype of a subset of the muskel skeleton programming environment has been developed on top of Tuscany/SCA that first included a rule based (JBoss) autonomic manager taking care of performance tuning.