plugin

package
v6.0.0-RC2.0...-e4ac0f7 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Sep 20, 2025 License: Apache-2.0, Apache-2.0 Imports: 28 Imported by: 0

Documentation

Overview

Package plugin is using for HuaWei Ascend pin affinity schedule.

Package plugin is using for HuaWei Ascend pin affinity schedule.

Package plugin is using for HuaWei Ascend pin affinity schedule frame.

Package plugin is using for HuaWei Ascend pin affinity schedule frame.

Package plugin is using for HuaWei Ascend pin affinity schedule frame.

Package plugin is using for HuaWei Ascend pin affinity schedule frame.

Package plugin is using for HuaWei Ascend pin affinity schedule.

Package plugin is using for HuaWei Ascend pin affinity schedule.

Index

Constants

View Source
const (
	// TorNodeCMName the Name of tor info configmap
	TorNodeCMName = "basic-tor-node-cm"
	// TorShareCMName the Name of tor share info configmap
	TorShareCMName = "tor-share-cm"
	// TorInfoCMKey the key of tor info in configmap
	TorInfoCMKey = "tor_info"
	// TorLevelCMKey the key of tor level in configmap
	TorLevelCMKey = "tor_level"
	// SingleLayer the single layer switch value of tor level in configmap
	SingleLayer = "single_layer"
	// TorAffinityKey the key of tor affinity
	TorAffinityKey = "tor-affinity"
	// GlobalTorInfoKey the key of tor share info in configmap
	GlobalTorInfoKey = "global-tor-info"
	// NormalSchema the value of normal tor affinity
	NormalSchema = "normal-schema"

	// NSLB2Version nslb 2.0 version
	NSLB2Version = "2.0"

	// PodRankIndexKey rank index key
	PodRankIndexKey = "hccl/rankIndex"
	// ReplicaSetType replicaset type
	ReplicaSetType = "ReplicaSet"
	// PodGroupScheduleKey podgroup schedule the enable key
	PodGroupScheduleKey = "podgroup-sched-enable"
	// PodGroupScheduleValue podgroup schedule the enable value
	PodGroupScheduleValue = "true"
)
View Source
const (

	// ChipTypeB1 chip type 910B1
	ChipTypeB1 = util.ChipKind + "B1"
	// ChipTypeB2C chip type 910B2C
	ChipTypeB2C = util.ChipKind + "B2C"
	// ChipTypeB2 chip type 910 B2
	ChipTypeB2 = util.ChipKind + "B2"
	// ChipTypeB3 chip type 910B3
	ChipTypeB3 = util.ChipKind + "B3"
	// ChipTypeB4 chip type 910B4
	ChipTypeB4 = util.ChipKind + "B4"
)
View Source
const (
	// VNPUTempVir06 vir06_1c_16g
	VNPUTempVir06 = "vir06_1c_16g"
	// VNPUTempVir03 vir03_1c_8g
	VNPUTempVir03 = "vir03_1c_8g"
	// VNPUTempVir12 vir12_3c_32g
	VNPUTempVir12 = "vir12_3c_32g"
)

the temp of 910B1/910B2C

View Source
const (
	// VNPUTempVir05 vir05_1c_16g
	VNPUTempVir05 = "vir05_1c_16g"
	// VNPUTempVir10 vir10_3c_32g
	VNPUTempVir10 = "vir10_3c_32g"
)

the temp of 910B3

View Source
const (
	// VNPUB4TempVir05 vir05_1c_8g
	VNPUB4TempVir05 = "vir05_1c_8g"
	// VNPUB4TempVir10C3NM vir10_3c_16g_nm
	VNPUB4TempVir10C3NM = "vir10_3c_16g_nm"
	// VNPUB4TempVir10C4M vir10_4c_16g_m
	VNPUB4TempVir10C4M = "vir10_4c_16g_m"
	// VNPUB4TempVir10 vir10_3c_16g
	VNPUB4TempVir10 = "vir10_3c_16g"
)

the temp of 910B4

View Source
const (
	// GraceExitValue grace exit value
	GraceExitValue = 1
	// DefaultExitValue default exit value
	DefaultExitValue = 0
)
View Source
const (
	// DefaultGraceOverTime time interval for grace delete
	DefaultGraceOverTime = 900
	// GraceOverTimeKey for GraceOverTime config by user
	GraceOverTimeKey = "grace-over-time"
)
View Source
const (
	// PluginName the HuaWei NPU 's plugin name.
	PluginName = "NPU"

	// FormatIncorrectError format incorrect error
	FormatIncorrectError = "format incorrect"

	// AscendVNPULevel vnpu level
	AscendVNPULevel = "vnpu-level"
	// AscendVNPULevelLow low
	AscendVNPULevelLow = "low"
	// AscendVNPULevelHigh high
	AscendVNPULevelHigh = "high"
	// AscendVNPUDVPP dvpp enable
	AscendVNPUDVPP = "vnpu-dvpp"
	// AscendDVPPEnabledOff off
	AscendDVPPEnabledOff = "no"
	// AscendDVPPEnabledNull null
	AscendDVPPEnabledNull = "null"
	// AscendDVPPEnabledOn on
	AscendDVPPEnabledOn = "yes"
	// AscendNDVPPValue value
	AscendNDVPPValue = "ndvpp"
	// AscendDVPPValue value
	AscendDVPPValue = "dvpp"
	// VNPUTempVir01 vir01
	VNPUTempVir01 = "vir01"
	// VNPUTempVir02 vir02
	VNPUTempVir02 = "vir02"
	// VNPUTempVir02C1 vir02_1c
	VNPUTempVir02C1 = "vir02_1c"
	// VNPUTempVir04  vir04
	VNPUTempVir04 = "vir04"
	// VNPUTempVir04C3 vir04_3c
	VNPUTempVir04C3 = "vir04_3c"
	// VNPUTempVir04C3NDVPP vir04_3c_ndvpp
	VNPUTempVir04C3NDVPP = "vir04_3c_ndvpp"
	// VNPUTempVir04C4cDVPP vir04_4c_dvpp
	VNPUTempVir04C4cDVPP = "vir04_4c_dvpp"
	// VNPUTempVir08  vir08 only 910
	VNPUTempVir08 = "vir08"
	// VNPUTempVir16  vir16 only 910
	VNPUTempVir16 = "vir16"

	// ResetInfoCMNamePrefix for reset configmap name prefix
	ResetInfoCMNamePrefix = "reset-config-"
	// ResetInfoCMDataKey for reset configmap data key
	ResetInfoCMDataKey = "reset.json"
	// ResetInfoTypeKey for reset configmap type key
	ResetInfoTypeKey = "restartType"
	// PodRescheduleRestartType for hot reset restart type
	PodRescheduleRestartType = "podReschedule"
)

Variables

This section is empty.

Functions

func GetJobInfoAllocatedTaskNum

func GetJobInfoAllocatedTaskNum(jobInfo *api.JobInfo) int32

GetJobInfoAllocatedTaskNum get job allocated task num

func GetJobNPUTasks

func GetJobNPUTasks(vcJob *api.JobInfo) map[api.TaskID]util.NPUTask

GetJobNPUTasks get NPUTask from jobInfo.

func GetPhysicCardNameFromVChip

func GetPhysicCardNameFromVChip(realCardName string) string

GetPhysicCardNameFromVChip get cardName from whole Ascend310P-0/Ascend310P-1c-400-3_0

func GetVCJobReqNPUTypeFromJobInfo

func GetVCJobReqNPUTypeFromJobInfo(vcJob *api.JobInfo) (string, int, error)

GetVCJobReqNPUTypeFromJobInfo get job request resource, only NPU.

Types

type ClusterCache

type ClusterCache struct {
	Jobs         map[api.JobID]SchedulerJob
	Nodes        map[string]NPUNode
	Tors         *TorList
	SuperPodInfo *SuperPodInfo
}

ClusterCache cluster env cache some cluster date needed when job scheduling, if add other cluster data, should add in this struct

func NewClusterCache

func NewClusterCache() ClusterCache

NewClusterCache new empty cluster cache

type CommonNode

type CommonNode struct {
	Name           string
	Capability     map[v1.ResourceName]float64
	Allocate       map[v1.ResourceName]float64
	Idle           map[v1.ResourceName]float64
	Tasks          map[api.TaskID]*api.TaskInfo
	BaseDeviceInfo string
	// node annotation and device info + switch info + node info
	Annotation map[string]string
	Label      map[string]string
	Address    string
	SuperPodID int32
	// contains filtered or unexported fields
}

CommonNode common npu node properties

type ConfigParameters

type ConfigParameters struct {
	StaticParameters
	DynamicParameters
}

ConfigParameters some volcano scheduler parameters

type DevFaultInfo

type DevFaultInfo struct {
	LogicId       int32
	Status        string
	Policy        string
	InitialPolicy string
	ErrorCode     []int64
	ErrorCodeHex  string
}

DevFaultInfo is the fault info of device

type DynamicParameters

type DynamicParameters struct {
	PresetVirtualDevice bool
	GraceDeleteTime     int64
	SuperPodSize        int
	ReservePodSize      int
}

DynamicParameters volcano scheduler dynamic parameters

type FaultHandler

type FaultHandler interface {
	Execute(*ScheduleEnv, *framework.Session) error
	CheckNodeNPUByTask(*api.TaskInfo, *NPUNode) error
	ScoreBestNPUNodes(*api.TaskInfo, map[string]float64)
	UseAnnotation(*api.TaskInfo)
	PreStopAction(*ScheduleEnv) error
}

FaultHandler fault handler for job

type JobScheduleInfoRecorder

type JobScheduleInfoRecorder struct {
	// PodScheduleFlag key is job uid, value is job schedule type, true is pod scheduling, false is job scheduling
	PodScheduleFlag map[api.JobID]bool
	// ResetCMSetFlag flag to record rescheduling job has been set reset cm
	ResetCMSetFlag map[api.JobID]struct{}
	// PendingMessage record different job pending reason and unschedulable nodes
	PendingMessage map[api.JobID]PendingReason
	// ServerListRecordFlag flag to record tor affinity job has been record server list to logs
	ServerListRecordFlag map[api.JobID]struct{}
}

JobScheduleInfoRecorder some info need recorded in job scheduling

func NewJobScheduleInfoRecorder

func NewJobScheduleInfoRecorder() JobScheduleInfoRecorder

NewJobScheduleInfoRecorder new default JobScheduleInfoRecorder

type NPUNode

type NPUNode struct {
	CommonNode
	VNode
}

NPUNode the plugin define node info.

func (NPUNode) GetChipKindFromNpuNode

func (n NPUNode) GetChipKindFromNpuNode() (string, error)

GetChipKindFromNpuNode input huawei-Ascend910 return Ascend910/Ascend310p/Ascend310

func (*NPUNode) GetNewNPUNodeAnnotation

func (n *NPUNode) GetNewNPUNodeAnnotation(usedTop []int, resourceName, resourceNamePre string) (string, error)

GetNewNPUNodeAnnotation get new annotation after allocate

func (NPUNode) IsNodeNotMeetRes

func (n NPUNode) IsNodeNotMeetRes(taskResReq util.VResource) bool

IsNodeNotMeetRes judge the node meet resource or not.

type NodeJobInfo

type NodeJobInfo struct {
	NodeIp   string
	NodeName string
	JobName  []string
}

NodeJobInfo node job info

type OwnerInfo

type OwnerInfo struct {
	v1.OwnerReference
	Annotations map[string]string
	Replicas    *int32
}

OwnerInfo the owner info of job

type PendingReason

type PendingReason map[string]sets.String

PendingReason pod pending reason type. key is pending reason, value is node name

type PolicyBuilder

type PolicyBuilder = func() SchedulerPluginNeed

PolicyBuilder PolicyBuilder plugin management

type ScheduleCache

type ScheduleCache struct {
	// special, name, value
	Names, Namespaces map[string]string
	Data              map[string]map[string]string
}

ScheduleCache the plugin defined caches saving cm data

type ScheduleEnv

type ScheduleEnv struct {
	JobScheduleInfoRecorder
	ClusterCache
	FrameAttr   VolcanoFrame
	OutputCache ScheduleCache
}

ScheduleEnv for job scheduler context.

type ScheduleHandler

type ScheduleHandler struct {
	NPUPlugins    sets.String
	PolicyBuilder PolicyBuilder
	FaultHandle   FaultHandler
	ScheduleEnv
}

ScheduleHandler information for the current plugin

func (*ScheduleHandler) BatchNodeOrderFn

func (sHandle *ScheduleHandler) BatchNodeOrderFn(task *api.TaskInfo,
	nodes []*api.NodeInfo) (map[string]float64, error)

BatchNodeOrderFn Score the selected nodes.

func (*ScheduleHandler) BeforeCloseHandler

func (sHandle *ScheduleHandler) BeforeCloseHandler()

BeforeCloseHandler do the action before ssn close.

func (*ScheduleHandler) InitJobsFromSsn

func (sHandle *ScheduleHandler) InitJobsFromSsn(ssn *framework.Session)

InitJobsFromSsn init all jobs in ssn.

func (*ScheduleHandler) InitNPUSession

func (sHandle *ScheduleHandler) InitNPUSession(ssn *framework.Session) error

InitNPUSession init npu plugin and nodes.

func (*ScheduleHandler) InitNodesFromSsn

func (sHandle *ScheduleHandler) InitNodesFromSsn(ssn *framework.Session)

InitNodesFromSsn init all nodes in ssn.

func (*ScheduleHandler) InitTorNodeInfo

func (sHandle *ScheduleHandler) InitTorNodeInfo(ssn *framework.Session)

InitTorNodeInfo initializes Tor node information if the basic Tor node configmap exists

func (*ScheduleHandler) InitVolcanoFrameFromSsn

func (sHandle *ScheduleHandler) InitVolcanoFrameFromSsn(ssn *framework.Session)

InitVolcanoFrameFromSsn init frame parameter from ssn.

func (*ScheduleHandler) JobValid

func (sHandle *ScheduleHandler) JobValid(obj interface{}) *api.ValidateResult

JobValid the job valid, used by volcano frame.

func (ScheduleHandler) NPUAllocateFunc

func (sHandle ScheduleHandler) NPUAllocateFunc(task *api.TaskInfo)

NPUAllocateFunc Allocate npu and called by volcano frame.

func (*ScheduleHandler) NPUDeallocateFunc

func (sHandle *ScheduleHandler) NPUDeallocateFunc(task *api.TaskInfo)

NPUDeallocateFunc Free assigned npu, if allocate failed by volcano frame.

func (*ScheduleHandler) NodePredicate

func (sHandle *ScheduleHandler) NodePredicate(taskInfo *api.TaskInfo, nodeInfo *api.NodeInfo) error

NodePredicate Predicate nodes.

func (ScheduleHandler) SetJobPendReasonByNodesCase

func (sHandle ScheduleHandler) SetJobPendReasonByNodesCase(job *api.JobInfo)

SetJobPendReasonByNodesCase In nodes select case, set node failed and add failed reason.

func (*ScheduleHandler) SetJobPendingReason

func (sHandle *ScheduleHandler) SetJobPendingReason(vcJob *api.JobInfo, reason interface{}) error

SetJobPendingReason set the pod and podGroup pending reason.

func (*ScheduleHandler) TaskOrderFn

func (sHandle *ScheduleHandler) TaskOrderFn(InterfaceA interface{}, InterfaceB interface{}) int

TaskOrderFn Sort the selected tasks.

type SchedulerBaseAttr

type SchedulerBaseAttr struct {
	// contains filtered or unexported fields
}

SchedulerBaseAttr for all volcano-npu plugin.

func (SchedulerBaseAttr) GetAnnoName

func (sp SchedulerBaseAttr) GetAnnoName() string

GetAnnoName get AnnoName.

func (SchedulerBaseAttr) GetAnnoPreVal

func (sp SchedulerBaseAttr) GetAnnoPreVal() string

GetAnnoPreVal get AnnoPreVal.

func (SchedulerBaseAttr) GetPluginName

func (sp SchedulerBaseAttr) GetPluginName() string

GetPluginName get PluginName.

func (*SchedulerBaseAttr) SetAnnoName

func (sp *SchedulerBaseAttr) SetAnnoName(annoName string)

SetAnnoName set AnnoName.

func (*SchedulerBaseAttr) SetAnnoPreVal

func (sp *SchedulerBaseAttr) SetAnnoPreVal(value string)

SetAnnoPreVal set AnnoPreVal.

func (*SchedulerBaseAttr) SetPluginName

func (sp *SchedulerBaseAttr) SetPluginName(name string)

SetPluginName set PluginName.

type SchedulerJob

type SchedulerJob struct {
	util.SchedulerJobAttr
	UnscheduledReason

	JobReadyTag *bool
	SuperPods   map[string][]SuperNode
	Owner       OwnerInfo
	// contains filtered or unexported fields
}

SchedulerJob the plugin define job info

func (*SchedulerJob) UpdateJobPendingMessage

func (sJob *SchedulerJob) UpdateJobPendingMessage(message, nodeName string)

UpdateJobPendingMessage update job pending message

type SchedulerPlugin

type SchedulerPlugin interface {
	SchedulerPluginBase
	SchedulerPluginNeed
}

SchedulerPlugin for volcano-npu plugin has function.

type SchedulerPluginBase

type SchedulerPluginBase interface {
	GetPluginName() string
	SetPluginName(string)
	GetAnnoPreVal() string
	SetAnnoPreVal(string)
	GetAnnoName() string
	SetAnnoName(string)
}

SchedulerPluginBase the frame plugin need implement.

type SchedulerPluginNeed

type SchedulerPluginNeed interface {
	// ValidNPUJob Valid the job part of npu scheduler policy, if not, disallowed.
	ValidNPUJob() *api.ValidateResult
	CheckNodeNPUByTask(*api.TaskInfo, NPUNode) error
	ScoreBestNPUNodes(*api.TaskInfo, []*api.NodeInfo, map[string]float64) error
	UseAnnotation(*api.TaskInfo, NPUNode) *NPUNode
	ReleaseAnnotation(*api.TaskInfo, NPUNode) *NPUNode
	PreStartAction(ssn *framework.Session) error
	InitMyJobPlugin(util.SchedulerJobAttr, ScheduleEnv) error
}

SchedulerPluginNeed The interface that the specific plug-in needs to implement.

type Server

type Server struct {
	IsUsedByMulJob bool   `json:"-"`
	NodeRank       string `json:"-"`
	IP             string `json:"server_ip"`
	Count          int    `json:"npu_count"`
	SliceId        int    `json:"slice_id"`
	Jobs           sets.String
	CurrentJob     *api.JobID
	Name           string
}

Server server info

type StaticParameters

type StaticParameters struct {
	OnceInit              *sync.Once
	UseClusterD           bool
	SelfMaintainAvailCard bool
	NslbVersion           string
	SharedTorNum          int
	IsFirstSession        *bool // scheduler first session message is unreliable
	ForceEnqueue          bool
}

StaticParameters volcano scheduler static parameters

type SuperNode

type SuperNode struct {
	Name       string
	SuperPodID int32
}

SuperNode node with SuperPodID

type SuperPodInfo

type SuperPodInfo struct {
	SuperPodReschdInfo        map[api.JobID]map[string][]SuperNode // cache super pod re-schd info
	SuperPodFaultTaskNodes    map[api.JobID][]string               // cache fault task nodes info
	SuperPodMapFaultTaskNodes map[api.JobID]map[string]string      // cache task and nodes for stage2
}

SuperPodInfo cache super pod info for pod rescheduling

func NewSuperPodInfo

func NewSuperPodInfo() *SuperPodInfo

NewSuperPodInfo new empty super pod info

type TaskDevInfo

type TaskDevInfo struct {
	RankId int
	DevFaultInfo
}

TaskDevInfo is the device info of a task

type TaskResetInfo

type TaskResetInfo struct {
	RankList            []*TaskDevInfo
	UpdateTime          int64
	RetryTime           int
	FaultFlushing       bool
	GracefulExit        int
	RestartFaultProcess bool
}

TaskResetInfo record task reset device information

type Tor

type Tor struct {
	FreeServerCount int
	IsHealthy       int
	IsSharedTor     int
	Id              int       `json:"tor_id"`
	IP              string    `json:"tor_ip"`
	Servers         []*Server `json:"server"`
	Jobs            map[api.JobID]SchedulerJob
}

Tor tor info include server

func (*Tor) HasAcrossJob

func (t *Tor) HasAcrossJob(isNSLBv2 bool, jobName api.JobID) bool

HasAcrossJob whether has across job

func (*Tor) IsUsedByAcrossLargeModelJob

func (t *Tor) IsUsedByAcrossLargeModelJob() bool

IsUsedByAcrossLargeModelJob whether used by across large model job

type TorList

type TorList struct {
	TorLevel string `json:"-"`
	Version  string `json:"version"`
	TorCount int    `json:"tor_count"`
	Tors     []*Tor `json:"server_list"`
	// contains filtered or unexported fields
}

TorList tor info about nodes

func (*TorList) GetLogicTorsAndFullTorNum

func (tl *TorList) GetLogicTorsAndFullTorNum(jobUid api.JobID, taskColumn, taskRow, netSliceNum int) ([]*Tor, int)

GetLogicTorsAndFullTorNum get logic tor list by global tor list

func (*TorList) GetNSLBVersion

func (tl *TorList) GetNSLBVersion() string

GetNSLBVersion get nslb version

func (*TorList) GetServerMaps

func (tl *TorList) GetServerMaps() map[string]*Server

GetServerMaps return server maps

func (*TorList) GetSharedTorNum

func (tl *TorList) GetSharedTorNum() int

GetSharedTorNum get shared tor num

func (*TorList) GetTorIpMap

func (tl *TorList) GetTorIpMap() map[string]string

GetTorIpMap return tor ip map

func (*TorList) GetTorMaps

func (tl *TorList) GetTorMaps() map[string]*Tor

GetTorMaps return tor maps

func (*TorList) MarkTorListByJobV1

func (tl *TorList) MarkTorListByJobV1(nodes map[string]*api.NodeInfo, jobUid api.JobID, taskNum int)

MarkTorListByJobV1 mark the global tor list by node list a job can be scheduled

func (*TorList) MarkTorListByJobV2

func (tl *TorList) MarkTorListByJobV2(nodes map[string]*api.NodeInfo, jobUid api.JobID)

MarkTorListByJobV2 mark the global tor list by node list a job can be scheduled

func (*TorList) RecoveryGlobalTor

func (tl *TorList) RecoveryGlobalTor(tors []*Tor)

RecoveryGlobalTor recovery global tor in cache

func (*TorList) SetTorFreeServerCountAndGetFullTor

func (tl *TorList) SetTorFreeServerCountAndGetFullTor(jobUid api.JobID) int

SetTorFreeServerCountAndGetFullTor get the num of full tor

type TorShare

type TorShare struct {
	IsHealthy   int
	IsSharedTor int
	NodeJobs    []NodeJobInfo `json:"nodes"`
}

TorShare tor share info

type UnscheduledReason

type UnscheduledReason struct {
	Reason PendingReason
	*sync.Mutex
}

UnscheduledReason the message of pod pending

type VChip

type VChip struct {
	PodMap map[string]*v1.Pod
	ID     []string
	// Name Ascend910-0
	Name string
	// Kind Ascend910/Ascend310/Ascend310P
	Kind        string
	IsDual      bool
	Unstable    bool
	CoreNum     int
	SegmentFlag bool
	TotalRes    util.VResource
	UsedRes     util.VResource
	FreeRes     util.VResource
}

VChip vnpu chip class

func (*VChip) UpdateDVPP

func (vChip *VChip) UpdateDVPP(podResDVPP string)

UpdateDVPP update dvpp according to pod resource

type VNode

type VNode struct {
	// Chips map chipID to VChip class
	Chips map[int]*VChip
	// ChipKind Ascend910/310/310p
	ChipKind string
	// UnhealthyChipIds the card unhealthy chip ids in this node
	UnhealthyChipIds map[int]struct{}
	// ServerType Ascend310p-10-dual cardType-cardCoreNum-duo
	ServerType string
	// TotalChipNum num of total chips, get from capacity
	TotalChipNum int
	// AiCorePerChip num of aicore on each chip
	AiCorePerChip int
	// FreeChipNum num of free chips get from device-info
	FreeChipNum int
	// TotalRes total resource on node
	TotalRes util.VResource
	// ValidVNode node init success
	ValidVNode bool
	// Chip type 910B1/910B2C/910B3/910B4
	ChipType string
}

VNode vnpu node class

func (VNode) GetNodeTopForWholeCard

func (vNode VNode) GetNodeTopForWholeCard() []int

GetNodeTopForWholeCard get node top for whole card

func (*VNode) IsResourceWholeCard

func (vNode *VNode) IsResourceWholeCard(aiCore int) bool

IsResourceWholeCard judge if resource is whole card by node total resource

func (*VNode) NewVChip

func (vNode *VNode) NewVChip(id int, totalRes util.VResource) *VChip

NewVChip create new vChip

func (*VNode) SelectChipFromNode

func (vNode *VNode) SelectChipFromNode(vRes util.VResource) (string, error)

SelectChipFromNode get chip with least resource that meets vRes requirements

type VolcanoFrame

type VolcanoFrame struct {
	UID        types.UID
	KubeClient kubernetes.Interface

	VJobTemplate map[string]map[string]util.VResource
	ConfigParameters
	// contains filtered or unexported fields
}

VolcanoFrame passed in by the volcano frame.

func NewVolcanoFrame

func NewVolcanoFrame() VolcanoFrame

NewVolcanoFrame new empty volcano frame

Source Files

  • const.go
  • device_info.go
  • factory.go
  • job.go
  • node.go
  • plugin.go
  • task.go
  • tor.go
  • type.go
  • vnode.go

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL