Talk:Parallel computation
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
- Concept of parallel vs. serial computation.
- Concept of coarse vs. fine/instruction level parallelism.
- Mention parallel, cluster, distributed computing.
- Growing importance of parallel computation in light of increasing cores in consumer cpus.
- Increased difficulty of coding and debugging parallel programs.
- Problem Domain
- Give a few classic examples (ray tracing and n-body problem).
- Introduce concept of embarrassingly parallel
- Algorithms
- Give some classic examples
- Communication overhead
- Lower performance than serial algorithms when run on single CPU
- Hardware
- 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)
- The need for atomic operations in hardware for parallel code to work.
- Software
- Low level primitives
- Semaphores
- Mutexes
- Language support
- Specialty languages
- Pure functional languages (no side effects = auto parallelization)
- Library support
- OpenMP
- OpenMPI
- Parallel LAPACK.
- Low level primitives
- Research
- Bunch of major research topics
- DNA computing
- Related topics
- Bunch of related topic links, possibly organized by some coherent categories.
- Citations
- Survey and overview papers/pages
Niek Sanders 19:07, 26 March 2007 (CDT)