Personal tools
User menu

Get Started

Jump to: navigation, search

Execute an Example

The following guide explains how to execute the benchmark "TwoProducerConsumer" with DAL:

  1. Go to the installation directory of DAL:
  2. $ cd <dal>
  3. Use ant to generate the C code and to trigger the compilation and execution.
  4. $ ant -f rundal.xml -Dbenchmark=TwoProducerConsumer
  5. DAL executes the benchmark "TwoProducerConsumer" on your host machine. Click here to see the expected output.
  6. In order to see the generated source code and binaries, go to the build directory:
    $ cd <dal>/dal/build/bin/main/TwoProducerConsumer/singlelinux/

The DAL Script

The DAL script (rundal.xml) executes the DAL tool chain, i.e., it generates the source code, compiles the code, and finally executes it. You can customize the execution by specifying arguments with -D<argumentname>=<argumentvalue>. The following arguments are supported:

  • benchmark: the name of the benchmark (default: TwoProducerConsumer)
  • generator: selection of the back-end. Currently, the following back-ends are supported:
    • singlelinux (default): shared-memory processor running Linux (functional simulation)
    • opencl: OpenCL-capable platform
    • phi: Intel Xeon Phi processor running Linux
    • distributedlinux: Multiple shared-memory processors running Linux and that are connected by MPI
    • scc: Intel SCC processor running Linux on each code
    • apenet: multiple shared-memory processors connected by an APENET network (for instance, the QUONG platform)
  • functional: if 1, DAL maps all processes to a single core. It therefore needs no mapping or platform file (default: 0)
  • platform: the name of the architecture file (default: quadcore)
  • mapping: the name of the mapping file (default: mapping)

Example:

$ ant -f rundal.xml -Dbenchmark=MJPEG -Dgenerator=scc -Dplatform=scc -Dmapping=mappingScc

Generated Source Code

The generated source code is organized according to the following schema:

  1. app # container with all applications
    1. <APPLICATION-1-NAME> # one directory per application that contains the source code of the application together with the process wrappers and an application-specific Makefile
    2. ... # ...
    3. <Controller> // source code of the runtime-manager that is also specified as a process network application
  2. include // include files of the DAL framework
  3. lib // container with the dynamic libraries generated for each process
  4. util // source code of the DAL library files
  5. main.cpp // bootstrap file that starts the runtime-manager
  6. Makefile // Makefile to generate the executable
  7. Makefile.inc // Definitions required by the main Makefile and the Makefiles of all applications
!!! 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 !!!