What is stream programming? (转载)
2008-11-16 23:37
281 查看
A stream is an array whose elements can be operated on in parallel, similar to SIMD computing. In stream programming, data is gathered from memory into a stream, operated on in the stream, and then scattered from the stream back into memory. Memory latency is thus minimized by accessing the data in chunks, similar in effect to caching.
This style of computing was popularized by Stanford’s Merrimac project, which featured the Brook programming language (an extension to C, actually). At least two start-ups have come from this work: Stream Processors, which will develop signal processors, and PeakStream, which has just released a software engineering tool known as “Platform” intended to simplify development on co-processors.
PeakStream’s Platform is a combination virtual machine (no kernel modification) and library (a standard C++ API). The VM includes a scheduler that directs operations to the best runtime system, whether it be a CPU, a GPU, or even the Cell processor. The library should be easy for anyone familiar with products like MATLAB. Ultimately the goal with Platform is that technical computing customers will obtain much better performance in so-called “heterogeneous” systems.
In a way, the combination of PeakStream + GPU resembles ClearSpeed’s own approach, though Advance uses standard BLAS rather than a proprietary library. It is interesting to note that programming solutions for both co-processors and multicore CPUs have appeared recently. Intel is now offering their Threading Building Blocks library and Mercury has released their MultiCore Plus SDK. The only thing left is better vendor-supported tools for distributed-memory programming.
This style of computing was popularized by Stanford’s Merrimac project, which featured the Brook programming language (an extension to C, actually). At least two start-ups have come from this work: Stream Processors, which will develop signal processors, and PeakStream, which has just released a software engineering tool known as “Platform” intended to simplify development on co-processors.
PeakStream’s Platform is a combination virtual machine (no kernel modification) and library (a standard C++ API). The VM includes a scheduler that directs operations to the best runtime system, whether it be a CPU, a GPU, or even the Cell processor. The library should be easy for anyone familiar with products like MATLAB. Ultimately the goal with Platform is that technical computing customers will obtain much better performance in so-called “heterogeneous” systems.
In a way, the combination of PeakStream + GPU resembles ClearSpeed’s own approach, though Advance uses standard BLAS rather than a proprietary library. It is interesting to note that programming solutions for both co-processors and multicore CPUs have appeared recently. Intel is now offering their Threading Building Blocks library and Mercury has released their MultiCore Plus SDK. The only thing left is better vendor-supported tools for distributed-memory programming.
相关文章推荐
- What is probabilistic programming? | 中文翻译
- What is an Object?(转载)
- 什么是软件设计(翻译、转载自Jack W. Reeves的论文《What Is Software Design?》)
- What is corresponding Cron expression to fire in every X seconds, where X > 60? --转载
- what is the fashion IDE in Linux CPP programming?
- 【转载】StreamInsight系列-What it is
- what is the fashion IDE in Linux CPP programming?
- What is the Execution Context & Stack in JavaScript? [转载]
- What is a non-trivial constructor in C++?(转载)
- What is Extreme Programming? [转自www.xprogramming.com]
- What is the Best Programming Language to Learn in 2014?
- [转载] New Concept English 1——Lesson 6 What make is it?
- What is a good buffer size for socket programming?
- what is programming?
- The 11th Zhejiang Provincial Collegiate Programming Contest--- What day is that da
- Cocoa Programming for Mac OS X 第一章(What Is It?)摘录
- What is programming?
- What is the single most effective thing you did to improve your programming skills
- (NOT CLEAR) Question 14: What is the correct declaration for a file stream insertion operator for a class my_stuff::my_class a
- 一幅图秒懂LoadAverage(负载) 转载 2015年06月25日 15:55:57 7517 转自:http://www.habadog.com/2015/02/27/what-is-load-