Erlisp is now defunct. These pages merely serve to preserve its history.
Most publications about parallel / concurrent / distributed programming don’t define the terminology they use. Perhaps that is because these terms are used extensively in computer science education and literature, so the reader is assumed to know their meaning already. However, upon closer examination, these publications do not all assume the same “known” meaning for all terms used.
In the Erlisp code and documentation I will try to avoid such ambiguities by sticking to the terminology that is (informally) defined on this page. At the moment I’m not sure which axes of the concurrency spectrum I want/need to capture, nor in what way to best capture them. Here are some proposals:
Close to common usage
-
Concurrency
A technique of executing several program(fragment)s (seemingly) simultaneously (regardless of the number of machines involved).-
Parallelism
A technique of executing several program(fragment)s (seemingly) simultaneously on a single machine (regardless of its number of execution units).-
Multiprogramming
A technique of executing several program(fragment)s (seemingly) simultaneously on a single machine with a single execution unit. -
Multiprocessing
A technique of executing several program(fragment)s (seemingly) simultaneously on a single machine with multiple execution units.
-
-
Distribution
A technique of executing several program(fragment)s (seemingly) simultaneously across multiple machines.
-
The PUMP model
(A more orthogonal approach, suggested by Larry Clapp.)
Terms derive from the pattern: Parallel [Uni/Multi machines] [Uni/Multi CPUs] Processing. This leads to the following terms, acronyms, and tongue-in-cheek pronounciations:
-
Parallel Uni-Uni Processing, PUUP (“poop”)
A technique of executing several program(fragment)s (seemingly) simultaneously on a single machine with a single execution unit. -
Parallel Uni-Multi Processing, PUMP (“pump”)
A technique of executing several program(fragment)s (seemingly) simultaneously on a single machine with multiple execution units. -
Parallel Uni Processing, PUP (“pup”)
A technique of executing several program(fragment)s (seemingly) simultaneously on a single machine (regardless of its number of execution units). -
Parallel Multi Processing, PMP (“pimp”)
A technique of executing several program(fragment)s (seemingly) simultaneously across multiple machines. -
Parallel Processing, PP (“pep”)
A technique of executing several program(fragment)s (seemingly) simultaneously (regardless of the number of machines involved).