In computer programming, explicit parallelism is the representation of concurrent computations using primitives in the form of operators, function calls or special-purpose directives.[1] Most parallel primitives are related to process synchronization, communication and process partitioning.[2] As they rarely contribute to actually carry out the intended computation of the program but, rather, structure it, their computational cost is often considered as overhead.

The advantage of explicit parallel programming is increased programmer control over the computation. A skilled parallel programmer may take advantage of explicit parallelism to produce efficient code for a given target computation environment. However, programming with explicit parallelism is often difficult, especially for non-computing specialists, because of the extra work and skill involved in developing it.

In some instances, explicit parallelism may be avoided with the use of an optimizing compiler or runtime that automatically deduces the parallelism inherent to computations, known as implicit parallelism.

Programming languages that support explicit parallelism

edit

Some of the programming languages that support explicit parallelism are:

References

edit
  1. ^ von Praun, Christoph (June 2011). Parallel programming: design of an overview class. Proceedings of the 2011 ACM SIGPLAN X10 Workshop. pp. 1–6. doi:10.1145/2212736.2212738.
  2. ^ Dijkstra, Edsger W. (May 1, 1968). "The structure of the "THE"-multiprogramming system". Communications of the ACM. 11 (5): 341–346. doi:10.1145/363095.363143.

📚 Artikel Terkait di Wikipedia

Parallel computing

tasks. In some cases parallelism is transparent to the programmer, such as in bit-level or instruction-level parallelism, but explicitly parallel algorithms

Implicit parallelism

enable parallel execution, in contrast to explicit parallelism. Programming languages with implicit parallelism include Axum, Binary Modular Dataflow Machine

Instruction-level parallelism

Instruction-level parallelism (ILP) is the parallel or simultaneous execution of a sequence of instructions in a computer program. More specifically,

Parallel programming model

parallelization Bridging model Concurrency Degree of parallelism Implicit parallelism Explicit parallelism List of concurrent and parallel programming languages

Message Passing Interface

and pbdMPI, where Rmpi focuses on manager-workers parallelism while pbdMPI focuses on SPMD parallelism. Both implementations fully support Open MPI or MPICH2

Tacit collusion

conscious parallelism. In a concerted action, also known as concerted activity, competitors exchange some information without reaching any explicit agreement

Computer cluster

business use). Within the same time frame, while computer clusters used parallelism outside the computer on a commodity network, supercomputers began to

Loop-level parallelism

Loop-level parallelism is a form of parallelism in software programming that is concerned with extracting parallel tasks from loops. The opportunity for