Skip to main content

parallel-processing

Parallel processing with joblib for grid search and batch computations. Use when speeding up computationally intensive tasks across multiple CPU cores.

来源信息

仓库
benchflow-ai/skillsbench
最近来源活动
2026年1月26日 13:34
检测到的 SKILL.md 语言
英语
星标
1,837
分支
371

安装方式

默认使用会先检查来源的 Prompt;你也可以切换为直接命令,或下载本地副本。

检查来源文件

决定是否安装前,请先阅读 SKILL.md,以及 SkillsMP 当前展示的配套文件。

正在显示 SKILL.md

SKILL.md
来源说明 · 只读预览
name
parallel-processing
description
Parallel processing with joblib for grid search and batch computations. Use when speeding up computationally intensive tasks across multiple CPU cores.
# Parallel Processing with joblib Speed up computationally intensive tasks by distributing work across multiple CPU cores. ## Basic Usage ```python from joblib import Parallel, delayed def process_item(x): """Process a single item.""" return x ** 2 # Sequential results = [process_item(x) for x in range(100)] # Parallel (uses all available cores) results = Parallel(n_jobs=-1)( delayed(process_item)(x) for x in range(100) ) ``` ## Key Parameters - **n_jobs**: `-1` for all cores, `1` for sequential, or specific number - **verbose**: `0` (silent), `10` (progress), `50` (detailed) - **backend**: `'loky'` (CPU-bound, default) or `'threading'` (I/O-bound) ## Grid Search Example ```python from joblib import Parallel, delayed from itertools import product def evaluate_params(param_a, param_b): """Evaluate one parameter combination.""" score = expensive_computation(param_a, param_b) return {'param_a': param_a, 'param_b': param_b, 'score': score} # Define parameter grid params = list(product([0.1, 0.5, 1.0], [10, 20, 30])) # Parallel grid search results = Parallel(n_jobs=-1, verbose=10)( delayed(evaluate_params)(a, b) for a, b in params ) # Filter results results = [r for r in results if r is not None] best = max(results, key=lambda x: x['score']) ``` ## Pre-computing Shared Data When all tasks need the same data, pre-compute it once: ```python # Pre-compute once shared_data = load_data() def process_with_shared(params, data): return compute(params, data) # Pass shared data to each task results = Parallel(n_jobs=-1)( delayed(process_with_shared)(p, shared_data) for p in param_list ) ``` ## Performance Tips - Only worth it for tasks taking >0.1s per item (overhead cost) - Watch memory usage - each worker gets a copy of data - Use `verbose=10` to monitor progress
在 GitHub 查看