Personal tools
User menu

Benchmarks

Jump to: navigation, search

The following list describes our first set of released applications for DAL. The source code of the applications is included in the DAL package that can be downloaded from here.

In DAL, the workload of a system may consists of more than one application that dynamically interact with each other. Therefore, at the end of this document, we describe some exemplified benchmarks that consist of more than one application.

DAL Applications

DSP/Data-Flow Kernels

Producer-Consumer

A canonical producer-consumer application is built, in which the producer generates data, and the consumer consumes the generated data. Between the producer consumer pair, one process is inserted to process the data.

Multi-Square Application

This application illustrates the use of iterators that are used to generate a chain of processes that square a number. Using this chain of square processes, a higher power of the input number sequence is computed.

2D-Mesh Application

This application illustrates the sue of iterators in two-dimensions. Using these iterators, a 2D mesh is generated in which tokens are passed forward in horizontal and vertical direction.

Matrix Multiplication Application

The matrix multiplication application splits the computation of the matrix product up into single multiplications and additions. This way, the N x N matrix multiplication operation is split up into single processes, each of which only performs a multiplication followed by an addition. Single coefficients of the resulting matrix are computed by appropriately connecting the processes.

Fast Fourier Transform Application

The N-point fast Fourier transform application splits up the calculation into N/2*log2(N) 2-point FFTs. Using the 2-point FFT, higher-order FFTs can be computed by arranging N/2*log2(N) 2-point FFTs and connecting them using a butterfly network. The application illustrates the use of the <function element and shows how processes can be parametrized using the init function. In contrast to the previous applications, non-elementary data types - in this application complex numbers - are passed between processes.

Infinite Impulse Response (IIR) Filter Application

In this application, a first order infinite impulse response (IIR) filter is implemented illustrating the use of a feedback loop.

N-Order IIR Filter Application

In this application, an N-order IIR filter is decomposed of first order IIR filters.

Multimedia Applications

Motion-JPEG Decoder Application

A distributed version of a Motion-JPEG decoder, which is able to decode multiple frames in parallel.

Video Processing Application

The multi-stage video-processing application first decodes a motion-JPEG video stream and then applies a motion detection method to the decoded video stream. The motion detection method is composed of a Gaussian blur, a gradient magnitude calculation using Sobel filters, and an optical flow motion analysis.

H-264 Encoder / Decoder Applications

The H.264/MPEG-4 AVC (Advanced Video Codec) is one of the most widely used video coding standards in recent years. The available H-264 encoder and decoder applications for DAL support the baseline profile and use coarse-grained task parallelism. The application is based on an original implementation for the HOPES framework.

Ray-Tracing Application

The ray-tracing application consists of three logic parts. The first part of the application comprises the generation of the rays. The next part is the most computational intensive part of the application, namely the intersection of the rays with the scene, which is to be rendered. Lastly, the calculated values are aggregated and stored to an image file in the third part.

Mathematical Applications

Array-Sorting Application

The considered distributed array-sorting application uses the quicksort algorithm to sort an array of arbitrary length.

Multi-Application Benchmarks

Benchmark TwoProducerConsumer

Two producer-consumer applications are started after each other. The fintie state machine consists of three states, i.e., Scenario 1, Scenario 2, and End. In Scenario 1, the first producer-consumer application is running, in Scenario 2, the second producer-consumer application is running, and in End, all applications are stopped.

Benchmark FFTandMatrix

The FFT application and the Matrix Multiplication application are consecutively executed. First, in Scenario FFT, the FFT application is executed, while in Scenario Matrix, the Matrix application is executed. Finally, the application goes to an End state.

Benchmark FIRandMultiFIR

The MULTIFIR application and the FIR application are concurrently running as soon as the producer-consumer application has been completed. The finite state machine consists of five states: In Scenario 1, the producer-consumer application is running. In Scenario 2, both the MULTIFIR and the FIR application are running concurrently. In case event stop_multifir first occurs, the finite state machine switches to Scenario FIR_RUN, and otherwise, the finite state machine switches to Scenario MULTIFIR_RUN. Finally, the example ends in state End.

Benchmark ProducerConsumerSequentialEnd

The producer-square-consumer application is executed. After completing 20 iterations, each process sends a corresponding event to stop the application. The finite state machine consists of eight states, therefrom four are visited until the application stops. Suppose that the processes complete in the following order: generator, square, and consumer. Then, the example starts in Scenario GSC, and translates first to Scenario SC. Afterwards, it translates to Scenario C and finally, to the End state. As soon as the last event is received, the producer-consumer application is stopped.

Benchmark TwoMJPEGwithUI

This is a video player that can concurrently play two videos. It consists of a user interface application (UI) and two MJPEG decoder applications. The benchmark offers the following features: play, stop, pause, and resume an application. Depending on the current state of the example, you may not be able to perform all features. For example, suppose that the MJPEG 1 application is already running. Then, you are not able to play or resume the MJPEG 1 application.

The finite state machine consists of ten states whose names reflect the current state of both MJPEG applications. The example can only be finished if both MJPEG applications are stopped, i.e., the example's state is Scenario UI. Refer to the description of the MJPEG application on how to view the decoded video.

!!! Dieses Dokument stammt aus dem ETH Web-Archiv und wird nicht mehr gepflegt !!!
!!! This document is stored in the ETH Web archive and is no longer maintained !!!