This paper presents the Filaments package, which can be used to create architecture-independent parallel programs - that is, programs that are portable and efficient across vastly different parallel machines. Filaments virtualizes the underlying machine in terms of the number of processors and the interconnection, allowing fine-grain, shared-memory programs to be written or generated. 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. Performance is not sacrificed, as almost all kernels and applications we tested achieve a speedup of over 4 on 8 processors of both an SGI Challenge and a cluster of Pentium Pros.
ASJC Scopus subject areas
- Theoretical Computer Science
- Hardware and Architecture
- Computer Networks and Communications
- Computer Graphics and Computer-Aided Design
- Artificial Intelligence