Implicitly parallel real-time signal processing

Phillip Nico

Department of Computer Science
University of California, Davis
Davis, CA 95616

John Feo

Tera Computer Company
2815 Eastlake Avenue East
Seattle, WA 98102

Robert Kim Yates

Lawrence Livermore National Laboratory
L-560, P.O. Box 808,
Livermore, CA 94550

Abstract

This paper describes a compiler system for automatic parallelization, partitioning, and scheduling of real-time signal processing applications written in a functional language running on general-purpose hardware. The high performance levels achieved by commodity processors can meet the demands of many real-time signal processing applications; however, they are not used effectively in practice because tools are not available to automatically create parallel partitions and schedules for DSP application codes that have critical time needs. We have extended Sisal, a high-performance functional language for scientific computations, with constructs to express latency and throughput constraints. Given a description of the target architecture and an application with specified timing requirements, the SERT compiler generates a precise, minimal data dependency graph and then partitions and creates a parallel schedule for the graph to satisfy the specified constraints if possible. When complete, SERT's ability to rapidly and automatically generate parallel schedules for different system configurations will make it an effective aide to real-time systems developers.

Full paper Appears in Proceedings of the 1997 ACM SIGPLAN Workshop on Languages, Compilers and Tools for Real-Time Systems, Las Vegas, Nevada, June 1997.