get-available-resources
关于
This skill detects available system resources like CPU cores, GPUs, memory, and disk space at the start of intensive tasks. It outputs a JSON report with strategic recommendations for choosing parallel processing, GPU acceleration, or memory-efficient approaches. Developers should use it before analyses, model training, or large data processing to inform computational decisions.
快速安装
Claude Code
推荐npx skills add K-Dense-AI/claude-scientific-skills -a claude-code/plugin add https://github.com/K-Dense-AI/claude-scientific-skillsgit clone https://github.com/K-Dense-AI/claude-scientific-skills.git ~/.claude/skills/get-available-resources在 Claude Code 中复制并粘贴此命令以安装该技能
技能文档
Get Available Resources
Overview
Detect available computational resources and generate strategic recommendations for scientific computing tasks. This skill automatically identifies CPU capabilities, GPU availability (NVIDIA CUDA, AMD ROCm, Apple Silicon Metal), memory constraints, and disk space to help make informed decisions about computational approaches.
When to Use This Skill
Use this skill proactively before any computationally intensive task:
- Before data analysis: Determine if datasets can be loaded into memory or require out-of-core processing
- Before model training: Check if GPU acceleration is available and which backend to use
- Before parallel processing: Identify optimal number of workers for joblib, multiprocessing, or Dask
- Before large file operations: Verify sufficient disk space and appropriate storage strategies
- At project initialization: Understand baseline capabilities for making architectural decisions
Example scenarios:
- "Help me analyze this 50GB genomics dataset" → Use this skill first to determine if Dask/Zarr are needed
- "Train a neural network on this data" → Use this skill to detect available GPUs and backends
- "Process 10,000 files in parallel" → Use this skill to determine optimal worker count
- "Run a computationally intensive simulation" → Use this skill to understand resource constraints
How This Skill Works
Resource Detection
The skill runs scripts/detect_resources.py to automatically detect:
-
CPU Information
- Physical and logical core counts
- Processor architecture and model
- CPU frequency information
-
GPU Information
- NVIDIA GPUs: Detects via nvidia-smi, reports VRAM, driver version, compute capability
- AMD GPUs: Detects via rocm-smi
- Apple Silicon: Detects M1/M2/M3/M4 chips with Metal support and unified memory
-
Memory Information
- Total and available RAM
- Current memory usage percentage
- Swap space availability
-
Disk Space Information
- Total and available disk space for working directory
- Current usage percentage
-
Operating System Information
- OS type (macOS, Linux, Windows)
- OS version and release
- Python version
Output Format
The skill generates a .claude_resources.json file in the current working directory containing:
{
"timestamp": "2025-10-23T10:30:00",
"os": {
"system": "Darwin",
"release": "25.0.0",
"machine": "arm64"
},
"cpu": {
"physical_cores": 8,
"logical_cores": 8,
"architecture": "arm64"
},
"memory": {
"total_gb": 16.0,
"available_gb": 8.5,
"percent_used": 46.9
},
"disk": {
"total_gb": 500.0,
"available_gb": 200.0,
"percent_used": 60.0
},
"gpu": {
"nvidia_gpus": [],
"amd_gpus": [],
"apple_silicon": {
"name": "Apple M2",
"type": "Apple Silicon",
"backend": "Metal",
"unified_memory": true
},
"total_gpus": 1,
"available_backends": ["Metal"]
},
"recommendations": {
"parallel_processing": {
"strategy": "high_parallelism",
"suggested_workers": 6,
"libraries": ["joblib", "multiprocessing", "dask"]
},
"memory_strategy": {
"strategy": "moderate_memory",
"libraries": ["dask", "zarr"],
"note": "Consider chunking for datasets > 2GB"
},
"gpu_acceleration": {
"available": true,
"backends": ["Metal"],
"suggested_libraries": ["pytorch-mps", "tensorflow-metal", "jax-metal"]
},
"large_data_handling": {
"strategy": "disk_abundant",
"note": "Sufficient space for large intermediate files"
}
}
}
Strategic Recommendations
The skill generates context-aware recommendations:
Parallel Processing Recommendations:
- High parallelism (8+ cores): Use Dask, joblib, or multiprocessing with workers = cores - 2
- Moderate parallelism (4-7 cores): Use joblib or multiprocessing with workers = cores - 1
- Sequential (< 4 cores): Prefer sequential processing to avoid overhead
Memory Strategy Recommendations:
- Memory constrained (< 4GB available): Use Zarr, Dask, or H5py for out-of-core processing
- Moderate memory (4-16GB available): Use Dask/Zarr for datasets > 2GB
- Memory abundant (> 16GB available): Can load most datasets into memory directly
GPU Acceleration Recommendations:
- NVIDIA GPUs detected: Use PyTorch, TensorFlow, JAX, CuPy, or RAPIDS
- AMD GPUs detected: Use PyTorch-ROCm or TensorFlow-ROCm
- Apple Silicon detected: Use PyTorch with MPS backend, TensorFlow-Metal, or JAX-Metal
- No GPU detected: Use CPU-optimized libraries
Large Data Handling Recommendations:
- Disk constrained (< 10GB): Use streaming or compression strategies
- Moderate disk (10-100GB): Use Zarr, H5py, or Parquet formats
- Disk abundant (> 100GB): Can create large intermediate files freely
Usage Instructions
Step 1: Run Resource Detection
Execute the detection script at the start of any computationally intensive task:
python scripts/detect_resources.py
Optional arguments:
-o, --output <path>: Specify custom output path (default:.claude_resources.json)-v, --verbose: Print full resource information to stdout
Step 2: Read and Apply Recommendations
After running detection, read the generated .claude_resources.json file to inform computational decisions:
# Example: Use recommendations in code
import json
with open('.claude_resources.json', 'r') as f:
resources = json.load(f)
# Check parallel processing strategy
if resources['recommendations']['parallel_processing']['strategy'] == 'high_parallelism':
n_jobs = resources['recommendations']['parallel_processing']['suggested_workers']
# Use joblib, Dask, or multiprocessing with n_jobs workers
# Check memory strategy
if resources['recommendations']['memory_strategy']['strategy'] == 'memory_constrained':
# Use Dask, Zarr, or H5py for out-of-core processing
import dask.array as da
# Load data in chunks
# Check GPU availability
if resources['recommendations']['gpu_acceleration']['available']:
backends = resources['recommendations']['gpu_acceleration']['backends']
# Use appropriate GPU library based on available backend
Step 3: Make Informed Decisions
Use the resource information and recommendations to make strategic choices:
For data loading:
memory_available_gb = resources['memory']['available_gb']
dataset_size_gb = 10
if dataset_size_gb > memory_available_gb * 0.5:
# Dataset is large relative to memory, use Dask
import dask.dataframe as dd
df = dd.read_csv('large_file.csv')
else:
# Dataset fits in memory, use pandas
import pandas as pd
df = pd.read_csv('large_file.csv')
For parallel processing:
from joblib import Parallel, delayed
n_jobs = resources['recommendations']['parallel_processing'].get('suggested_workers', 1)
results = Parallel(n_jobs=n_jobs)(
delayed(process_function)(item) for item in data
)
For GPU acceleration:
import torch
if 'CUDA' in resources['gpu']['available_backends']:
device = torch.device('cuda')
elif 'Metal' in resources['gpu']['available_backends']:
device = torch.device('mps')
else:
device = torch.device('cpu')
model = model.to(device)
Dependencies
The detection script requires the following Python packages:
uv pip install psutil
All other functionality uses Python standard library modules (json, os, platform, subprocess, sys, pathlib).
Platform Support
- macOS: Full support including Apple Silicon (M1/M2/M3/M4) GPU detection
- Linux: Full support including NVIDIA (nvidia-smi) and AMD (rocm-smi) GPU detection
- Windows: Full support including NVIDIA GPU detection
Best Practices
- Run early: Execute resource detection at the start of projects or before major computational tasks
- Re-run periodically: System resources change over time (memory usage, disk space)
- Check before scaling: Verify resources before scaling up parallel workers or data sizes
- Document decisions: Keep the
.claude_resources.jsonfile in project directories to document resource-aware decisions - Use with versioning: Different machines have different capabilities; resource files help maintain portability
Troubleshooting
GPU not detected:
- Ensure GPU drivers are installed (nvidia-smi, rocm-smi, or system_profiler for Apple Silicon)
- Check that GPU utilities are in system PATH
- Verify GPU is not in use by other processes
Script execution fails:
- Ensure psutil is installed:
uv pip install psutil - Check Python version compatibility (Python 3.6+)
- Verify script has execute permissions:
chmod +x scripts/detect_resources.py
Inaccurate memory readings:
- Memory readings are snapshots; actual available memory changes constantly
- Close other applications before detection for accurate "available" memory
- Consider running detection multiple times and averaging results
GitHub 仓库
相关推荐技能
content-collections
元Content Collections 是一个 TypeScript 优先的构建工具,可将本地 Markdown/MDX 文件转换为类型安全的数据集合。它专为构建博客、文档站和内容密集型 Vite+React 应用而设计,提供基于 Zod 的自动模式验证。该工具涵盖从 Vite 插件配置、MDX 编译到生产环境部署的完整工作流。
polymarket
元这个Claude Skill为开发者提供完整的Polymarket预测市场开发支持,涵盖API调用、交易执行和市场数据分析。关键特性包括实时WebSocket数据流,可监控实时交易、订单和市场动态。开发者可用它构建预测市场应用、实施交易策略并集成实时市场预测功能。
creating-opencode-plugins
元该Skill帮助开发者创建OpenCode插件,用于接入命令、文件、LSP等25+种事件。它提供了插件结构、事件API规范和JavaScript/TypeScript实现模式,适合需要拦截操作、扩展功能或自定义事件处理的场景。开发者可通过它快速构建响应式模块来增强OpenCode AI助手的能力。
sglang
元SGLang是一个专为LLM设计的高性能推理框架,特别适用于需要结构化输出的场景。它通过RadixAttention前缀缓存技术,在处理JSON、正则表达式、工具调用等具有重复前缀的复杂工作流时,能实现极速生成。如果你正在构建智能体或多轮对话系统,并追求远超vLLM的推理性能,SGLang是理想选择。
