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.
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 Automatic granularity of parallelization DistributedContexts $DistributedContexts contexts used to distribute symbols to parallel computations ProgressReporting $ProgressReporting whether 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"->e break the computation into at most e pieces per kernel "ItemsPerEvaluation"->m break the computation into evaluations of at most m subunits each Automatic compromise 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 all close allBasic Examples (1)
Scope (1)
Options (5)
DistributedContexts (2)
By default, definitions in the current context are distributed automatically:
test[i_] := PrimeQ[2 ^ i - 1]ParallelCases[Range[9000, 10000], _ ? test]Do not distribute any definitions of functions:
test2[i_] := PrimeQ[2 ^ i - 1]ParallelSelect[Range[9000, 10000], _ ? test2, DistributedContexts -> None]Method (1)
Break the computation into as many subparts as there are kernels:
ParallelCases[Range[32], n_ ? PrimeQ :> {n, $KernelID}, Method -> "CoarsestGrained"]Schedule each evaluation by itself:
ParallelCases[Range[32], n_ ? PrimeQ :> {n, $KernelID}, Method -> "FinestGrained"]ProgressReporting (2)
Do not show a temporary progress report:
res = ParallelCases[Range[9000, 12000], n_ /; PrimeQ[2 ^ n - 1], Method -> "FinestGrained", ProgressReporting -> False]Use Method"FinestGrained" for the most accurate progress report:
res = ParallelCases[Range[9000, 12000], n_ /; PrimeQ[2 ^ n - 1], Method -> "FinestGrained", ProgressReporting -> True]
| |
Properties & Relations (1)
Parallelize[Cases[…]] is equivalent to ParallelCases[…]:
Parallelize[Cases[Range[20], _ ? PrimeQ]]ParallelCases[Range[20], _ ? PrimeQ]Possible Issues (1)
The optional length argument of Cases cannot be parallelized:
ParallelCases[Sqrt[Range[100]], _Integer, {1}, 3]See Also
Related Guides
History
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_2026_parallelcases, author="Wolfram Research", title="{ParallelCases}", year="2025", howpublished="\url{https://reference.wolfram.com/language/ref/ParallelCases.html}", note=[Accessed: 13-June-2026]}
BibLaTeX
@online{reference.wolfram_2026_parallelcases, organization={Wolfram Research}, title={ParallelCases}, year={2025}, url={https://reference.wolfram.com/language/ref/ParallelCases.html}, note=[Accessed: 13-June-2026]}