Stream Processing - Stream Programming Languages

Stream Programming Languages

Most programming languages for stream processors start with Java, C or C++ and add extensions which provide specific instructions to allow application developers to tag kernels and/or streams. This also applies to most shading languages, which can be considered stream programming languages to a certain degree.

Non-commercial examples of stream programming languages include:

  • Ateji PX Free Edition, enables a simple expression of stream programming, the Actor model, and the MapReduce algorithm on JVM
  • Auto-Pipe, from the Stream Based Supercomputing Lab at Washington University in St. Louis, an application development environment for streaming applications that allows authoring of applications for heterogeneous systems (CPU, GPGPU, FPGA). Applications can be developed in any combination of C, C++, and Java for the CPU. Verilog or VHDL for FPGAs. Cuda is currently used for Nvidia GPGPUs. Auto-Pipe also handles coordination of TCP connections between multiple machines.
  • ACOTES Programming Model: language from Polytechnic University of Catalonia based on OpenMP
  • Brook language from Stanford
  • DUP language from Technical University of Munich and University of Denver
  • OpenCL, an open standard which currently runs on most hardware, including X86-CPUs, X86-GPUs, ARM-GPUs and FPGAs.
  • Sh library from the University of Waterloo
  • Shallows, an open source project
  • S-Net coordination language from the University of Hertfordshire, which provides separation of coordination and algorithmic programming
  • StreamIt from MIT
  • WaveScript Functional stream processing, also from MIT.
  • Functional reactive programming could be considered stream processing in a broad sense.

Commercial implementations are either general purpose or tied to specific hardware by a vendor. Examples of general purpose languages include:

  • AccelerEyes' Jacket, a commercialization of a GPU engine for MATLAB
  • Ateji PX Java extension that enables a simple expression of stream programming, the Actor model, and the MapReduce algorithm
  • Floodgate, a stream processor provided with the Gamebryo game engine for PlayStation 3, Xbox360, Wii, and PC
  • HMPP Open Standard, a "directive" vision of Many-Core programming
  • PeakStream, a spinout of the Brook project (acquired by Google in June 2007)
  • IBM Spade - Stream Processing Application Declarative Engine (B. Gedik, et al. SPADE: the system S declarative stream processing engine. ACM SIGMOD 2008.)
  • RapidMind, a commercialization of Sh (acquired by Intel in August 2009)
  • TStreams, Hewlett-Packard Cambridge Research Lab

Vendor-specific languages include:

  • Brook+ (AMD hardware optimized implementation of Brook) from AMD/ATI
  • CUDA (Compute Unified Device Architecture) from Nvidia
  • Intel Ct - C for Throughput Computing
  • StreamC from Stream Processors, Inc, a commercialization of the Imagine work at Stanford

Read more about this topic:  Stream Processing

Famous quotes containing the words stream, programming and/or languages:

    One has but to observe a community of beavers at work in a stream to understand the loss in his sagacity, balance, co-operation, competence, and purpose which Man has suffered since he rose up on his hind legs.... He began to chatter and he developed Reason, Thought, and Imagination, qualities which would get the smartest group of rabbits or orioles in the world into inextricable trouble overnight.
    James Thurber (1894–1961)

    If there is a price to pay for the privilege of spending the early years of child rearing in the driver’s seat, it is our reluctance, our inability, to tolerate being demoted to the backseat. Spurred by our success in programming our children during the preschool years, we may find it difficult to forgo in later states the level of control that once afforded us so much satisfaction.
    Melinda M. Marshall (20th century)

    No doubt, to a man of sense, travel offers advantages. As many languages as he has, as many friends, as many arts and trades, so many times is he a man. A foreign country is a point of comparison, wherefrom to judge his own.
    Ralph Waldo Emerson (1803–1882)