Introduction
What is Volcano
Volcano is a Kubernetes native system for high-performance workloads, which has been accepted by Cloud Native Computing Foundation (CNCF) as its first and only official container batch scheduling project. Volcano supports popular computing frameworks such as Spark, TensorFlow, PyTorch, Flink, Argo, MindSpore, and PaddlePaddle. Volcano also supports scheduling of computing resources on different architecture, such as x86, Arm, and Kunpeng.
Why Volcano
Job scheduling and management become increasingly complex and critical for high-performance batch computing. Common requirements are as follows:
- Support for diverse scheduling algorithms
- More efficient scheduling
- Non-intrusive support for mainstream computing frameworks
- Support for multi-architecture computing
Volcano is designed to cater to these requirements. In addition, Volcano inherits the design of Kubernetes APIs, allowing you to easily run applications that require high-performance computing on Kubernetes.
Features
Rich scheduling policies
Volcano supports a variety of scheduling policies:
- Gang scheduling
- Fair-share scheduling
- Queue scheduling
- Preemption scheduling
- Topology-based scheduling
- Reclaim
- Backfill
- Resource reservation
You can also configure plug-ins and actions to use custom scheduling policies.
Enhanced job management
You can use enhanced job features of Volcano for high-performance computing:
- Multi-pod jobs
- Improved error handling
- Indexed jobs
Multi-architecture computing
Volcano can schedule computing resources from multiple architectures:
- x86
- Arm
- Kunpeng
- Ascend
- GPU
Faster scheduling
Compared with existing queue schedulers, Volcano shortens the average scheduling delay through a series of optimizations.
Ecosystem
Volcano allows you to use mainstream computing frameworks:
Volcano has been commercially used as the infrastructure scheduling engine by companies and organizations.