lablup / lablup/backend.ai

Refactor CPU core detection

Open
#807 0 comments 0 reactions 0 assignees View on GitHub
Dominant language
Python
Stars
670
Forks
183
Avg merge
17h 7m
Merged PRs (30d)
358

Description

Let's make the responsibility of modules and classes involved in CPU core detection clearer.

- Deprecate `agent.vendor.linux.libnuma.get_available_cores()`\* Change `agent.vendor.linux.libnuma.get_core_topology()` to take the CPU core list as an argument instead of calling the sibling `get_available_cores()`

- Let `agent.docker.intrinsic.CPUPlugin` and `agent.k8s.intrinsic.CPUPlugin` to implement their own CPU core detection logic as originally intended.\* Migrate #804's docker cpuset retrieval routine to `agent.docker.intrinsic.CPUPlugin`
- cf) k8s may not have Docker daemons at all.

- Let the activator plugin to provide the cpuset filter, instead of completely overriding the CPU plugin.\* This will allow use of arbitrary CPU plugin implementation without modifying the activator plugin.
- This will ease addition of new agent backend implementations (e.g., CRI, native, etc.).

JIRA Issue: BA-240

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.