Documentation ¶
Index ¶
- Variables
- func EventSequenceSummary(eventSequence *armadaevents.EventSequence) string
- func EventSequencesSummary(eventSequences []*armadaevents.EventSequence) string
- func EventSummary(event *armadaevents.EventSequence_Event) string
- func GetBasicSchedulingConfig() configuration.SchedulingConfig
- func JobRunLeased() *armadaevents.EventSequence_Event
- func JobRunPreempted() *armadaevents.EventSequence_Event
- func JobSucceeded() *armadaevents.EventSequence_Event
- func SchedulingConfigFromFilePath(filePath string) (configuration.SchedulingConfig, error)
- func SchedulingConfigsByFilePathFromPattern(pattern string) (map[string]configuration.SchedulingConfig, error)
- func SchedulingConfigsFromFilePaths(filePaths []string) ([]configuration.SchedulingConfig, error)
- func SchedulingConfigsFromPattern(pattern string) ([]configuration.SchedulingConfig, error)
- func Simulate(ctx *armadacontext.Context, ...) error
- func SubmitJob() *armadaevents.EventSequence_Event
- type Cluster
- func (*Cluster) Descriptor() ([]byte, []int)
- func (m *Cluster) GetName() string
- func (m *Cluster) GetNodeTemplates() []*NodeTemplate
- func (m *Cluster) Marshal() (dAtA []byte, err error)
- func (m *Cluster) MarshalTo(dAtA []byte) (int, error)
- func (m *Cluster) MarshalToSizedBuffer(dAtA []byte) (int, error)
- func (*Cluster) ProtoMessage()
- func (m *Cluster) Reset()
- func (m *Cluster) Size() (n int)
- func (m *Cluster) String() string
- func (m *Cluster) Unmarshal(dAtA []byte) error
- func (m *Cluster) XXX_DiscardUnknown()
- func (m *Cluster) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)
- func (m *Cluster) XXX_Merge(src proto.Message)
- func (m *Cluster) XXX_Size() int
- func (m *Cluster) XXX_Unmarshal(b []byte) error
- type ClusterGroup
- func (*ClusterGroup) Descriptor() ([]byte, []int)
- func (m *ClusterGroup) GetClusters() []*Cluster
- func (m *ClusterGroup) Marshal() (dAtA []byte, err error)
- func (m *ClusterGroup) MarshalTo(dAtA []byte) (int, error)
- func (m *ClusterGroup) MarshalToSizedBuffer(dAtA []byte) (int, error)
- func (*ClusterGroup) ProtoMessage()
- func (m *ClusterGroup) Reset()
- func (m *ClusterGroup) Size() (n int)
- func (m *ClusterGroup) String() string
- func (m *ClusterGroup) Unmarshal(dAtA []byte) error
- func (m *ClusterGroup) XXX_DiscardUnknown()
- func (m *ClusterGroup) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)
- func (m *ClusterGroup) XXX_Merge(src proto.Message)
- func (m *ClusterGroup) XXX_Size() int
- func (m *ClusterGroup) XXX_Unmarshal(b []byte) error
- type ClusterSpec
- func (*ClusterSpec) Descriptor() ([]byte, []int)
- func (m *ClusterSpec) GetName() string
- func (m *ClusterSpec) GetPendingDelayDistribution() ShiftedExponential
- func (m *ClusterSpec) GetPools() []*Pool
- func (m *ClusterSpec) GetWorkflowManagerDelayDistribution() ShiftedExponential
- func (m *ClusterSpec) Marshal() (dAtA []byte, err error)
- func (m *ClusterSpec) MarshalTo(dAtA []byte) (int, error)
- func (m *ClusterSpec) MarshalToSizedBuffer(dAtA []byte) (int, error)
- func (*ClusterSpec) ProtoMessage()
- func (m *ClusterSpec) Reset()
- func (m *ClusterSpec) Size() (n int)
- func (m *ClusterSpec) String() string
- func (cs *ClusterSpec) TotalResources() schedulerobjects.ResourceList
- func (m *ClusterSpec) Unmarshal(dAtA []byte) error
- func (m *ClusterSpec) XXX_DiscardUnknown()
- func (m *ClusterSpec) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)
- func (m *ClusterSpec) XXX_Merge(src proto.Message)
- func (m *ClusterSpec) XXX_Size() int
- func (m *ClusterSpec) XXX_Unmarshal(b []byte) error
- type Event
- type EventLog
- type FlattenedArmadaEvent
- type JobTemplate
- func JobTemplate1Cpu(n int64, jobSet, priorityClassName string) *JobTemplate
- func JobTemplate32Cpu(n int64, jobSet, priorityClassName string) *JobTemplate
- func WithDependenciesJobTemplate(jobTemplate *JobTemplate, dependencyIds ...string) *JobTemplate
- func WithIdJobTemplate(jobTemplate *JobTemplate, id string) *JobTemplate
- func WithMinSubmitTimeJobTemplate(jobTemplate *JobTemplate, minSubmitTime time.Duration) *JobTemplate
- func (*JobTemplate) Descriptor() ([]byte, []int)
- func (m *JobTemplate) GetDependencies() []string
- func (m *JobTemplate) GetEarliestSubmitTime() time.Duration
- func (m *JobTemplate) GetEarliestSubmitTimeFromDependencyCompletion() time.Duration
- func (m *JobTemplate) GetId() string
- func (m *JobTemplate) GetJobSet() string
- func (m *JobTemplate) GetNumber() int64
- func (m *JobTemplate) GetNumberSuccessful() int64
- func (m *JobTemplate) GetPriorityClassName() string
- func (m *JobTemplate) GetQueue() string
- func (m *JobTemplate) GetQueuePriority() uint32
- func (m *JobTemplate) GetRequirements() schedulerobjects.PodRequirements
- func (m *JobTemplate) GetRuntimeDistribution() ShiftedExponential
- func (m *JobTemplate) Marshal() (dAtA []byte, err error)
- func (m *JobTemplate) MarshalTo(dAtA []byte) (int, error)
- func (m *JobTemplate) MarshalToSizedBuffer(dAtA []byte) (int, error)
- func (*JobTemplate) ProtoMessage()
- func (m *JobTemplate) Reset()
- func (m *JobTemplate) Size() (n int)
- func (m *JobTemplate) String() string
- func (m *JobTemplate) Unmarshal(dAtA []byte) error
- func (m *JobTemplate) XXX_DiscardUnknown()
- func (m *JobTemplate) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)
- func (m *JobTemplate) XXX_Merge(src proto.Message)
- func (m *JobTemplate) XXX_Size() int
- func (m *JobTemplate) XXX_Unmarshal(b []byte) error
- type MetricsCollector
- type MetricsVector
- type NodeTemplate
- func (*NodeTemplate) Descriptor() ([]byte, []int)
- func (m *NodeTemplate) GetLabels() map[string]string
- func (m *NodeTemplate) GetNumber() int64
- func (m *NodeTemplate) GetTaints() []v1.Taint
- func (m *NodeTemplate) GetTotalResources() schedulerobjects.ResourceList
- func (m *NodeTemplate) Marshal() (dAtA []byte, err error)
- func (m *NodeTemplate) MarshalTo(dAtA []byte) (int, error)
- func (m *NodeTemplate) MarshalToSizedBuffer(dAtA []byte) (int, error)
- func (*NodeTemplate) ProtoMessage()
- func (m *NodeTemplate) Reset()
- func (m *NodeTemplate) Size() (n int)
- func (m *NodeTemplate) String() string
- func (m *NodeTemplate) Unmarshal(dAtA []byte) error
- func (m *NodeTemplate) XXX_DiscardUnknown()
- func (m *NodeTemplate) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)
- func (m *NodeTemplate) XXX_Merge(src proto.Message)
- func (m *NodeTemplate) XXX_Size() int
- func (m *NodeTemplate) XXX_Unmarshal(b []byte) error
- type Pool
- func (*Pool) Descriptor() ([]byte, []int)
- func (m *Pool) GetClusterGroups() []*ClusterGroup
- func (m *Pool) GetName() string
- func (m *Pool) Marshal() (dAtA []byte, err error)
- func (m *Pool) MarshalTo(dAtA []byte) (int, error)
- func (m *Pool) MarshalToSizedBuffer(dAtA []byte) (int, error)
- func (*Pool) ProtoMessage()
- func (m *Pool) Reset()
- func (m *Pool) Size() (n int)
- func (m *Pool) String() string
- func (m *Pool) Unmarshal(dAtA []byte) error
- func (m *Pool) XXX_DiscardUnknown()
- func (m *Pool) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)
- func (m *Pool) XXX_Merge(src proto.Message)
- func (m *Pool) XXX_Size() int
- func (m *Pool) XXX_Unmarshal(b []byte) error
- type Queue
- func (*Queue) Descriptor() ([]byte, []int)
- func (m *Queue) GetJobTemplates() []*JobTemplate
- func (m *Queue) GetName() string
- func (m *Queue) GetWeight() float64
- func (m *Queue) Marshal() (dAtA []byte, err error)
- func (m *Queue) MarshalTo(dAtA []byte) (int, error)
- func (m *Queue) MarshalToSizedBuffer(dAtA []byte) (int, error)
- func (*Queue) ProtoMessage()
- func (m *Queue) Reset()
- func (m *Queue) Size() (n int)
- func (m *Queue) String() string
- func (m *Queue) Unmarshal(dAtA []byte) error
- func (m *Queue) XXX_DiscardUnknown()
- func (m *Queue) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)
- func (m *Queue) XXX_Merge(src proto.Message)
- func (m *Queue) XXX_Size() int
- func (m *Queue) XXX_Unmarshal(b []byte) error
- type ShiftedExponential
- func (*ShiftedExponential) Descriptor() ([]byte, []int)
- func (m *ShiftedExponential) GetMinimum() time.Duration
- func (m *ShiftedExponential) GetTailMean() time.Duration
- func (m *ShiftedExponential) Marshal() (dAtA []byte, err error)
- func (m *ShiftedExponential) MarshalTo(dAtA []byte) (int, error)
- func (m *ShiftedExponential) MarshalToSizedBuffer(dAtA []byte) (int, error)
- func (*ShiftedExponential) ProtoMessage()
- func (m *ShiftedExponential) Reset()
- func (m *ShiftedExponential) Size() (n int)
- func (m *ShiftedExponential) String() string
- func (m *ShiftedExponential) Unmarshal(dAtA []byte) error
- func (m *ShiftedExponential) XXX_DiscardUnknown()
- func (m *ShiftedExponential) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)
- func (m *ShiftedExponential) XXX_Merge(src proto.Message)
- func (m *ShiftedExponential) XXX_Size() int
- func (m *ShiftedExponential) XXX_Unmarshal(b []byte) error
- type Simulator
- type StateTransition
- type WorkloadSpec
- func (*WorkloadSpec) Descriptor() ([]byte, []int)
- func (m *WorkloadSpec) GetName() string
- func (m *WorkloadSpec) GetQueues() []*Queue
- func (m *WorkloadSpec) GetRandomSeed() int64
- func (m *WorkloadSpec) Marshal() (dAtA []byte, err error)
- func (m *WorkloadSpec) MarshalTo(dAtA []byte) (int, error)
- func (m *WorkloadSpec) MarshalToSizedBuffer(dAtA []byte) (int, error)
- func (*WorkloadSpec) ProtoMessage()
- func (m *WorkloadSpec) Reset()
- func (m *WorkloadSpec) Size() (n int)
- func (m *WorkloadSpec) String() string
- func (m *WorkloadSpec) Unmarshal(dAtA []byte) error
- func (m *WorkloadSpec) XXX_DiscardUnknown()
- func (m *WorkloadSpec) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)
- func (m *WorkloadSpec) XXX_Merge(src proto.Message)
- func (m *WorkloadSpec) XXX_Size() int
- func (m *WorkloadSpec) XXX_Unmarshal(b []byte) error
- type Writer
Constants ¶
This section is empty.
Variables ¶
Functions ¶
func EventSequenceSummary ¶ added in v0.3.100
func EventSequenceSummary(eventSequence *armadaevents.EventSequence) string
func EventSequencesSummary ¶ added in v0.3.100
func EventSequencesSummary(eventSequences []*armadaevents.EventSequence) string
func EventSummary ¶ added in v0.3.100
func EventSummary(event *armadaevents.EventSequence_Event) string
func GetBasicSchedulingConfig ¶ added in v0.3.100
func GetBasicSchedulingConfig() configuration.SchedulingConfig
func JobRunLeased ¶ added in v0.3.100
func JobRunLeased() *armadaevents.EventSequence_Event
func JobRunPreempted ¶ added in v0.3.100
func JobRunPreempted() *armadaevents.EventSequence_Event
func JobSucceeded ¶ added in v0.3.100
func JobSucceeded() *armadaevents.EventSequence_Event
func SchedulingConfigFromFilePath ¶
func SchedulingConfigFromFilePath(filePath string) (configuration.SchedulingConfig, error)
func SchedulingConfigsByFilePathFromPattern ¶ added in v0.3.100
func SchedulingConfigsByFilePathFromPattern(pattern string) (map[string]configuration.SchedulingConfig, error)
func SchedulingConfigsFromFilePaths ¶
func SchedulingConfigsFromFilePaths(filePaths []string) ([]configuration.SchedulingConfig, error)
func SchedulingConfigsFromPattern ¶
func SchedulingConfigsFromPattern(pattern string) ([]configuration.SchedulingConfig, error)
func Simulate ¶ added in v0.3.100
func Simulate(ctx *armadacontext.Context, clusterSpecsPattern, workloadSpecsPattern, schedulingConfigsPattern string) error
func SubmitJob ¶ added in v0.3.100
func SubmitJob() *armadaevents.EventSequence_Event
Types ¶
type Cluster ¶ added in v0.3.100
type Cluster struct { Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` NodeTemplates []*NodeTemplate `protobuf:"bytes,2,rep,name=node_templates,json=nodeTemplates,proto3" json:"nodeTemplates,omitempty"` }
func Executor32Cpu ¶ added in v0.3.100
func ExecutorGpu ¶ added in v0.3.100
func WithNodeTemplatesExecutor ¶ added in v0.3.100
func WithNodeTemplatesExecutor(executor *Cluster, nodeTemplates ...*NodeTemplate) *Cluster
func (*Cluster) Descriptor ¶ added in v0.3.100
func (*Cluster) GetNodeTemplates ¶ added in v0.3.100
func (m *Cluster) GetNodeTemplates() []*NodeTemplate
func (*Cluster) MarshalToSizedBuffer ¶ added in v0.3.100
func (*Cluster) ProtoMessage ¶ added in v0.3.100
func (*Cluster) ProtoMessage()
func (*Cluster) XXX_DiscardUnknown ¶ added in v0.3.100
func (m *Cluster) XXX_DiscardUnknown()
func (*Cluster) XXX_Marshal ¶ added in v0.3.100
func (*Cluster) XXX_Unmarshal ¶ added in v0.3.100
type ClusterGroup ¶ added in v0.3.100
type ClusterGroup struct {
Clusters []*Cluster `protobuf:"bytes,1,rep,name=clusters,proto3" json:"clusters,omitempty"`
}
func ExecutorGroup32Cpu ¶ added in v0.3.100
func ExecutorGroup32Cpu(numExecutors, numNodesPerExecutor int64) *ClusterGroup
func ExecutorGroupGpu ¶ added in v0.3.100
func ExecutorGroupGpu(numExecutors, numNodesPerExecutor int64) *ClusterGroup
func WithExecutorsExecutorGroup ¶ added in v0.3.100
func WithExecutorsExecutorGroup(executorGroup *ClusterGroup, executors ...*Cluster) *ClusterGroup
func (*ClusterGroup) Descriptor ¶ added in v0.3.100
func (*ClusterGroup) Descriptor() ([]byte, []int)
func (*ClusterGroup) GetClusters ¶ added in v0.3.100
func (m *ClusterGroup) GetClusters() []*Cluster
func (*ClusterGroup) Marshal ¶ added in v0.3.100
func (m *ClusterGroup) Marshal() (dAtA []byte, err error)
func (*ClusterGroup) MarshalTo ¶ added in v0.3.100
func (m *ClusterGroup) MarshalTo(dAtA []byte) (int, error)
func (*ClusterGroup) MarshalToSizedBuffer ¶ added in v0.3.100
func (m *ClusterGroup) MarshalToSizedBuffer(dAtA []byte) (int, error)
func (*ClusterGroup) ProtoMessage ¶ added in v0.3.100
func (*ClusterGroup) ProtoMessage()
func (*ClusterGroup) Reset ¶ added in v0.3.100
func (m *ClusterGroup) Reset()
func (*ClusterGroup) Size ¶ added in v0.3.100
func (m *ClusterGroup) Size() (n int)
func (*ClusterGroup) String ¶ added in v0.3.100
func (m *ClusterGroup) String() string
func (*ClusterGroup) Unmarshal ¶ added in v0.3.100
func (m *ClusterGroup) Unmarshal(dAtA []byte) error
func (*ClusterGroup) XXX_DiscardUnknown ¶ added in v0.3.100
func (m *ClusterGroup) XXX_DiscardUnknown()
func (*ClusterGroup) XXX_Marshal ¶ added in v0.3.100
func (m *ClusterGroup) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)
func (*ClusterGroup) XXX_Merge ¶ added in v0.3.100
func (m *ClusterGroup) XXX_Merge(src proto.Message)
func (*ClusterGroup) XXX_Size ¶ added in v0.3.100
func (m *ClusterGroup) XXX_Size() int
func (*ClusterGroup) XXX_Unmarshal ¶ added in v0.3.100
func (m *ClusterGroup) XXX_Unmarshal(b []byte) error
type ClusterSpec ¶ added in v0.3.100
type ClusterSpec struct { Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` Pools []*Pool `protobuf:"bytes,2,rep,name=pools,proto3" json:"pools,omitempty"` WorkflowManagerDelayDistribution ShiftedExponential `` /* 148-byte string literal not displayed */ PendingDelayDistribution ShiftedExponential `protobuf:"bytes,4,opt,name=pending_delay_distribution,json=pendingDelayDistribution,proto3" json:"pendingDelayDistribution"` }
func ClusterSpecFromFilePath ¶ added in v0.3.100
func ClusterSpecFromFilePath(filePath string) (*ClusterSpec, error)
func ClusterSpecsFromFilePaths ¶ added in v0.3.100
func ClusterSpecsFromFilePaths(filePaths []string) ([]*ClusterSpec, error)
func ClusterSpecsFromPattern ¶ added in v0.3.100
func ClusterSpecsFromPattern(pattern string) ([]*ClusterSpec, error)
func GetTwoPoolTwoNodeCluster ¶ added in v0.3.100
func GetTwoPoolTwoNodeCluster() *ClusterSpec
func (*ClusterSpec) Descriptor ¶ added in v0.3.100
func (*ClusterSpec) Descriptor() ([]byte, []int)
func (*ClusterSpec) GetName ¶ added in v0.3.100
func (m *ClusterSpec) GetName() string
func (*ClusterSpec) GetPendingDelayDistribution ¶ added in v0.3.100
func (m *ClusterSpec) GetPendingDelayDistribution() ShiftedExponential
func (*ClusterSpec) GetPools ¶ added in v0.3.100
func (m *ClusterSpec) GetPools() []*Pool
func (*ClusterSpec) GetWorkflowManagerDelayDistribution ¶ added in v0.3.100
func (m *ClusterSpec) GetWorkflowManagerDelayDistribution() ShiftedExponential
func (*ClusterSpec) Marshal ¶ added in v0.3.100
func (m *ClusterSpec) Marshal() (dAtA []byte, err error)
func (*ClusterSpec) MarshalTo ¶ added in v0.3.100
func (m *ClusterSpec) MarshalTo(dAtA []byte) (int, error)
func (*ClusterSpec) MarshalToSizedBuffer ¶ added in v0.3.100
func (m *ClusterSpec) MarshalToSizedBuffer(dAtA []byte) (int, error)
func (*ClusterSpec) ProtoMessage ¶ added in v0.3.100
func (*ClusterSpec) ProtoMessage()
func (*ClusterSpec) Reset ¶ added in v0.3.100
func (m *ClusterSpec) Reset()
func (*ClusterSpec) Size ¶ added in v0.3.100
func (m *ClusterSpec) Size() (n int)
func (*ClusterSpec) String ¶ added in v0.3.100
func (m *ClusterSpec) String() string
func (*ClusterSpec) TotalResources ¶ added in v0.3.100
func (cs *ClusterSpec) TotalResources() schedulerobjects.ResourceList
TotalResources returns the total resources available across all nodes in the ClusterSpec.
func (*ClusterSpec) Unmarshal ¶ added in v0.3.100
func (m *ClusterSpec) Unmarshal(dAtA []byte) error
func (*ClusterSpec) XXX_DiscardUnknown ¶ added in v0.3.100
func (m *ClusterSpec) XXX_DiscardUnknown()
func (*ClusterSpec) XXX_Marshal ¶ added in v0.3.100
func (m *ClusterSpec) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)
func (*ClusterSpec) XXX_Merge ¶ added in v0.3.100
func (m *ClusterSpec) XXX_Merge(src proto.Message)
func (*ClusterSpec) XXX_Size ¶ added in v0.3.100
func (m *ClusterSpec) XXX_Size() int
func (*ClusterSpec) XXX_Unmarshal ¶ added in v0.3.100
func (m *ClusterSpec) XXX_Unmarshal(b []byte) error
type Event ¶
type Event struct {
// contains filtered or unexported fields
}
Event is a simulator-internal event.
type FlattenedArmadaEvent ¶ added in v0.4.1
type FlattenedArmadaEvent struct { Time int64 `parquet:"name=elapsed_time, type=INT64"` Queue string `parquet:"name=queue, type=BYTE_ARRAY, convertedtype=UTF8, encoding=PLAIN_DICTIONARY"` JobSet string `parquet:"name=job_set, type=BYTE_ARRAY, convertedtype=UTF8, encoding=PLAIN_DICTIONARY"` JobId string `parquet:"name=job_id, type=BYTE_ARRAY, convertedtype=UTF8, encoding=PLAIN_DICTIONARY"` RunIndex int `parquet:"name=run_index, type=INT32"` NumRuns int `parquet:"name=num_runs, type=INT32"` PriorityClass string `parquet:"name=priority_class, type=BYTE_ARRAY, convertedtype=UTF8, encoding=PLAIN_DICTIONARY"` PreviousEventType int `parquet:"name=previous_event_type, type=INT32"` EventType int `parquet:"name=event_type, type=INT32"` SecondsSinceLastEvent float64 `parquet:"name=seconds_since_last_event, type=DOUBLE"` Cpu float64 `parquet:"name=cpu, type=DOUBLE"` Memory float64 `parquet:"name=memory, type=DOUBLE"` Gpu float64 `parquet:"name=gpu, type=DOUBLE"` EphemeralStorage float64 `parquet:"name=ephemeral_storage, type=DOUBLE"` ExitCode int `parquet:"name=exit_code, type=INT32"` }
type JobTemplate ¶
type JobTemplate struct { // Number of jobs to create from this template. Number int64 `protobuf:"varint,1,opt,name=number,proto3" json:"number,omitempty"` // Number of jobs created from this template that have succeeded. // Maintained by the simulator. NumberSuccessful int64 `protobuf:"varint,2,opt,name=numberSuccessful,proto3" json:"numberSuccessful,omitempty"` // Queue to which this template belongs. Populated automatically. Queue string `protobuf:"bytes,3,opt,name=queue,proto3" json:"queue,omitempty"` // Unique id for this template. An id is generated if empty. Id string `protobuf:"bytes,4,opt,name=id,proto3" json:"id,omitempty"` JobSet string `protobuf:"bytes,5,opt,name=job_set,json=jobSet,proto3" json:"jobSet,omitempty"` QueuePriority uint32 `protobuf:"varint,6,opt,name=queue_priority,json=queuePriority,proto3" json:"queuePriority,omitempty"` PriorityClassName string `protobuf:"bytes,7,opt,name=priority_class_name,json=priorityClassName,proto3" json:"priorityClassName,omitempty"` // Scheduling requirements for the pod embedded in the job. Requirements schedulerobjects.PodRequirements `protobuf:"bytes,8,opt,name=requirements,proto3" json:"requirements"` // List of template ids that must be completed before this template is submitted. Dependencies []string `protobuf:"bytes,9,rep,name=dependencies,proto3" json:"dependencies,omitempty"` // Earliest time at which jobs from this template are submitted. // Measured from the start of the simulation. EarliestSubmitTime time.Duration `protobuf:"bytes,10,opt,name=earliest_submit_time,json=earliestSubmitTime,proto3,stdduration" json:"earliestSubmitTime"` // Earliest time job can be submitted from when all its dependencies have completed. // This option is meant to model thinking or processing time, where some fixed amount of time // needs to be spent between dependencies completing and the next batch of jobs being ready to submit. EarliestSubmitTimeFromDependencyCompletion time.Duration `` /* 193-byte string literal not displayed */ // Job runtimes are assumed to follow a shifted exponential distribution // i.e., to be a fixed constant (runtime_minimum) plus a random amount of time // drawn from an exponential distribution with known mean (runtime_tail_mean). // // The shifted-exponential distribution strikes a good balance between simplicity and accuracy; // see https://bora.uib.no/bora-xmlui/bitstream/handle/11250/3014726/drthesis_2022_severinson.pdf?sequence=2 // for a discussion on the topic. RuntimeDistribution ShiftedExponential `protobuf:"bytes,12,opt,name=runtime_distribution,json=runtimeDistribution,proto3" json:"runtimeDistribution"` }
func JobTemplate1Cpu ¶ added in v0.3.100
func JobTemplate1Cpu(n int64, jobSet, priorityClassName string) *JobTemplate
func JobTemplate32Cpu ¶ added in v0.3.100
func JobTemplate32Cpu(n int64, jobSet, priorityClassName string) *JobTemplate
func WithDependenciesJobTemplate ¶ added in v0.3.100
func WithDependenciesJobTemplate(jobTemplate *JobTemplate, dependencyIds ...string) *JobTemplate
func WithIdJobTemplate ¶ added in v0.3.100
func WithIdJobTemplate(jobTemplate *JobTemplate, id string) *JobTemplate
func WithMinSubmitTimeJobTemplate ¶ added in v0.3.100
func WithMinSubmitTimeJobTemplate(jobTemplate *JobTemplate, minSubmitTime time.Duration) *JobTemplate
func (*JobTemplate) Descriptor ¶
func (*JobTemplate) Descriptor() ([]byte, []int)
func (*JobTemplate) GetDependencies ¶
func (m *JobTemplate) GetDependencies() []string
func (*JobTemplate) GetEarliestSubmitTime ¶ added in v0.3.100
func (m *JobTemplate) GetEarliestSubmitTime() time.Duration
func (*JobTemplate) GetEarliestSubmitTimeFromDependencyCompletion ¶ added in v0.3.100
func (m *JobTemplate) GetEarliestSubmitTimeFromDependencyCompletion() time.Duration
func (*JobTemplate) GetId ¶
func (m *JobTemplate) GetId() string
func (*JobTemplate) GetJobSet ¶
func (m *JobTemplate) GetJobSet() string
func (*JobTemplate) GetNumber ¶
func (m *JobTemplate) GetNumber() int64
func (*JobTemplate) GetNumberSuccessful ¶
func (m *JobTemplate) GetNumberSuccessful() int64
func (*JobTemplate) GetPriorityClassName ¶
func (m *JobTemplate) GetPriorityClassName() string
func (*JobTemplate) GetQueue ¶
func (m *JobTemplate) GetQueue() string
func (*JobTemplate) GetQueuePriority ¶
func (m *JobTemplate) GetQueuePriority() uint32
func (*JobTemplate) GetRequirements ¶
func (m *JobTemplate) GetRequirements() schedulerobjects.PodRequirements
func (*JobTemplate) GetRuntimeDistribution ¶ added in v0.3.100
func (m *JobTemplate) GetRuntimeDistribution() ShiftedExponential
func (*JobTemplate) Marshal ¶
func (m *JobTemplate) Marshal() (dAtA []byte, err error)
func (*JobTemplate) MarshalToSizedBuffer ¶
func (m *JobTemplate) MarshalToSizedBuffer(dAtA []byte) (int, error)
func (*JobTemplate) ProtoMessage ¶
func (*JobTemplate) ProtoMessage()
func (*JobTemplate) Reset ¶
func (m *JobTemplate) Reset()
func (*JobTemplate) Size ¶
func (m *JobTemplate) Size() (n int)
func (*JobTemplate) String ¶
func (m *JobTemplate) String() string
func (*JobTemplate) Unmarshal ¶
func (m *JobTemplate) Unmarshal(dAtA []byte) error
func (*JobTemplate) XXX_DiscardUnknown ¶
func (m *JobTemplate) XXX_DiscardUnknown()
func (*JobTemplate) XXX_Marshal ¶
func (m *JobTemplate) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)
func (*JobTemplate) XXX_Merge ¶
func (m *JobTemplate) XXX_Merge(src proto.Message)
func (*JobTemplate) XXX_Size ¶
func (m *JobTemplate) XXX_Size() int
func (*JobTemplate) XXX_Unmarshal ¶
func (m *JobTemplate) XXX_Unmarshal(b []byte) error
type MetricsCollector ¶ added in v0.3.100
type MetricsCollector struct { OverallMetrics MetricsVector MetricsByQueue map[string]MetricsVector // If non-zero, log a summary every this many events. LogSummaryInterval int // contains filtered or unexported fields }
func NewMetricsCollector ¶ added in v0.3.100
func NewMetricsCollector(c <-chan StateTransition) *MetricsCollector
func (*MetricsCollector) Run ¶ added in v0.3.100
func (mc *MetricsCollector) Run(ctx *armadacontext.Context) error
func (*MetricsCollector) String ¶ added in v0.3.100
func (mc *MetricsCollector) String() string
type MetricsVector ¶ added in v0.3.100
type MetricsVector struct { NumEvents int NumSubmitEvents int NumLeasedEvents int NumPreemptedEvents int NumJobSucceededEvents int TimeOfMostRecentEvent time.Duration TimeOfMostRecentJobSubmittedEvent time.Duration TimeOfMostRecentJobLeasedEvent time.Duration TimeOfMostRecentJobPreemptedEvent time.Duration TimeOfMostRecentJobSucceededEvent time.Duration }
func (MetricsVector) String ¶ added in v0.3.100
func (m MetricsVector) String() string
type NodeTemplate ¶
type NodeTemplate struct { Number int64 `protobuf:"varint,1,opt,name=number,proto3" json:"number,omitempty"` Taints []v1.Taint `protobuf:"bytes,2,rep,name=taints,proto3" json:"taints"` Labels map[string]string `` /* 153-byte string literal not displayed */ TotalResources schedulerobjects.ResourceList `protobuf:"bytes,4,opt,name=total_resources,json=totalResources,proto3" json:"totalResources"` }
func NodeTemplate32Cpu ¶ added in v0.3.100
func NodeTemplate32Cpu(n int64) *NodeTemplate
func NodeTemplateGpu ¶ added in v0.3.100
func NodeTemplateGpu(n int64) *NodeTemplate
func (*NodeTemplate) Descriptor ¶
func (*NodeTemplate) Descriptor() ([]byte, []int)
func (*NodeTemplate) GetLabels ¶
func (m *NodeTemplate) GetLabels() map[string]string
func (*NodeTemplate) GetNumber ¶
func (m *NodeTemplate) GetNumber() int64
func (*NodeTemplate) GetTaints ¶
func (m *NodeTemplate) GetTaints() []v1.Taint
func (*NodeTemplate) GetTotalResources ¶
func (m *NodeTemplate) GetTotalResources() schedulerobjects.ResourceList
func (*NodeTemplate) Marshal ¶
func (m *NodeTemplate) Marshal() (dAtA []byte, err error)
func (*NodeTemplate) MarshalToSizedBuffer ¶
func (m *NodeTemplate) MarshalToSizedBuffer(dAtA []byte) (int, error)
func (*NodeTemplate) ProtoMessage ¶
func (*NodeTemplate) ProtoMessage()
func (*NodeTemplate) Reset ¶
func (m *NodeTemplate) Reset()
func (*NodeTemplate) Size ¶
func (m *NodeTemplate) Size() (n int)
func (*NodeTemplate) String ¶
func (m *NodeTemplate) String() string
func (*NodeTemplate) Unmarshal ¶
func (m *NodeTemplate) Unmarshal(dAtA []byte) error
func (*NodeTemplate) XXX_DiscardUnknown ¶
func (m *NodeTemplate) XXX_DiscardUnknown()
func (*NodeTemplate) XXX_Marshal ¶
func (m *NodeTemplate) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)
func (*NodeTemplate) XXX_Merge ¶
func (m *NodeTemplate) XXX_Merge(src proto.Message)
func (*NodeTemplate) XXX_Size ¶
func (m *NodeTemplate) XXX_Size() int
func (*NodeTemplate) XXX_Unmarshal ¶
func (m *NodeTemplate) XXX_Unmarshal(b []byte) error
type Pool ¶
type Pool struct { Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` ClusterGroups []*ClusterGroup `protobuf:"bytes,2,rep,name=cluster_groups,json=clusterGroups,proto3" json:"clusterGroups,omitempty"` }
func WithExecutorGroupsPool ¶ added in v0.3.100
func WithExecutorGroupsPool(pool *Pool, executorGroups ...*ClusterGroup) *Pool
func (*Pool) Descriptor ¶
func (*Pool) GetClusterGroups ¶ added in v0.3.100
func (m *Pool) GetClusterGroups() []*ClusterGroup
func (*Pool) ProtoMessage ¶
func (*Pool) ProtoMessage()
func (*Pool) XXX_DiscardUnknown ¶
func (m *Pool) XXX_DiscardUnknown()
func (*Pool) XXX_Unmarshal ¶
type Queue ¶
type Queue struct { Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` Weight float64 `protobuf:"fixed64,2,opt,name=weight,proto3" json:"weight,omitempty"` JobTemplates []*JobTemplate `protobuf:"bytes,3,rep,name=job_templates,json=jobTemplates,proto3" json:"jobTemplates,omitempty"` }
func WithJobTemplatesQueue ¶ added in v0.3.100
func WithJobTemplatesQueue(queue *Queue, jobTemplate ...*JobTemplate) *Queue
func (*Queue) Descriptor ¶
func (*Queue) GetJobTemplates ¶
func (m *Queue) GetJobTemplates() []*JobTemplate
func (*Queue) ProtoMessage ¶
func (*Queue) ProtoMessage()
func (*Queue) XXX_DiscardUnknown ¶
func (m *Queue) XXX_DiscardUnknown()
func (*Queue) XXX_Marshal ¶
func (*Queue) XXX_Unmarshal ¶
type ShiftedExponential ¶ added in v0.3.100
type ShiftedExponential struct { Minimum time.Duration `protobuf:"bytes,1,opt,name=minimum,proto3,stdduration" json:"minimum"` TailMean time.Duration `protobuf:"bytes,2,opt,name=tail_mean,json=tailMean,proto3,stdduration" json:"tailMean"` }
func (*ShiftedExponential) Descriptor ¶ added in v0.3.100
func (*ShiftedExponential) Descriptor() ([]byte, []int)
func (*ShiftedExponential) GetMinimum ¶ added in v0.3.100
func (m *ShiftedExponential) GetMinimum() time.Duration
func (*ShiftedExponential) GetTailMean ¶ added in v0.3.100
func (m *ShiftedExponential) GetTailMean() time.Duration
func (*ShiftedExponential) Marshal ¶ added in v0.3.100
func (m *ShiftedExponential) Marshal() (dAtA []byte, err error)
func (*ShiftedExponential) MarshalTo ¶ added in v0.3.100
func (m *ShiftedExponential) MarshalTo(dAtA []byte) (int, error)
func (*ShiftedExponential) MarshalToSizedBuffer ¶ added in v0.3.100
func (m *ShiftedExponential) MarshalToSizedBuffer(dAtA []byte) (int, error)
func (*ShiftedExponential) ProtoMessage ¶ added in v0.3.100
func (*ShiftedExponential) ProtoMessage()
func (*ShiftedExponential) Reset ¶ added in v0.3.100
func (m *ShiftedExponential) Reset()
func (*ShiftedExponential) Size ¶ added in v0.3.100
func (m *ShiftedExponential) Size() (n int)
func (*ShiftedExponential) String ¶ added in v0.3.100
func (m *ShiftedExponential) String() string
func (*ShiftedExponential) Unmarshal ¶ added in v0.3.100
func (m *ShiftedExponential) Unmarshal(dAtA []byte) error
func (*ShiftedExponential) XXX_DiscardUnknown ¶ added in v0.3.100
func (m *ShiftedExponential) XXX_DiscardUnknown()
func (*ShiftedExponential) XXX_Marshal ¶ added in v0.3.100
func (m *ShiftedExponential) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)
func (*ShiftedExponential) XXX_Merge ¶ added in v0.3.100
func (m *ShiftedExponential) XXX_Merge(src proto.Message)
func (*ShiftedExponential) XXX_Size ¶ added in v0.3.100
func (m *ShiftedExponential) XXX_Size() int
func (*ShiftedExponential) XXX_Unmarshal ¶ added in v0.3.100
func (m *ShiftedExponential) XXX_Unmarshal(b []byte) error
type Simulator ¶
type Simulator struct { ClusterSpec *ClusterSpec WorkloadSpec *WorkloadSpec // If true, scheduler logs are omitted. // This since the logs are very verbose when scheduling large numbers of jobs. SuppressSchedulerLogs bool // contains filtered or unexported fields }
Simulator captures the parameters and state of the Armada simulator.
func NewSimulator ¶
func NewSimulator(clusterSpec *ClusterSpec, workloadSpec *WorkloadSpec, schedulingConfig configuration.SchedulingConfig) (*Simulator, error)
func (*Simulator) Run ¶
func (s *Simulator) Run(ctx *armadacontext.Context) error
Run runs the scheduler until all jobs have finished successfully.
func (*Simulator) StateTransitions ¶ added in v0.4.1
func (s *Simulator) StateTransitions() <-chan StateTransition
StateTransitions returns a channel on which all simulated events are sent. This function must be called before *Simulator.Run.
type StateTransition ¶ added in v0.4.1
type StateTransition struct { Jobs []*jobdb.Job EventSequence *armadaevents.EventSequence }
type WorkloadSpec ¶ added in v0.3.100
type WorkloadSpec struct { Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` // Random seed used in simulations; use to ensure simulations are reproducible. // If not provided, or explicitly set to 0, the current time is used. RandomSeed int64 `protobuf:"varint,2,opt,name=random_seed,json=randomSeed,proto3" json:"randomSeed,omitempty"` Queues []*Queue `protobuf:"bytes,3,rep,name=queues,proto3" json:"queues,omitempty"` }
func GetOneQueue10JobWorkload ¶ added in v0.3.100
func GetOneQueue10JobWorkload() *WorkloadSpec
func WorkloadSpecFromFilePath ¶ added in v0.3.100
func WorkloadSpecFromFilePath(filePath string) (*WorkloadSpec, error)
func WorkloadSpecsFromFilePaths ¶ added in v0.3.100
func WorkloadSpecsFromFilePaths(filePaths []string) ([]*WorkloadSpec, error)
func WorkloadsFromPattern ¶ added in v0.3.100
func WorkloadsFromPattern(pattern string) ([]*WorkloadSpec, error)
func (*WorkloadSpec) Descriptor ¶ added in v0.3.100
func (*WorkloadSpec) Descriptor() ([]byte, []int)
func (*WorkloadSpec) GetName ¶ added in v0.3.100
func (m *WorkloadSpec) GetName() string
func (*WorkloadSpec) GetQueues ¶ added in v0.3.100
func (m *WorkloadSpec) GetQueues() []*Queue
func (*WorkloadSpec) GetRandomSeed ¶ added in v0.3.100
func (m *WorkloadSpec) GetRandomSeed() int64
func (*WorkloadSpec) Marshal ¶ added in v0.3.100
func (m *WorkloadSpec) Marshal() (dAtA []byte, err error)
func (*WorkloadSpec) MarshalTo ¶ added in v0.3.100
func (m *WorkloadSpec) MarshalTo(dAtA []byte) (int, error)
func (*WorkloadSpec) MarshalToSizedBuffer ¶ added in v0.3.100
func (m *WorkloadSpec) MarshalToSizedBuffer(dAtA []byte) (int, error)
func (*WorkloadSpec) ProtoMessage ¶ added in v0.3.100
func (*WorkloadSpec) ProtoMessage()
func (*WorkloadSpec) Reset ¶ added in v0.3.100
func (m *WorkloadSpec) Reset()
func (*WorkloadSpec) Size ¶ added in v0.3.100
func (m *WorkloadSpec) Size() (n int)
func (*WorkloadSpec) String ¶ added in v0.3.100
func (m *WorkloadSpec) String() string
func (*WorkloadSpec) Unmarshal ¶ added in v0.3.100
func (m *WorkloadSpec) Unmarshal(dAtA []byte) error
func (*WorkloadSpec) XXX_DiscardUnknown ¶ added in v0.3.100
func (m *WorkloadSpec) XXX_DiscardUnknown()
func (*WorkloadSpec) XXX_Marshal ¶ added in v0.3.100
func (m *WorkloadSpec) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)
func (*WorkloadSpec) XXX_Merge ¶ added in v0.3.100
func (m *WorkloadSpec) XXX_Merge(src proto.Message)
func (*WorkloadSpec) XXX_Size ¶ added in v0.3.100
func (m *WorkloadSpec) XXX_Size() int
func (*WorkloadSpec) XXX_Unmarshal ¶ added in v0.3.100
func (m *WorkloadSpec) XXX_Unmarshal(b []byte) error
Click to show internal directories.
Click to hide internal directories.