Talk:Parallel computation

From Citizendium
Revision as of 18:07, 26 March 2007 by imported>Niek Sanders (Proposed Outline)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

Proposed Outline

I just did a quick brain-dump for the initial cut at this page. I think a reasonable initial sectioning is as follows:

  • Introduction
    1. Concept of parallel vs. serial computation.
    2. Concept of coarse vs. fine/instruction level parallelism.
    3. Mention parallel, cluster, distributed computing.
    4. Growing importance of parallel computation in light of increasing cores in consumer cpus.
    5. Increased difficulty of coding and debugging parallel programs.
  • Problem Domain
    1. Give a few classic examples (ray tracing and n-body problem).
    2. Introduce concept of embarrassingly parallel
  • Algorithms
    1. Give some classic examples
    2. Communication overhead
    3. Lower performance than serial algorithms when run on single CPU
  • Hardware
    1. The need for atomic operations in hardware for parallel code to work.
      • CPU Level Test and Set (TAS)
      • CPU Level Test and Swap (Lockfree programming)
      • Alternative method using memory interlock (classic CS paper)
  • Software
    1. Low level primitives
      • Semaphores
      • Mutexes
    2. Language support
      • Specialty languages
      • Pure functional languages (no side effects = auto parallelization)
    3. Library support
      • OpenMP
      • OpenMPI
      • Parallel LAPACK.
  • Research
      • Bunch of major research topics
      • DNA computing
  • Related topics
      • Bunch of related topic links, possibly organized by some coherent categories.
  • Citations
    1. Survey and overview papers/pages

Niek Sanders 19:07, 26 March 2007 (CDT)