simulator

package
v0.15.10 Latest Latest
Warning

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

Go to latest
Published: Dec 12, 2024 License: Apache-2.0 Imports: 46 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var (
	ErrInvalidLengthSimulator        = fmt.Errorf("proto: negative length found during unmarshaling")
	ErrIntOverflowSimulator          = fmt.Errorf("proto: integer overflow")
	ErrUnexpectedEndOfGroupSimulator = fmt.Errorf("proto: unexpected end of group")
)

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(n int, queue string, jobSetName string) *armadaevents.EventSequence

func JobRunPreempted added in v0.3.100

func JobRunPreempted(n int, queue string, jobSetName string) *armadaevents.EventSequence

func JobSucceeded added in v0.3.100

func JobSucceeded(n int, queue string, jobSetName string) *armadaevents.EventSequence

func RepeatEvents added in v0.4.9

func SchedulingConfigFromFilePath

func SchedulingConfigFromFilePath(filePath string) (configuration.SchedulingConfig, error)

func SubmitJob added in v0.3.100

func SubmitJob(n int, queue string, jobSetName string) *armadaevents.EventSequence

Types

type Cluster added in v0.3.100

type Cluster struct {
	Name          string          `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
	Pool          string          `protobuf:"bytes,3,opt,name=pool,proto3" json:"pool,omitempty"`
	NodeTemplates []*NodeTemplate `protobuf:"bytes,2,rep,name=node_templates,json=nodeTemplates,proto3" json:"nodeTemplates,omitempty"`
}

func (*Cluster) Descriptor added in v0.3.100

func (*Cluster) Descriptor() ([]byte, []int)

func (*Cluster) GetName added in v0.3.100

func (m *Cluster) GetName() string

func (*Cluster) GetNodeTemplates added in v0.3.100

func (m *Cluster) GetNodeTemplates() []*NodeTemplate

func (*Cluster) GetPool added in v0.15.0

func (m *Cluster) GetPool() string

func (*Cluster) Marshal added in v0.3.100

func (m *Cluster) Marshal() (dAtA []byte, err error)

func (*Cluster) MarshalTo added in v0.3.100

func (m *Cluster) MarshalTo(dAtA []byte) (int, error)

func (*Cluster) MarshalToSizedBuffer added in v0.3.100

func (m *Cluster) MarshalToSizedBuffer(dAtA []byte) (int, error)

func (*Cluster) ProtoMessage added in v0.3.100

func (*Cluster) ProtoMessage()

func (*Cluster) Reset added in v0.3.100

func (m *Cluster) Reset()

func (*Cluster) Size added in v0.3.100

func (m *Cluster) Size() (n int)

func (*Cluster) String added in v0.3.100

func (m *Cluster) String() string

func (*Cluster) Unmarshal added in v0.3.100

func (m *Cluster) Unmarshal(dAtA []byte) error

func (*Cluster) XXX_DiscardUnknown added in v0.3.100

func (m *Cluster) XXX_DiscardUnknown()

func (*Cluster) XXX_Marshal added in v0.3.100

func (m *Cluster) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)

func (*Cluster) XXX_Merge added in v0.3.100

func (m *Cluster) XXX_Merge(src proto.Message)

func (*Cluster) XXX_Size added in v0.3.100

func (m *Cluster) XXX_Size() int

func (*Cluster) XXX_Unmarshal added in v0.3.100

func (m *Cluster) 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"`
	Clusters                         []*Cluster         `protobuf:"bytes,2,rep,name=clusters,proto3" json:"clusters,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 (*ClusterSpec) Descriptor added in v0.3.100

func (*ClusterSpec) Descriptor() ([]byte, []int)

func (*ClusterSpec) GetClusters added in v0.15.0

func (m *ClusterSpec) GetClusters() []*Cluster

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) 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) 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 EventLog

type EventLog []Event

func (EventLog) Len

func (el EventLog) Len() int

func (EventLog) Less

func (el EventLog) Less(i, j int) bool

func (*EventLog) Pop

func (el *EventLog) Pop() any

func (*EventLog) Push

func (el *EventLog) Push(x any)

func (EventLog) Swap

func (el EventLog) Swap(i, j int)

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"`
	// If set, jobs will be assigned to gangs with the given size. In this case `number` must be exactly divisible by the gang size
	GangCardinality uint32 `protobuf:"varint,13,opt,name=gang_cardinality,json=gangCardinality,proto3" json:"gangCardinality,omitempty"`
	// Node Uniformity label when scheduling gangs.  Only applies if gang_cardinality is non-zero.  If unset it defaults to armadaproject.io/clusterName
	GangNodeUniformityLabel string `` /* 132-byte string literal not displayed */
	// If set then the template will be repeated at some frequency. If null then the template will be submitted a single time.
	Repeat *RepeatDetails `protobuf:"bytes,15,opt,name=repeat,proto3" json:"repeat,omitempty"`
}

func GangJobTemplate32Cpu added in v0.15.4

func GangJobTemplate32Cpu(numJobs int64, gangCardinality uint32, jobSet, priorityClassName string) *JobTemplate

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) GetGangCardinality added in v0.15.4

func (m *JobTemplate) GetGangCardinality() uint32

func (*JobTemplate) GetGangNodeUniformityLabel added in v0.15.4

func (m *JobTemplate) GetGangNodeUniformityLabel() string

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) GetRepeat added in v0.15.4

func (m *JobTemplate) GetRepeat() *RepeatDetails

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) MarshalTo

func (m *JobTemplate) MarshalTo(dAtA []byte) (int, 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 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) MarshalTo

func (m *NodeTemplate) MarshalTo(dAtA []byte) (int, 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 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) Descriptor() ([]byte, []int)

func (*Queue) GetJobTemplates

func (m *Queue) GetJobTemplates() []*JobTemplate

func (*Queue) GetName

func (m *Queue) GetName() string

func (*Queue) GetWeight

func (m *Queue) GetWeight() float64

func (*Queue) Marshal

func (m *Queue) Marshal() (dAtA []byte, err error)

func (*Queue) MarshalTo

func (m *Queue) MarshalTo(dAtA []byte) (int, error)

func (*Queue) MarshalToSizedBuffer

func (m *Queue) MarshalToSizedBuffer(dAtA []byte) (int, error)

func (*Queue) ProtoMessage

func (*Queue) ProtoMessage()

func (*Queue) Reset

func (m *Queue) Reset()

func (*Queue) Size

func (m *Queue) Size() (n int)

func (*Queue) String

func (m *Queue) String() string

func (*Queue) Unmarshal

func (m *Queue) Unmarshal(dAtA []byte) error

func (*Queue) XXX_DiscardUnknown

func (m *Queue) XXX_DiscardUnknown()

func (*Queue) XXX_Marshal

func (m *Queue) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)

func (*Queue) XXX_Merge

func (m *Queue) XXX_Merge(src proto.Message)

func (*Queue) XXX_Size

func (m *Queue) XXX_Size() int

func (*Queue) XXX_Unmarshal

func (m *Queue) XXX_Unmarshal(b []byte) error

type RepeatDetails added in v0.15.4

type RepeatDetails struct {
	// The number of times that template should be repeated. Must be > 0
	NumTimes uint32 `protobuf:"varint,1,opt,name=num_times,json=numTimes,proto3" json:"numTimes,omitempty"`
	// The period between template submissions.  May not be null
	Period *time.Duration `protobuf:"bytes,2,opt,name=period,proto3,stdduration" json:"period,omitempty"`
}

func (*RepeatDetails) Descriptor added in v0.15.4

func (*RepeatDetails) Descriptor() ([]byte, []int)

func (*RepeatDetails) GetNumTimes added in v0.15.4

func (m *RepeatDetails) GetNumTimes() uint32

func (*RepeatDetails) GetPeriod added in v0.15.4

func (m *RepeatDetails) GetPeriod() *time.Duration

func (*RepeatDetails) Marshal added in v0.15.4

func (m *RepeatDetails) Marshal() (dAtA []byte, err error)

func (*RepeatDetails) MarshalTo added in v0.15.4

func (m *RepeatDetails) MarshalTo(dAtA []byte) (int, error)

func (*RepeatDetails) MarshalToSizedBuffer added in v0.15.4

func (m *RepeatDetails) MarshalToSizedBuffer(dAtA []byte) (int, error)

func (*RepeatDetails) ProtoMessage added in v0.15.4

func (*RepeatDetails) ProtoMessage()

func (*RepeatDetails) Reset added in v0.15.4

func (m *RepeatDetails) Reset()

func (*RepeatDetails) Size added in v0.15.4

func (m *RepeatDetails) Size() (n int)

func (*RepeatDetails) String added in v0.15.4

func (m *RepeatDetails) String() string

func (*RepeatDetails) Unmarshal added in v0.15.4

func (m *RepeatDetails) Unmarshal(dAtA []byte) error

func (*RepeatDetails) XXX_DiscardUnknown added in v0.15.4

func (m *RepeatDetails) XXX_DiscardUnknown()

func (*RepeatDetails) XXX_Marshal added in v0.15.4

func (m *RepeatDetails) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)

func (*RepeatDetails) XXX_Merge added in v0.15.4

func (m *RepeatDetails) XXX_Merge(src proto.Message)

func (*RepeatDetails) XXX_Size added in v0.15.4

func (m *RepeatDetails) XXX_Size() int

func (*RepeatDetails) XXX_Unmarshal added in v0.15.4

func (m *RepeatDetails) XXX_Unmarshal(b []byte) error

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,
	enableFastForward bool,
	hardTerminationMinutes int,
	schedulerCyclePeriodSeconds int,
	sink sink.Sink,
) (*Simulator, error)

func (*Simulator) Now added in v0.4.12

func (s *Simulator) Now() time.Time

func (*Simulator) Run

func (s *Simulator) Run(ctx *armadacontext.Context) error

Run runs the scheduler until all jobs have finished successfully.

func (*Simulator) Since added in v0.4.12

func (s *Simulator) Since(t time.Time) time.Duration

func (*Simulator) StateTransitions added in v0.4.1

func (s *Simulator) StateTransitions() <-chan model.StateTransition

StateTransitions returns a channel on which all simulated events are sent. This function must be called before *Simulator.Run.

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 (*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

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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