From 52460f8737599ddefc11ed62b5132acaf8b14c6c Mon Sep 17 00:00:00 2001 From: Klaus Ma Date: Fri, 26 Apr 2019 14:53:12 +0800 Subject: [PATCH] Updated README. Signed-off-by: Klaus Ma --- README.md | 25 +++++++++++++++++-------- docs/images/volcano-logo.png | Bin 0 -> 27705 bytes 2 files changed, 17 insertions(+), 8 deletions(-) create mode 100644 docs/images/volcano-logo.png diff --git a/README.md b/README.md index 4308fc5750..1b66ff4173 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,6 @@ -# Volcano +![volcano-logo](docs/images/volcano-logo.png) + +------- [![Build Status](https://travis-ci.org/volcano-sh/volcano.svg?branch=master)](https://travis-ci.org/volcano-sh/volcano) [![Go Report Card](https://goreportcard.com/badge/github.com/volcano-sh/volcano)](https://goreportcard.com/report/github.com/volcano-sh/volcano) @@ -21,19 +23,26 @@ frameworks like Tensorflow, Spark, PyTorch, MPI, etc, which Volcano integrates w Some examples of the mechanisms and features that Volcano adds to Kubernetes are: -1. Scheduling extensions, e.g: +1. Job management extensions and improvements, e.g: + 1. Multi-pod jobs + 2. Lifecycle management extensions including suspend/resume and + restart. + 3. Improved error handling + 4. Indexed jobs + 5. Task dependencies +2. Scheduling extensions, e.g: 1. Co-scheduling 2. Fair-share scheduling 3. Queue scheduling 4. Preemption and reclaims 5. Reservartions and backfills 6. Topology-based scheduling -1. Job management extensions and improvements, e.g: - 1. Multi-pod jobs - 1. Improved error handling - 1. Indexed jobs -1. Others (in upstream) - 1. Optimizations for throughput, round-trip latency, etc. +3. Runtime extensions, e.g: + 1. Support for specialized continer runtimes like Singularity, + with GPU accelerator extensions and enhanced security features. +4. Other + 1. Data locality awareness and intelligent scheduling + 2. Optimizations for data throughput, round-trip latency, etc. Volcano builds upon a decade and a half of experience running a wide variety of high performance workloads at scale using several systems diff --git a/docs/images/volcano-logo.png b/docs/images/volcano-logo.png new file mode 100644 index 0000000000000000000000000000000000000000..0b89424a40c14da8e460af54378e12252b63044d GIT binary patch literal 27705 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 RdB?|RaLri1;)>&w{|759V1)nx literal 0 HcmV?d00001