Major Section: PARALLELISM
See parallel and see parallelism-tutorial for an introduction to parallel
evaluation in ACL2 using parallelism primitives pand, por,
plet, and pargs.
General Forms: (set-parallel-evaluation nil) ; default for images not built for parallelism (set-parallel-evaluation t) ; default for images built for parallelism (set-parallel-evaluation :bogus-parallelism-ok)
Set-parallel-evaluation takes an argument that specifies the enabling or
disabling of parallel evaluation. However, calls of parallelism
primitives made explicitly in the ACL2 top-level loop, as opposed to inside
function bodies, will never cause parallel evaluation;
see parallelism-at-the-top-level. Parallel evaluation is determined by the
value of the argument to set-parallel-evaluation, as follows.
Value t:
All parallelism primitives used in bodies of function definitions are given
the opportunity to execute in parallel. However, the use of parallelism
primitives directly in the ACL2 top-level loop causes an error.
Value :bogus-parallelism-ok:
Parallel evaluation is enabled, as for value t. However, the use of
parallelism primitives directly in the ACL2 top-level loop does not cause an
error, but rather, simply results in serial evaluation for these primitives.
Value nil:
All parallelism primitives will degrade to their serial equivalents, include
their calls made directly in the ACL2 top-level loop, which does not cause an
error.