ParallelCases

ParallelCases[{e1,e2,},pattern]

gives a list of the ei that match the pattern, in parallel.

ParallelCases[expr,pattern,levelspec]

gives a list of all parts of expr on levels specified by levelspec that match the pattern.

Details and Options

  • ParallelCases is a parallel version of Cases.
  • ParallelCases will give the same results as Cases, except for side effects during the computation.
  • Parallelize[Cases[data,pattern]] is equivalent to ParallelCases[data,pattern].
  • The following options can be given:
  • Method Automaticgranularity of parallelization
    DistributedContexts $DistributedContextscontexts used to distribute symbols to parallel computations
    ProgressReporting $ProgressReportingwhether to report the progress of the computation
  • The Method option specifies the parallelization method to use. Possible settings include:
  • "CoarsestGrained"break the computation into as many pieces as there are available kernels
    "FinestGrained"break the computation into the smallest possible subunits
    "EvaluationsPerKernel"->ebreak the computation into at most e pieces per kernel
    "ItemsPerEvaluation"->mbreak the computation into evaluations of at most m subunits each
    Automaticcompromise between overhead and load balancing
  • Method->"CoarsestGrained" is suitable for computations involving many subunits, all of which take the same amount of time. It minimizes overhead but does not provide any load balancing.
  • Method->"FinestGrained" is suitable for computations involving few subunits whose evaluations take different amounts of time. It leads to higher overhead but maximizes load balancing.
  • The DistributedContexts option specifies which symbols appearing in expr have their definitions automatically distributed to all available kernels before the computation.
  • The default value is DistributedContexts:>$DistributedContexts with $DistributedContexts:=$Context, which distributes definitions of all symbols in the current context but does not distribute definitions of symbols from packages.
  • The ProgressReporting option specifies whether to report the progress of the parallel computation.
  • The default value is ProgressReporting:>$ProgressReporting.

Examples

open allclose all

Basic Examples  (1)

Find cases that explicitly match integers:

Find cases that do not match integers:

Scope  (1)

Pick out cases of integers down to level 2:

Options  (5)

DistributedContexts  (2)

By default, definitions in the current context are distributed automatically:

Do not distribute any definitions of functions:

Method  (1)

Break the computation into as many subparts as there are kernels:

Schedule each evaluation by itself:

ProgressReporting  (2)

Do not show a temporary progress report:

Use Method"FinestGrained" for the most accurate progress report:

Properties & Relations  (1)

Parallelize[Cases[]] is equivalent to ParallelCases[]:

Possible Issues  (1)

The optional length argument of Cases cannot be parallelized:

Wolfram Research (2025), ParallelCases, Wolfram Language function, https://reference.wolfram.com/language/ref/ParallelCases.html.

Text

Wolfram Research (2025), ParallelCases, Wolfram Language function, https://reference.wolfram.com/language/ref/ParallelCases.html.

CMS

Wolfram Language. 2025. "ParallelCases." Wolfram Language & System Documentation Center. Wolfram Research. https://reference.wolfram.com/language/ref/ParallelCases.html.

APA

Wolfram Language. (2025). ParallelCases. Wolfram Language & System Documentation Center. Retrieved from https://reference.wolfram.com/language/ref/ParallelCases.html

BibTeX

@misc{reference.wolfram_2024_parallelcases, author="Wolfram Research", title="{ParallelCases}", year="2025", howpublished="\url{https://reference.wolfram.com/language/ref/ParallelCases.html}", note=[Accessed: 15-January-2025 ]}

BibLaTeX

@online{reference.wolfram_2024_parallelcases, organization={Wolfram Research}, title={ParallelCases}, year={2025}, url={https://reference.wolfram.com/language/ref/ParallelCases.html}, note=[Accessed: 15-January-2025 ]}