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:

    The small force that it takes to launch a boat into the stream should not be confused with the force of the stream that carries it along: but this confusion appears in nearly all biographies.
    Friedrich Nietzsche (1844–1900)

    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)

    The less sophisticated of my forbears avoided foreigners at all costs, for the very good reason that, in their circles, speaking in tongues was commonly a prelude to snake handling. The more tolerant among us regarded foreign languages as a kind of speech impediment that could be overcome by willpower.
    Barbara Ehrenreich (b. 1941)