L’interface est localisée ; les présentations et documents des Skills sont traduits automatiquement par IA dans votre langue. Le code, les commandes, chemins et termes techniques restent en version originale, et le document de l’auteur fait foi.
Explorer les Skills
Productivité · SKILL.md

performance-and-parallelization

performance-and-parallelization

Speed up and harden pymoo runs with vectorized problems, elementwise parallel runners, optional backends, compiled-extension checks, and long-run resource controls.

Independent GitHub snapshot · Automated classification · Original documentation governs

Documentation de la Skill

GitHub

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: vectorized Problem, elementwise StarmapParallelization, optional joblib/dask/ray, GPU patterns, cleanup, and validation.
  • Installation and backends: base vs optional extras, compiled-extension checks, backend decision table, and CPU vs optional CUDA notes.
  • Troubleshooting: slow evaluations, stuck pools, pickling failures, missing optional dependencies, unavailable GPU libraries, is_compiled() surprises, progress overhead, and history memory bloat.

Bundled scripts

Skills enregistrées