界面已本地化;技能介绍与说明文档按所选语言由 AI 自动翻译,代码、命令、路径和专业术语保留原文,以原作者文档为准。
探索技能
效率与协作 · 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.

独立 GitHub 快照 · 自动分类 · 以原作者文档为准

技能说明

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

我的收藏