The following five files are useful for running regressions with
ACL2(p):

  parallel-full.lisp
  parallel-resource-based.lisp
  parallel-top-level.lisp
  pseudo-parallel.lisp
  serial.lisp

For example:

(time nice make -j 8 regression-fresh ACL2_CENTAUR=skip ACL2=/projects/acl2/devel/ccl-saved_acl2p ACL2_CUSTOMIZATION=/projects/acl2/devel/acl2-customization-files/parallel-full.lisp) >& logs/make-regression-par-ccl-j-8-feb27.log&

To find all calls of set-waterfall-parallelism, issue the following
command in your books directory.

grep -l "set-waterfall-parallelism" `find . -name "*.acl2" -o -name "*.lisp"`

Note: Sometimes parallelism is defeated or modified for individual
books.  To find some of these occurrences, you can issue the following
command in your books directory.

  grep -l acl2-par `find . -name "*.acl2"`

For example, hints/basic-tests.acl2 has this:

  #+acl2-par
  ; computed hints that modify state
  (set-waterfall-parallelism nil)

And models/jvm/m5/apprentice.acl2 has this:

  #+acl2-par
  (set-waterfall-parallelism t)

A utility, without-waterfall-parallelism, may be useful.  For example,
in defsort/generic.lisp we find:

  (local (include-book "misc/without-waterfall-parallelism" :dir :system))
  ...
  (without-waterfall-parallelism
  (def-saved-obligs fast-comparable-mergesort-fixnums-guards
    :proofs ((fast-comparable-mergesort-fixnums-guards))
    (verify-guards fast-comparable-mergesort-fixnums))
  )

Many books use a stylized make-event inside the actual file to disable
parallelism.  To find these, issue:

  cd books
  grep -l "Disabling waterfall parallelism" `find . -name "*.lisp"`

For example, centaur/4v-sexpr/sexpr-rewrites.lisp has the following.

  (make-event

  ; Disabling waterfall parallelism because this book allegedly uses memoization
  ; while performing its proofs.

   (if (and (hons-enabledp state)
            (f-get-global 'parallel-execution-enabled state))
       (er-progn (set-waterfall-parallelism nil)
                 (value '(value-triple nil)))
     (value '(value-triple nil))))

Here is a note relevant to ACL2(p) from David Rager.

  Some of the books will perform better under :resource-based waterfall
  parallelism than :full waterfall parallelism.  This is because these
  books have so many subgoals and such a strange dependency tree between
  those subgoals that the waterfall parallelism resources become
  exhausted and the proofs must execute serially at times to maintain a
  stable system.  As such, it may be good to override any :full setting
  that a customization file provides and use :resource-based waterfall
  parallelism instead -- just for these few books.  Note that even
  without overriding the waterfall parallelism setting, the system will
  remain stable.  Changing the waterfall parallelism mode is just a
  performance optimization.  As of April 2012, the books to which this
  statement may apply are the following:

  models/jvm/m5/apprentice.lisp
  coi/termination/assuming/complex.lisp
  concurrent-programs/bakery/stutter2.lisp
