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)
Dekker's Algorithm
T.J. Dekker made a historically significant mutual exclusion algorithm. He showed that is possible to use memory interlock alone to enforce a critical section. (Note that this no longer works on modern processors).
Tracking down a citation for this algorithm has been a pain in the ass. He apparently wrote it in 1959 but both these two webpages indicate it was published in a book by Dijkstra:
- http://www.cs.uiowa.edu/~jones/syssoft/notes/17conc.html
- http://portal.acm.org/citation.cfm?doid=945526.945527 (citation 9)
I'm going to steal the ACM citation for now, but it needs verification.
Niek Sanders 01:28, 27 March 2007 (CDT)