• DocumentCode
    1314170
  • Title

    Expressing Coarse-Grain Dependencies Among Tasks in Shared Memory Programs

  • Author

    Larsen, Per ; Karlsson, Sven ; Madsen, Jan

  • Author_Institution
    DTU Inf., Tech. Univ. of Denmark, Lyngby, Denmark
  • Volume
    7
  • Issue
    4
  • fYear
    2011
  • Firstpage
    652
  • Lastpage
    660
  • Abstract
    Designers of embedded systems face tight constraints on resources, response time and cost. The ability to analyze embedded systems is essential to timely delivery of new designs. Many analysis techniques model parallel programs as task graphs. Task graphs capture the worst-case execution times of individual pro gram tasks and the data dependencies among these. This paper introduces two compiler directives which let programmers annotate source code with data dependencies among tasks. Compiler analysis over-approximates the actual dependencies among tasks. The directives help eliminate potential data dependencies that do not occur at runtime. This lets tools compute more accurate task graphs from the annotated code. The correct use of the directives cannot be verified at compile time. Therefore, the check for correct use is done at runtime-not unlike dynamic array bounds checking in many languages. The overhead of verifying the correct use of the directives was measured on a set of benchmarks on two platforms. The overhead of runtime checks was found to be negligible in all instances.
  • Keywords
    embedded systems; graph theory; parallel programming; program compilers; program verification; shared memory systems; source coding; task analysis; coarse grain dependencies; compiler analysis; compiler directives; data dependencies; embedded system; parallel program; shared memory program; source code; task graph; worst case execution time; Benchmark testing; Embedded systems; Instruction sets; Real time systems; Runtime; Assertions; data dependencies; real-time and embedded systems; scheduling and task partitioning;
  • fLanguage
    English
  • Journal_Title
    Industrial Informatics, IEEE Transactions on
  • Publisher
    ieee
  • ISSN
    1551-3203
  • Type

    jour

  • DOI
    10.1109/TII.2011.2166769
  • Filename
    6009193