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,850
포크
370

설치 방법

기본적으로 소스를 먼저 확인하는 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에서 보기