Filaments Run-Time System

Filaments

Filaments is a library package that can be used to create architecture-independent parallel programs---that is, programs that are portable efficient across vastly different parallel machines. Filaments virtualizes the underlying machine in terms of the number of processors and the interconnection. This simplifies parallel program design in two ways. First, programs can be written (or generated) with the focus on the parallelism inherent in the application, not the architecture. Second, programs can be written that use familiar shared-variable communication. Furthermore, Filaments uses a carefully designed API along with machine-specific runtime libraries and preprocessing that allow programs to run unchanged on both shared- and distributed-memory machines. Most importantly, applications programmed in Filaments run efficiently, achieving a speedup of over 4 on 8 processors or nodes in almost all tests that have been performed.

Platforms supported

Currently the following (homogeneous) architecture/OS combinations are supported:

Note that Filaments does not run on heterogeneous platforms.

More information on Filaments

  • Filaments overview
  • Filaments publications
  • Obtaining a copy of Filaments

    Click here to download a copy of Filaments.

    Other Filaments-Related Research

  • Integrated Compiler/Run-Time System for Global Data Distribution
  • Adapt Data Distribution System
  • fsc: A Sisal Compiler for Both Distributed- and Shared-Memory Machines
  • Dynamically Controlling False Sharing in Distributed Shared Memory
  • Filaments designers

    The principle designers/implementors of Filaments are David Lowenthal and Vince Freeh. Significant contributions have been made by Greg Andrews, Dawson Engler, David Koski, and Eron Jokipii.


    Last modified: Mon Sep 14 09:10:27 EST 1998