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:

    This land is your land, this land is my land, From California to the New York Island. From the redwood forest to the Gulf Stream waters This land was made for you and me.
    Woody Guthrie (1912–1967)

    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)

    I am always sorry when any language is lost, because languages are the pedigree of nations.
    Samuel Johnson (1709–1784)