Talk:Parallel computation: Difference between revisions

From Citizendium
Jump to navigation Jump to search
imported>Yuval Langer
(Adding article checklist)
imported>Subpagination Bot
m (Add {{subpages}} and remove checklist (details))
 
Line 1: Line 1:
{{checklist
{{subpages}}
|                abc = Parallel computation
|                cat1 = Computers
|                cat2 =
|                cat3 =
|          cat_check = n
|              status = 2
|        underlinked = y
|            cleanup = y
|                  by = [[User:Yuval Langer|Yuval Langer]] 20:14, 11 April 2007 (CDT)
}}


== Proposed Outline ==
== Proposed Outline ==

Latest revision as of 11:53, 12 November 2007

This article is developing and not approved.
Main Article
Discussion
Definition [?]
Related Articles  [?]
Bibliography  [?]
External Links  [?]
Citable Version  [?]
 
To learn how to update the categories for this article, see here. To update categories, edit the metadata template.
 Definition Please add a brief definition or description.
Checklist and Archives
 Workgroup category Computers [Categories OK]
 Subgroup category:  Distributed computing
 Talk Archive none  English language variant British English
To do.


Metadata here


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)

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:

I'm going to steal the ACM citation for now, but it needs verification.

Niek Sanders 01:28, 27 March 2007 (CDT)