PeakStream - a multi-core stream processing model

From Ars Technica:

Today marks the official launch of PeakStream, a software start-up that has been operating in stealth mode for over a year now while developing a new type of software platform aimed at making multiprocessor systems easier to program. PeakStream's product [...] is basically a set of tools -- APIs, a virtual machine, a system profiler, a JIT compiler, etc. -- that present a standardized, stream-processing-based programming model for which programmers can develop multithreaded applications.

The article goes on to describe the stream processing model, and notes that the startup grew out of Stanford's Brook project. While PeakStream's web site talks about C and C++, it seems to me that functional programming would be a natural fit for their concept of "kernels" of code that operate on streams of data. Perhaps if the PeakStream toolkit becomes popular, we'll eventually see a Haskell binding for it? :-)

Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.

StreamIt

It's perhaps also worth pointing at StreamIt, an MIT project revolving around stream processing. It's interesting because they do define a stream programming language, but it uses Java as an IR, and they include a runtime library so that you can actually execute the Java code, but you can also continue and generate C++ as an end-product. There's a great deal of supporting literature and examples, including MPEG-2 encoding/decoding. Interesting stuff.

Accelerator and F#

Another set of projects for functional programming of GPUs is Accelerator and F# in the CLR world.

The AMD factor

I think one interesting angle to PeakStream is that they are partnering with AMD, who has pretty aggressive plans to increase the numbers of cores and processors in their systems, as well as a new interconnection bus that can take specialized processing chips (e.g., graphics, physics) as well as CPUs. If such systems were to become more popular, presumably using a toolkit like PeakStream would become a more attractive alternative to a wider circle of developers.

some more relevant discussion

previously on LTU