cms-dev / cms-dev/cms

Deterministic assignment of sandbox IDs

Open
#1,213 1 comment 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

feature_request sandbox
Dominant language
Python
Stars
1k
Forks
412
Avg merge
6d 10h
Merged PRs (30d)
3

Description

When using CMS with the Isolate sandbox, the assignment of sandbox IDs for various purposes (compilation, solution, manager for communication tasks, etc.) is somewhat haphazard and unpredictable. So even though Isolate itself supports pinning of sandboxes to specific CPU cores and/or NUMA nodes, it cannot be used in CMS for pinning a specific type of sandbox. This would be very useful to minimize time measurement noise in various types of interactive tasks.

I would like to make the assignment of IDs configurable. That is, to allow specifying a map from a (shard, purpose) pair to Isolate's sandbox ID. For the purposes, we can re-use existing sandbox names, only in case of communication tasks with multiple instances of the solution, the name would have to be extended to include instance number.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by locating the CMS code that assigns Isolate sandbox IDs, then trace how shard, purpose, and communication-task instances are currently named. Define how configuration maps each (shard, purpose) pair to an ID, including multiple solution instances, and verify that compilation, solution, manager, and communication sandboxes receive deterministic IDs suitable for CPU or NUMA pinning.

Written by the indexing model from the issue text.

Assessment

Tech stack
python
Domain
backend
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
32/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.