Software

Over the years I contributed to the development of many different projects. I currently maintain a couple of open source products. In this page some software I contributed in developing.

CAPIO (Cross-Application Programmable I/O)

CAPIO is a middleware capable of transparently injecting I/O streaming capabilities into file-based in-situ workflows, improving the computation-I/O overlap without modifying the business code of the workflow steps. A new JSON-based I/O coordination language allows users to annotate workflow data dependencies with synchronization semantics. Such semantics information is provided to the CAPIO run time through a configuration file. A user-space software layer automatically turns a batch execution into a streaming execution according to the synchronization semantics expressed in the configuration file.

More details and download at CAPIO github.

FastFlow

FastFlow is a multi-cores programming framework implemented as a C++ template library that offers a set of mechanisms to support low-latency and high-bandwidth data flows for the development of streaming applications on cache-coherent multi-core architectures.

More details and download at FastFlow’s Project Home.


uAL

uAL (from micro (u) engine ASSIST Layer) is a uC library written for the Intel IXP2XXX Network Processor and the ASSIST environment. It provides all its functionalities by exploiting the IXP2XXX hardware, hiding all the low-level architecture-dependent details of the Network Processor to the application programmer thus allowing the development and testing of NP’s programs within the ASSIST environment. uAL has been developed within the FRINP project.

uAL is described here

VirtuaLinux

VirtuaLinux is a Linux meta-distribution that allows the creation, deployment and administration of virtualized clusters with no single point of failure. VirtuaLinux architecture supports disk-less configurations and provides an efficient, iSCSI based abstraction of the SAN. Clusters running VirtuaLinux exhibit no master node to boost resilience and flexibility.

More information and software download at project’s web site on Sourceforge

packetDumper

pktDumper is a network traffic disk recorder application.

Source code and more information available upon request.

ASSIST

ASSIST (A Software development System based on Integrated Skeleton Technology) is a parallel programming environment based on skeleton and coordination language technology. In the ASSIST environment, a parallel program can be structured as a generic graph, whose nodes are parallel or sequential modules, and arcs are the communication channels where streams of typed items are sent between modules.

ASSiST’s home page can be found here.

runsv

runsv is a simple (yet useful) watchdog application that monitors active processes. It performs a restart of the monitored process if it crashes. In order to provide more control over the restarting process, it is possible to run another program upon process failures.

Download runsv from Sourceforge.

Ad-HOC

AD-HOC (Adaptive Distributed Herd of Object Caches), is a fast and robust distributed object repository. It provides applications with a distributed storage manager that virtualise PC’s memories into a unique common distributed storage space. Ad-HOC can effectively be used to implement DSMs as well as distributed cache subsystems. It has been developed within the SAIB and Grid.it projects.

The libraries and applications developed on top of ADHOC include:

  • a parallel file system;
  • a distributed cache that can be plugged in the Apache web server;
  • a Distributed Shared Memory (DSM) for ASSIST .

Source code available upon request.

SkIE

SkIE (Skeleton-based Integrated Environment) is a skeleton-based parallel programming environment.

More information about SkIE can be found here .