Sieve C++ Parallel Programming System - Introduction

Introduction

Sieve is a C++ compiler that will take a section of serial code, which is annotated with sieve markers, and parallelize it automatically. The programmer wraps code they wish to parallelise inside a lexical scope, which is tagged as 'sieve'. Inside this scope, referred to commonly as a 'sieve block', certain rules apply :

  • All side-effects within the sieve block are delayed until the end of the scope.
  • Side-effects are defined to be any modifications to data declared outwith the sieve block scope.
  • Only functions annotated with sieve or immediate can be called.

Delaying side-effects removes many small dependencies which would usually impede automatic parallelization. Reads and writes can be safely reordered by the compiler as to allow better use of various data movement mechanisms, such as Direct Memory Access(DMA). In addition, alias analysis and dataflow analysis can be simplified . The compiler can then split up code within the sieve block much easier, to exploit parallelism.

Read more about this topic:  Sieve C++ Parallel Programming System

Famous quotes containing the word introduction:

    My objection to Liberalism is this—that it is the introduction into the practical business of life of the highest kind—namely, politics—of philosophical ideas instead of political principles.
    Benjamin Disraeli (1804–1881)

    The role of the stepmother is the most difficult of all, because you can’t ever just be. You’re constantly being tested—by the children, the neighbors, your husband, the relatives, old friends who knew the children’s parents in their first marriage, and by yourself.
    —Anonymous Stepparent. Making It as a Stepparent, by Claire Berman, introduction (1980, repr. 1986)

    Do you suppose I could buy back my introduction to you?
    S.J. Perelman, U.S. screenwriter, Arthur Sheekman, Will Johnstone, and Norman Z. McLeod. Groucho Marx, Monkey Business, a wisecrack made to his fellow stowaway Chico Marx (1931)