Author :
Riché, Taylor L. ; Lavender, Greg ; Vin, Harrick M.
Abstract :
The emergence of multi -processor, multi-threaded architectures (referred to as multi-* architectures) facilitates the design of high-throughput request processing systems (e.g., multiservice routers for GENI, intrusion detection systems, graphics and gaming systems, as well as high-throughput web servers and transaction processing systems). Because of the challenges in programming such architectures, realizing this promise has proved to be difficult. In this paper, we describe the design of Lagniappe, a programming environment that simplifies the design of portable, high-throughput applications on multi-* architectures. Lagniappe uses a hybrid programming model: it combines a procedural specification (e.g., in C++) of the basic operators for processing requests with a declarative specification - expressed using a model-driven development framework - of the various features of the operators and the target hardware platform. Using the declarative specification, the Lagniappe programming environment automates the mapping of applications onto the multi-* platform, performs dynamic allocation of resources to operators, and ensures efficient and coherent accesses to persistent, shared state.
Keywords :
message passing; multiprogramming; object-oriented languages; programming environments; software portability; Lagniappe; declarative specification; high-throughput applications; hybrid programming model; model-driven development framework; multi-* architectures; multi-threaded architectures; multiprocessor; multiprogramming; portable application; procedural specification; programming environment; target hardware platform; Computer architecture; Computer graphics; Dynamic programming; Hardware; Intrusion detection; Process design; Programming environments; Service oriented architecture; Virtual private networks; Web server;