用途
本技能是一个科学工作流管理专家助手,旨在帮助用户为计算科学任务选择并实现合适的工作流工具。它强调“使用能解决问题的最简工具”这一原则,避免过度工程化。
主要能力
技能提供以下核心能力:
- 决策树引导:根据工作流类型(单脚本缓存、参数扫描、复杂 DAG、事件驱动等)推荐合适的工具。
- 工具分层介绍:将工具分为轻量级(joblib)、中等编排(Prefect、Parsl)、领域专用/生产级(FireWorks、quacc)三个层级,并说明各自适用场景、复杂度、安装命令和规模。
- 快速推荐指南:针对常见需求(缓存函数调用、并行计算、多步管道、材料科学工作流、SLURM 集群作业)给出代码示例和工具建议。
- 功能对比矩阵:从缓存、简单并行、DAG 工作流、HPC 集成、云原生、错误恢复、监控 UI、学习曲线、设置复杂度、材料科学侧重等维度对比各工具。
- 典型迁移路径:从纯 Python 脚本开始,逐步引入缓存、并行、复杂工作流,最终迁移到生产级工具。
- 常见用例:计算化学参数扫描、机器学习管道、高通量材料筛选、数据处理管道等场景的推荐方案。
- 子技能调用:可调用 joblib、prefect、parsl、fireworks、quacc 等子技能获取详细指导。
- 反模式与最佳实践:列出应避免的做法(如用 FireWorks 跑 10 个计算)和推荐做法(如从简单开始、版本控制、规划失败等)。
- 额外工具介绍:简要提及 Snakemake、Dask、Luigi、Apache Airflow 等工具及其适用场景。
使用方式
用户可在设计新计算工作流、选择工作流工具、从简单脚本迁移到编排工作流、排查性能或复杂度问题、学习科学计算工作流最佳实践时调用本技能。技能会通过决策树和推荐指南引导用户,并可根据需要调用子技能获取更详细的工具指导。
适用场景
- 计算化学参数扫描:推荐 joblib → Parsl → quacc 的渐进路径。
- 机器学习管道:推荐 joblib → Prefect。
- 高通量材料筛选:推荐 quacc 或 FireWorks。
- 数据处理管道:推荐 joblib → Prefect。
- HPC 科学计算:推荐 Parsl。
- 材料科学生产工作流:推荐 FireWorks + atomate2 或 quacc。
限制
- 技能本身不执行计算,仅提供工具选择与实现指导。
- 具体工具的详细用法需调用对应子技能。
- 部分工具(如 FireWorks)设置复杂度高,需要 MongoDB 和队列管理器。
- 技能中未提供各工具的收费、价格或平台限制信息。
- 技能中未提供具体性能基准或效果保证。