PageSourceSearch

https://volcano.sh/assets/js/9ac24165.720477f4.js

js volcano.sh collected 2026-10-02 06:15:02 UTC 5,778 bytes, 1 lines download raw bytes

1"use strict";(globalThis.webpackChunkdocs_site=globalThis.webpackChunkdocs_site||[]).push([[15656],{84302(e,n,o){o.r(n),o.d(n,{assets:()=>r,contentTitle:()=>a,default:()=>u,frontMatter:()=>i,metadata:()=>s,toc:()=>d});const s=JSON.parse('{"id":"UserGuide/user_guide_how_to_use_task_topology_plugin","title":"Task Topology Plugin User Guide","description":"Environment setup","source":"@site/versioned_docs/version-v1.13.0/UserGuide/user_guide_how_to_use_task_topology_plugin.md","sourceDirName":"UserGuide","slug":"/UserGuide/user_guide_how_to_use_task_topology_plugin","permalink":"/docs/v1.13.0/UserGuide/user_guide_how_to_use_task_topology_plugin","draft":false,"unlisted":false,"editUrl":"https://github.com/volcano-sh/website/tree/master/versioned_docs/version-v1.13.0/UserGuide/user_guide_how_to_use_task_topology_plugin.md","tags":[],"version":"v1.13.0","lastUpdatedAt":1781163901000,"frontMatter":{"title":"Task Topology Plugin User Guide"},"sidebar":"docsSidebar","previous":{"title":"Volcano Job Plugin -- SVC User Guide","permalink":"/docs/v1.13.0/UserGuide/user_guide_how_to_use_svc_plugin"},"next":{"title":"Ascend vNPU User Guide","permalink":"/docs/v1.13.0/UserGuide/user_guide_how_to_use_vnpu"}}');var t=o(74848),l=o(28453);const i={title:"Task Topology Plugin User Guide"},a=void 0,r={},d=[{value:"Environment setup",id:"environment-setup",level:2},{value:"Install volcano",id:"install-volcano",level:3},{value:"Update scheduler configmap",id:"update-scheduler-configmap",level:3},{value:"Running Jobs",id:"running-jobs",level:3},{value:"Install kubeflow/tf-operator",id:"install-kubeflowtf-operator",level:4},{value:"Edit yaml of tfjob",id:"edit-yaml-of-tfjob",level:4}];function c(e){const n={a:"a",code:"code",h2:"h2",h3:"h3",h4:"h4",li:"li",ol:"ol",p:"p",pre:"pre",strong:"strong",...(0,l.R)(),...e.components};return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(n.h2,{id:"environment-setup",children:"Environment setup"}),"\n",(0,t.jsx)(n.h3,{id:"install-volcano",children:"Install volcano"}),"\n",(0,t.jsxs)(n.p,{children:["Refer to ",(0,t.jsx)(n.a,{href:"https://github.com/volcano-sh/volcano/blob/master/installer/README.md",children:"Install Guide"})," to install volcano."]}),"\n",(0,t.jsx)(n.h3,{id:"update-scheduler-configmap",children:"Update scheduler configmap"}),"\n",(0,t.jsx)(n.p,{children:"After installed, update the scheduler configuration:"}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-shell",children:"kubectl edit configmap -n volcano-system volcano-scheduler-configmap\n"})}),"\n",(0,t.jsxs)(n.p,{children:["Register ",(0,t.jsx)(n.code,{children:"task-topology"})," plugin in configmap"]}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-yaml",children:'kind: ConfigMap\napiVersion: v1\nmetadata:\n  name: volcano-scheduler-configmap\n  namespace: volcano-system\ndata:\n  volcano-scheduler.conf: |\n    actions: "enqueue, allocate, backfill"\n    tiers:\n    - plugins:\n      - name: priority\n      - name: gang\n      - name: conformance\n    - plugins:\n      - name: drf\n      - name: predicates\n      - name: task-topology\n        arguments:\n          task-topology.weight: 10\n      - name: proportion\n      - name: nodeorder\n      - name: binpack\n'})}),"\n",(0,t.jsx)(n.h3,{id:"running-jobs",children:"Running Jobs"}),"\n",(0,t.jsx)(n.p,{children:"Take tensorflow job as sample."}),"\n",(0,t.jsx)(n.h4,{id:"install-kubeflowtf-operator",children:"Install kubeflow/tf-operator"}),"\n",(0,t.jsxs)(n.p,{children:["Refer to ",(0,t.jsx)(n.a,{href:"https://www.kubeflow.org/docs/started/getting-started/",children:"Install Guide"})," to install kubeflow, tf-operator included."]}),"\n",(0,t.jsx)(n.h4,{id:"edit-yaml-of-tfjob",children:"Edit yaml of tfjob"}),"\n",(0,t.jsxs)(n.ol,{children:["\n",(0,t.jsxs)(n.li,{children:["add annotations in volcano job or tensorflow job in format below.","\n",(0,t.jsxs)(n.ol,{children:["\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsxs)(n.p,{children:[(0,t.jsx)(n.code,{children:"affinity"})," annotation indicates that tasks have connections between each other, so they should be set on same nodes;"]}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsxs)(n.p,{children:[(0,t.jsx)(n.code,{children:"anti-affinity"})," annotation indicates that tasks do not have connections between each other, so they should be set on different nodes;"]}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsxs)(n.p,{children:[(0,t.jsx)(n.code,{children:"task-order"})," annotation indicates the order that tasks should be allocated. For example, ",(0,t.jsx)(n.code,{children:"ps,worker"})," means scheduler should schedule ",(0,t.jsx)(n.code,{children:"ps"})," tasks first. After all ",(0,t.jsx)(n.code,{children:"ps"})," tasks were allocated, scheduler started to schedule ",(0,t.jsx)(n.code,{children:"worker"})," tasks. ",(0,t.jsx)(n.strong,{children:"This annotation is not a required field."})]}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-yaml",children:'    volcano.sh/task-topology-affinity: "ps,worker;ps,evaluator"\n    volcano.sh/task-topology-anti-affinity: "ps;worker,chief;chief,evaluator"\n    volcano.sh/task-topology-task-order: "ps,worker,chief,evaluator"\n'})}),"\n"]}),"\n"]}),"\n"]}),"\n"]})]})}function u(e={}){const{wrapper:n}={...(0,l.R)(),...e.components};return n?(0,t.jsx)(n,{...e,children:(0,t.jsx)(c,{...e})}):c(e)}},28453(e,n,o){o.d(n,{R:()=>i,x:()=>a});var s=o(96540);const t={},l=s.createContext(t);function i(e){const n=s.useContext(l);return s.useMemo(function(){return"function"==typeof e?e(n):{...n,...e}},[n,e])}function a(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(t):e.components||t:i(e.components),s.createElement(l.Provider,{value:n},e.children)}}}]);

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.