"Speed up and harden pymoo runs with vectorized problems,
Scanned 9/8/2026
Install to Claude Code
npx -y skills add VectorSpaceLab/AREX-Skill --skill performance-and-parallelization --agent claude-codeInstalls into .claude/skills of the current project.
Are you the author of Performance And Parallelization?
Add the live security badge to your README — it updates automatically with every re-scan.
[](https://www.skillsdirectory.com/skills/vectorspacelab-performance-and-parallelization)More formats (shields.io, HTML) on the badges page.
---
name: performance-and-parallelization
description: "Speed up and harden pymoo runs with vectorized problems,
elementwise parallel runners, optional backends, compiled-extension checks,
and long-run resource controls."
metadata:
disco-role: operating
disable-model-invocation: true
license: Apache 2.0
---
# performance-and-parallelization
Use this sub-skill when a pymoo task asks to make optimization faster or safer:
slow objective evaluations, vectorization, elementwise runners, `starmap`,
threads/processes, joblib/dask/ray, GPU acceleration patterns, compiled-extension
status, reproducibility, progress overhead, or memory costs during long runs.
## Route first
- Problem formulas, objective/constraint signs, output shapes, and bounds belong
to the `problem-modeling` sub-skill.
- Algorithm portfolio, termination choices, ask-and-tell loops, and result field
interpretation belong to the `optimization-workflows` sub-skill.
- Indicators, Pareto-front metrics, convergence plots, and visualization belong
to the `analysis-and-visualization` sub-skill.
- Stay here for evaluation throughput, backend selection, install extras for
parallelization, compiled-function checks, and resource cleanup.
## Fast operating checklist
1. **Prefer vectorized evaluation**: if an objective can evaluate an `(n, n_var)`
NumPy matrix at once, use `Problem` and fill vectorized arrays such as
`out["F"]`. This usually beats Python-level pools for cheap numeric work.
2. **Use elementwise runners for expensive black boxes**: if one simulation call
evaluates one candidate at a time, define `ElementwiseProblem` and pass an
`elementwise_runner` such as `StarmapParallelization(pool.starmap)`.
3. **Choose the smallest backend that fits**: stdlib threads/processes need only
the base pymoo install; joblib/dask/ray require the `parallelization` optional
extra and should not be assumed present.
4. **Always clean up pools/clients**: close/join thread or process pools, close
dask clients, and shut down ray when you initialized it.
5. **Verify install performance state**: use `from pymoo.functions import
is_compiled` to check whether Cython-compiled functions are available. Pure
Python fallback is valid but can be slower.
6. **Control long-run overhead**: set `seed=...` for reproducibility; keep
`verbose`/progress off for timing; avoid `save_history=True` unless history is
required because it stores deep copies across generations.
## Open the bundled references
- [Parallelization workflows](references/parallelization-workflows.md): vectorized
`Problem`, elementwise `StarmapParallelization`, optional joblib/dask/ray, GPU
patterns, cleanup, and validation.
- [Installation and backends](references/installation-and-backends.md): base vs
optional extras, compiled-extension checks, backend decision table, and CPU vs
optional CUDA notes.
- [Troubleshooting](references/troubleshooting.md): slow evaluations, stuck pools,
pickling failures, missing optional dependencies, unavailable GPU libraries,
`is_compiled()` surprises, progress overhead, and history memory bloat.
## Bundled scripts
- [scripts/parallel_elementwise_smoke.py](scripts/parallel_elementwise_smoke.py):
safe CPU-only smoke for `ElementwiseProblem` plus a thread-pool starmap runner.
- [scripts/check_compiled_extensions.py](scripts/check_compiled_extensions.py):
reports whether compiled pymoo functions are available; use
`--require-compiled` only when a task explicitly requires compiled speedups.
Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.
No comments yet. Be the first to comment!