Job
TensorStack AI 平台定义了一系列 CRD(称为 Job)以支持批处理(Batch Processing)计算任务,特别是 AI 领域的大规模分布式并行训练类型性质的计算。
Job 类型
为了支持不同框架的计算任务,TensorStack 提供了一系列 Job:
- TrainingJob:一类使用分布式计算框架进行机器学习的 T9k Job。
- PyTorchTrainingJob:服务于 PyTorch 分布式训练框架的 T9k Job。
- TensorFlowTrainingJob:服务于 TensorFlow 分布式训练框架的 T9k Job。
- XGBoostTrainingJob:服务于 XGBoost 分布式计算框架的 T9k Job。
- ColossalAIJob:服务于 ColossalAI 分布式训练框架的 T9k Job。
- DeepSpeedJob:服务于 DeepSpeed 分布式训练框架的 T9k Job。
- MPIJob:MPIJob 使用户能够方便地在集群环境中使用 OpenMPI 进行并行计算。
- BeamJob:用于在集群中通过 Apache Beam Python SDK 运行分布式计算任务,并支持多种底层计算引擎(例如 Apache Spark, Apache Flink)。
- GenericJob:一个通用的 T9k Job 资源,支持各种并行计算场景及 T9k 高级调度策略。
- GenericJob 十分灵活,用户可以使用 GenericJob 实现 MPIJob、PyTorchTrainingJob 等特定功能的 T9k Job;但其自动化程度低,需要手工设置很多参数。
- GenericJob 的目的是提供一个总是可行的 “通用” 机制,以支持一些其他特定功能 T9k Job 还未支持的新的计算场景。
运行模式
T9k Job 支持多种运行模式(spec.runMode
):
- 立即(Immediate)模式:默认、基本模式。Job 被分配资源后,将会立即开始运行。
- 调试(Debug)模式:帮助用户创建 Job 环境,但不立即执行,用户可以在训练环境中手动启动 Job 或者运行调试代码。
- 暂停(Pause)模式:暂停执行 Job;在一些场合下(如集群资源不足),用户可随时暂停 Job,待条件允许再继续执行 Job。
- 弹性(Elastic)伸缩模式:可以动态调整 Job 规模。
以下是各类型 Job 支持的模式列表:
Job 类型 | 立即模式 | 调试模式 | 暂停模式 | 弹性伸缩模式 |
---|---|---|---|---|
GenricJob | * | * | * | |
PyTorchTrainingJob | * | * | * | * |
TensorFlowTrainingJob | * | * | * | |
XGBoostTrainingJob | * | * | * | |
MPIJob | * | * | * | |
ColossalAIJob | * | * | * | |
DeepSpeedJob | * | * | * | * |
BeamJob | * |
各种模式的具体使用方式,请参考对应 Job 类型的文档。