Stream Computing: Amit Kumar
Stream Computing: Amit Kumar
A SEMINAR REPORT
Submitted by
AMIT KUMAR
of
BACHELOR OF TECHNOLOGY
in
SCHOOL OF ENGINEERING
COCHIN – 682022
AUGUST 2008
DIVISION OF COMPUTER ENGINEERING
SCHOOL OF ENGINEERING
Bonafide Certificate
“Stream Computing”
Presented by
AMIT KUMAR
of the VII semester, Computer Science and Engineering in the year 2008 in partial
research goals. Her vision and leadership has been fundamental to the
progress of the seminar . Her breadth and depth of knowledge and the
variety of her interests and pursuits will always provide a standard for me to
aspire to.
Last but not the least I am also grateful to my family and friends who
have been a constant source of support and encouragement from well before
AMIT KUMAR
Abstract
These applications can be divided into multiple data streams - e.g. au-
dio and video streams - that must be delivered to the data consumer
in a just-in-time manner.
lem that is solved. Solutions are less generic than in a normal imple-
work on the Cell processor that shows the obstructions that must be
overcome.
The main task is to pull in streams of data, process the data and
stream it back out as a single flow and thereby analyzes multiple data
speed and accuracy when dealing with data handling and analysis.
software applications to split up tasks and then reassemble the data into
6 Development Support 19
i
6.1 StreamIt Development tool 19
6.2 Debugging Parallel StreamIt programs 20
6.3 StreamIt graphical Editor 21
6.4StreamIt Debugging Environment 22
7 Conclusion 23
8 References 24
ii
List of figures
iii
Stream Computing
INTRODUCTION
Like other definitions of topics like these, an understanding of the term stream
computing requires an understanding of various other terms which are closely
related to this. While there is a lack of precise scientific definitions for many of
these terms, general definitions can be given.
1
Division Of Computer Science and Engineering ,SOE,CUSAT
Stream Computing
complexity, and the elimination of hardware caches reduces the amount of die area
not dedicated to computational units such as ALUs.
2. Stream Computing
2
Division Of Computer Science and Engineering ,SOE,CUSAT
Stream Computing
3
Division Of Computer Science and Engineering ,SOE,CUSAT
Stream Computing
4
Division Of Computer Science and Engineering ,SOE,CUSAT
Stream Computing
Deliver high level, multi-targeted compilers through Brook, 3rd parties like
rapid mind, and partnerships with universities and industry.
Is stream computing return to the old coprocessor days? In many ways
stream computing does resemble the days when vector co-processors handled
substantial mathematical tasks. The benefit then as now is the remarkable
performance boost gained through implementing these specialized components.
4. Enabling technologies
Stream processors are programmable processors that are optimized for executing
programs expressed using the stream programming model. A block diagram of a
stream processor The stream processor operates as a coprocessor under the control
of the host processor, which is often a standard general-purpose CPU. A stream
program executing on the host processor orchestrates the sequence of kernels to
be executed and then necessary transfer of input and output data streams between
the stream processor and o-chip memory. Kernel execution takes place directly on
the stream processor from instructions stored in the microcontroller. New kernels
may be loaded into them microcontroller as needed, possibly under explicit control
of the host processor. The sequence of operations initiated by the host processor to
5
Division Of Computer Science and Engineering ,SOE,CUSAT
Stream Computing
"A model that uses sequences of data and computation kernels to expose and
exploit concurrency and locality for efficient. When using such a board for stream
processing, a common system model is to distribute data out from the FPGA to
6
Division Of Computer Science and Engineering ,SOE,CUSAT
Stream Computing
7
Division Of Computer Science and Engineering ,SOE,CUSAT
Stream Computing
8
Division Of Computer Science and Engineering ,SOE,CUSAT
Stream Computing
firings StreamIt provides three hierarchical structures for composing filters into
larger stream graphs .
9
Division Of Computer Science and Engineering ,SOE,CUSAT
Stream Computing
}
push(result);
pop();}}
10
Division Of Computer Science and Engineering ,SOE,CUSAT
Stream Computing
The filter can now serve as a module that is incorporated into stream graphs as
necessary for example as part of an acoustic beam former. A filter is akin to a
classin object oriented programming with the work function serving as the main
method. A filter may also declare a constructor function to initialize the filter state
before any other method is invoked. The implementation of the work function in
StreamIt obviates the need for explicit buffer management. The application
developer instead focuses on the hierarchical assembly of the stream graph and its
communication topology.
4.6 Applications
Stream processing is essentially a compromise, driven by a data-centric model that
works very well for traditional DSP or GPU-type applications (such as image,
video and digital signal processing) but less so for general purpose processing with
more randomized data access (such as databases). By sacrificing some flexibility in
the model, the implications allow easier, faster and more efficient execution.
Depending on the context, processor design may be tuned for maximum efficiency
or a trade-off for flexibility.
Stream processing is especially suitable for applications that exhibit three
application characteristics. Compute Intensity the number of arithmetic operations
per I/O or global memory reference. In many signal processing applications today it
is well over 50:1 and increasing with algorithmic complexity .Data Parallelism
exists in a kernel if the same function is applied to all records of an input stream
and a number of records can be processed simultaneously without waiting for
results from previous records. Data Locality is a specific type of temporal locality
common in signal and media processing applications where data is produced once,
read once or twice later in the application , and never read again. Intermediate
streams passed between kernels as well as intermediate data within kernel functions
can capture this locality directly using the stream processing programming model.
11
Division Of Computer Science and Engineering ,SOE,CUSAT
Stream Computing
12
Division Of Computer Science and Engineering ,SOE,CUSAT
Stream Computing
5. StreamIt Compiler
StreamIt provides three hierarchical structures for composing filters into larger
stream graphs (see Figure 1). The pipeline construct composes streams in sequence,
13
Division Of Computer Science and Engineering ,SOE,CUSAT
Stream Computing
with the output of one connected to the input of the next. The split join construct
distributes data to a set of parallel streams, which are then joined together in a
round robin fashion. The feedback loop provides a mechanism for introducing
cycles in the graph. An ex-ample of a pipeline appears in Figure 2. It contains as
ingle FIR (Finite Impulse Response) filter which could be implemented as follows.
14
Division Of Computer Science and Engineering ,SOE,CUSAT
Stream Computing
15
Division Of Computer Science and Engineering ,SOE,CUSAT
Stream Computing
COMBINATION EXAMPLE
16
Division Of Computer Science and Engineering ,SOE,CUSAT
Stream Computing
17
Division Of Computer Science and Engineering ,SOE,CUSAT
Stream Computing
18
Division Of Computer Science and Engineering ,SOE,CUSAT
Stream Computing
6. Development Support
6.1 StreamIt Development tool
19
Division Of Computer Science and Engineering ,SOE,CUSAT
Stream Computing
debugging programs.
20
Division Of Computer Science and Engineering ,SOE,CUSAT
Stream Computing
We are making available the first public version of the StreamIt Development Tool
(SDT). It is implemented in Java as an Eclipse plug in ,and intended for
developing, debugging, and visualizing programs written in StreamIt. As a
graphical programming environment, it can simply and intuitively convey the
hierarchical and structured nature of a StreamIt application. In addition, the
21
Division Of Computer Science and Engineering ,SOE,CUSAT
Stream Computing
debugger can interpret and visually represent the stream graph and its dynamic
behavior, including the flow of information in parallel stream graphs. The SDT is
composed of the following modules: an IDE-integrated debugger, a graphical text
22
Division Of Computer Science and Engineering ,SOE,CUSAT
Stream Computing
produced by the source and whose data is in turn consumed by an Adder. Lastly, a
filter (IntPrinter) reads and prints the computed values
7. Conclusion
23
Division Of Computer Science and Engineering ,SOE,CUSAT
Stream Computing
8. References
1 . http://cag.csail.mit.edu/streamit
“StreamIt Homepage”
2. http://www.csm.ornl.gov/workshops/SOS11/presentations/d_rich.pdf
“welcome to the new era of stream computing ppt”
24
Division Of Computer Science and Engineering ,SOE,CUSAT