Skip to content
Back to skills

Performance And Parallelization

ASecurity

"Speed up and harden pymoo runs with vectorized problems,

  • 247 stars
  • 0 votes
  • 0 copies
  • 6 views
  • Added September 8, 2026
datapythongobackendperformance

Works with

  • cli

Security analysis

A100/100

Pro scans all 6 files and shows the line behind each finding

Scanned September 8, 2026

npx -y skills add VectorSpaceLab/AREX-Skill --skill performance-and-parallelization --agent claude-code

Installs 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 with every re-scan.

Security grade badge for Performance And Parallelization
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/vectorspacelab-performance-and-parallelization/badge)](https://www.skillsdirectory.com/skills/vectorspacelab-performance-and-parallelization)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
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.

Files in this skill

  • SKILL.md3.5 KB
  • references/installation-and-backends.md7.2 KB
  • references/parallelization-workflows.md9.5 KB
  • references/troubleshooting.md7.7 KB
  • scripts/check_compiled_extensions.py1.3 KB
  • scripts/parallel_elementwise_smoke.py1.9 KB

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.