Skip to main content

Add your description here

Project description

Tests Coverage Python License PEP8

Base Status

We've created 3 Environment for scheduling, which implement the ClusterABC with JobCollection and MachineCollection protocols:

SingleSlot Environment

Component Details
Description Minimal scheduling environment with no temporal memory; each machine and job exposes only its current resource usage.
State: Machines Shape: [resource_usage] — a single-cell array indicating current resource utilization (value between 0–1).
State: Jobs Shape: [resource_usage] — a single-cell array indicating the current resource requirement (value between 0–1).
Actions Discrete integer: 0 … (num_machines × num_jobs) + 1.
Action 0 Interrupt / time tick (move to next timestamp).
Action 1+ Scheduling decision mapping to a specific (machine, job) pair.

DeepRM Environment

Component Details
Description Environment inspired by the DeepRM scheduling model, representing fine-grained resource units across time.
State: Machines Tensor shape: [num_machines, num_resources, num_resource_cells, num_ticks]. Each cell represents whether resource unit r_unit of resource r is occupied at time t.
State: Jobs Tensor shape: [num_jobs, num_resources, num_resource_cells, num_ticks]. Each cell represents whether the job requires resource unit r_unit of resource r at time t.
Actions Discrete integer: 0 … (num_machines × num_jobs) + 1.
Action 0 Interrupt / time tick (advance to next timestamp).
Action 1+ Scheduling decision mapping to a specific (machine, job) pair.

MetricBased Environment

Component Details
Description Scheduling environment that models resource usage of machines and jobs over time.
State: Machines Tensor shape: [num_machines, n_resources, n_ticks]. Each value ∈ [0–1] representing machine resource usage for resource r at time t.
State: Jobs Tensor shape: [num_jobs, n_resources, n_ticks]. Each value ∈ [0–1] representing job resource demand for resource r at time t.
Actions Discrete integer: 0 … (num_machines × num_jobs) + 1.
Action 0 Represents an interrupt or a time tick (advance to next timestamp).
Action 1+ Represents assigning job j to machine m (encoded according to environment mapping).

Dilation Operations: assuming kernel size (in each dimension) is bigger than 1. By padding the input according to max zoom in possible the service can work for varying kernel sizes. In addition, assume that use (in our case the DRL agent) can execute 3 operation with zoomingIn (going up one level -1) or zoomingOut (going out one level +1) or skipping to next timestamp, notice that without executing real scheduling (when in last level and select a machine) can't stop and skip. Our algorithm represent the state as ndarray of shape to [kernel_x, kernel_y, *shape[1:]].

Reward Functions: for now the only reward function is +1 for scheduling job and changing the job status from pending into running.

Change Log

EMPTY

Tasks:

Important:

  • [-] Create Dilation Gym Environment Wrapper DilationWrapper.
  • Test DilationWrapper.
  • Implement Render technics to represent and visualize cluster result
  • Implement different reward Wrapper:
    • Need to decide which one ??

Side Note:

  • Create Dilation for DeepRM
  • Create Tests for DeepRM

Finished Tasks:

  • Implement global machine Protocol (Machine,MachineCollection).
  • Implement global job Protocol (Job,JobCollection).
  • Implement abstract cluster using these protocols, for Cross-functional (ClusterABC), where each subclass implement the creation of jobs and machines.
  • Test ClusterABC (property based).
  • Implement Single slot cluster using the abstract class (SingleSlotCluster).
  • Test SingleSlotCluster (property based).
  • Implement DeepRM cluster using the abstract class (DeepRMCluster).
  • Test DeepRMCluster (property based).
  • Implement MetricBased cluster using the abstract class (MetricCluster).
  • Test MetricCluster (property based).
  • Implement Gym Environment that get cluster as dependency BasicClusterEnv.
  • Test BasicClusterEnv (property based) using random scheduler (RandomScheduler).
  • Implement Dilation Protocol DilationProtocol.
  • Implement Dilation numpy functionality (hierarchical_pooling, get_window_from_cell, etc..) array_operation.py.
  • Test Dilation numpy functionality.
  • Implement Dilation Service for Metric based cluster MetricBasedDilator.
  • Test Dilation MetricBasedDilator.

Assumption

  • Dilation assume that cluster state is bigger than dilation & the kernel has no 1 in each of its diminution
  • For each Step which is not real allocation reward is set to 0
  • On each job has reward of 1 if change status to running
  • Dilation is operating by taking [n_machine, n_resource, n_ticks] and padding to perpetrate size of [max_x_kernl, max_y_kernel, n_resources, n_ticks]
  • Dilation implement both zoom in and zoom out when arriving to level 0 will cause real scheduling

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

server_simulator-0.1.3.tar.gz (75.1 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

server_simulator-0.1.3-py3-none-any.whl (44.0 kB view details)

Uploaded Python 3

File details

Details for the file server_simulator-0.1.3.tar.gz.

File metadata

  • Download URL: server_simulator-0.1.3.tar.gz
  • Upload date:
  • Size: 75.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.10.12 {"installer":{"name":"uv","version":"0.10.12","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for server_simulator-0.1.3.tar.gz
Algorithm Hash digest
SHA256 1fe7052938cf23798e3eef5508b5e07258eca4f0b4c08e8c02432c28e60e08db
MD5 8b5689b7209e68835346f3dbf8a2ca0b
BLAKE2b-256 4cc4a52f4ee6101124e9168a64f52fd9d6831b469270c0eb7807eb66eda75152

See more details on using hashes here.

File details

Details for the file server_simulator-0.1.3-py3-none-any.whl.

File metadata

  • Download URL: server_simulator-0.1.3-py3-none-any.whl
  • Upload date:
  • Size: 44.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.10.12 {"installer":{"name":"uv","version":"0.10.12","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for server_simulator-0.1.3-py3-none-any.whl
Algorithm Hash digest
SHA256 9606abb5d34a81313152e2c81a5fd8c83fe2515ee5779671d4da7684e06d170c
MD5 ea0b88b368d420eaca25cf79b2dd905b
BLAKE2b-256 a25d73f96b74afc8634ad89da17de776c0a52a8fe7a56ebb2cfb25c8b41858fe

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page