Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
101 commits
Select commit Hold shift + click to select a range
daaaec3
fix: rssupdate error, need strings
KernAttila Jun 1, 2023
4f0876f
fix: count procs per core, sort cores in order (not random anymore), …
KernAttila Jun 1, 2023
57bb946
fix: reverse map() arguments
KernAttila Jun 1, 2023
f968ad3
test!: update HT test
KernAttila Jun 1, 2023
ce22de2
test!: avoid rqd RQD_USE_PATH_ENV_VAR option
KernAttila Jun 1, 2023
56ee487
test: add i9-12900 proc for tests
KernAttila Jun 1, 2023
c084fa2
test: add test_i9_12900()
KernAttila Jun 1, 2023
a21d62f
fix: fixed and renamed cpu file
KernAttila Jun 1, 2023
8add4c9
test: added a test for hybrid cpus with 8 performance cores and 8 eff…
KernAttila Jun 1, 2023
f055889
doc: fix typo
KernAttila Jun 1, 2023
caff254
fix: read proper statm columns (see issue #1188)
KernAttila Jun 2, 2023
952967c
Merge branch 'AcademySoftwareFoundation:master' into rqd-reserve-all-…
KernAttila Aug 8, 2023
966c011
Merge branch 'AcademySoftwareFoundation:master' into rqd-reserve-all-…
KernAttila Aug 28, 2024
a3596e1
doc: explain the logic for reserving cores/threads.
KernAttila Aug 28, 2024
454bfb9
Merge branch 'AcademySoftwareFoundation:master' into rqd-reserve-all-…
KernAttila Sep 11, 2024
4fa2e61
Merge branch 'AcademySoftwareFoundation:master' into rqd-reserve-all-…
KernAttila Sep 21, 2024
caa534d
fix: lint and remove useless lambda, sorting does not need to cast st…
KernAttila Sep 21, 2024
0df7614
Merge remote-tracking branch 'origin/rqd-reserve-all-cores' into rqd-…
KernAttila Sep 21, 2024
320c670
fix: lint lines too long
KernAttila Sep 21, 2024
adb179f
fix: revert statm field indices, error was fixed by #1308
KernAttila Sep 27, 2024
a2a65c8
Merge branch 'rqd-reserve-all-cores' of https://github.com/Wolf-Pipel…
KernAttila Sep 27, 2024
f4a50bf
Merge branch 'master' into rqd-reserve-all-cores
KernAttila Sep 27, 2024
088c89c
Merge branch 'master' into rqd-reserve-all-cores
KernAttila Sep 29, 2024
31ba6da
fix: force to list cores in ascending order
KernAttila Oct 16, 2024
8fc315c
fix: get out of the loop for edge cases (1 too many core booked)
KernAttila Oct 16, 2024
1eaeae3
Merge branch 'AcademySoftwareFoundation:master' into rqd-reserve-all-…
KernAttila Oct 17, 2024
989d85b
refacto: deprecated reserveHT() and created a new reserveCores() meth…
KernAttila Apr 17, 2025
a120265
refacto: use reserveCores() in place of the deprecated reserveHT().
KernAttila Apr 18, 2025
ef232ae
feat: add fields for logical cores in:
KernAttila Apr 18, 2025
04d89bf
refacto: change variable name again taskset -> cpu_list
KernAttila Apr 18, 2025
f8fed7a
doc: add docstring to releaseCores()
KernAttila Apr 18, 2025
65bc6f8
feat: add total_threads to rqcore
KernAttila Apr 18, 2025
a280edd
feat: use total_threads instead of total_cores to test if we should u…
KernAttila Apr 18, 2025
a864755
Merge branch 'master' of https://github.com/Wolf-Pipeline/OpenCue int…
KernAttila Apr 18, 2025
d57541d
test: use logical cores for hybrid CPU test
KernAttila Apr 18, 2025
f27aed7
fix: removed ghost log
KernAttila Apr 18, 2025
705ed07
fix: call forgot self when calling self.reserveCores()
KernAttila Apr 18, 2025
0bd2f53
chore: lint test fail, line too long.
KernAttila Apr 18, 2025
48cc64e
feat: Added rqwinutils, specific calls to Windows dll in order to get…
KernAttila Apr 18, 2025
9c3f9bb
refacto: renamed cpuInfo test file for hybrid i9-12900 relying on tru…
KernAttila Apr 21, 2025
90c506e
fix: get boot time for all OS with psutil
KernAttila Apr 21, 2025
cc44608
refacto: renamed variable to be closer to what the code does.
KernAttila Apr 21, 2025
635608b
refacto: made ht multiplier a float for hybrid systems.
KernAttila Apr 21, 2025
62f4cc7
refacto: functions to gather machine information was split and extrac…
KernAttila Apr 21, 2025
6ef848f
doc: update
KernAttila Apr 21, 2025
380a82e
feat: added OVERRIDE_THREADS constant
KernAttila Apr 21, 2025
7f4a34c
test: fixed test to use floats for ht multiplier.
KernAttila Apr 21, 2025
23b0ab7
fix: revert code
KernAttila Apr 21, 2025
5afd53c
fix: get batck __updateProcsMappings and __initStatsLinux
KernAttila Apr 21, 2025
29b12fb
fix: return values in __initStatsLinux()
KernAttila Apr 21, 2025
dd9f8bc
chore: py lint disable=line-too-long + removed unused imports.
KernAttila Apr 21, 2025
2abbd0d
fix: point to correct spuinfo file for i9 12900
KernAttila Apr 21, 2025
90a3474
fix: getLoadAvg() returns an int
KernAttila Apr 21, 2025
0a12e9b
fix: the first digit represents the total number of threads not cores.
KernAttila Apr 22, 2025
2c488f8
doc: explicit description for override constants.
KernAttila Apr 22, 2025
0ab4231
feat: add function count_cores() to get all core units data.
KernAttila Apr 22, 2025
bc6fccd
fix: hyperthreadingMultiplier can be a float for hybrid CPU
KernAttila Apr 22, 2025
2d38bf6
refacto: decompose cpu, core and thread counts to be more explicit an…
KernAttila Apr 22, 2025
c34d984
refacto: changed cpuinfo files naming for hyperthreaded CPUs
KernAttila Apr 22, 2025
10d1847
fix: syntax error
KernAttila Apr 22, 2025
efaff3e
test: add test for total_threads, threadsPerProc and hyperthreadingMu…
KernAttila Apr 22, 2025
daa6dab
test: fix assert (cast str to float)
KernAttila Apr 22, 2025
1a15657
doc: add some instruction comments
KernAttila Apr 22, 2025
2b737e9
refacto: simplify __initStatsWindows
KernAttila Apr 22, 2025
5ec2387
test: fix syntax
KernAttila Apr 22, 2025
0ef7ee3
fix: copy correct cpuinfo file
KernAttila Apr 22, 2025
2a2074a
fix: revert getBootTime() and use the stat file only if it exists, el…
KernAttila Apr 22, 2025
c7ae00a
fix: remove unused codecs import
KernAttila Apr 22, 2025
a506b37
chore: import rqd.win_utils once
KernAttila Apr 22, 2025
6344104
fix: lint and override cores/threads operate both ways.
KernAttila Apr 22, 2025
246f7c5
lint: regroup rqd imports
KernAttila Apr 22, 2025
981365e
install: remove unused wmi import.
KernAttila Apr 22, 2025
e7080e8
fix: use proper import
KernAttila Apr 22, 2025
f23a83c
chore: version bump
KernAttila Apr 22, 2025
1518568
test: remove duplicate test + lint
KernAttila Apr 22, 2025
166ee4f
Merge branch 'master' into rqd-reserve-all-cores
KernAttila May 7, 2025
eb85324
fix: revert field numbering and append new ones to fix backward compa…
KernAttila Jul 2, 2025
c308521
doc: explicit instruction for LOAD_MODIFIER. Removed useless whitespace.
KernAttila Jul 2, 2025
c9552a9
Merge branch 'master' of https://github.com/Wolf-Pipeline/OpenCue int…
KernAttila Jul 16, 2025
b6fa9b2
lint: line too long
KernAttila Jul 16, 2025
065bfa7
Merge branch 'AcademySoftwareFoundation:master' into rqd-reserve-all-…
KernAttila Jul 30, 2025
29527d9
fix: restore MEMORYSTATUSEX in rqwinutils.py (moved from rqmachine.py)
KernAttila Jul 30, 2025
5a1a935
feat:
KernAttila Jul 31, 2025
1177d38
fix: use KILOBYTE constant instead of hard 1024 value.
KernAttila Jul 31, 2025
f5f4f05
fix: thinking about it, 1024 is explicit enough, and triggers a linti…
KernAttila Aug 5, 2025
44a0a7a
update: increment minor version
KernAttila Aug 6, 2025
ce0e91a
Merge branch 'master' of https://github.com/Wolf-Pipeline/OpenCue int…
KernAttila Aug 6, 2025
5007a47
fix: revert to 1024 instead of KILOBYTE
KernAttila Aug 6, 2025
a35e16f
doc: updated docstring for reserveCores, being a bit more explicit on…
KernAttila Aug 6, 2025
3fc4fb1
Merge branch 'master' of https://github.com/Wolf-Pipeline/OpenCue int…
KernAttila Aug 7, 2025
027d811
chore: remove old setup.py
KernAttila Aug 27, 2025
7696868
Merge branch 'master' into rqd-reserve-all-cores
KernAttila Aug 27, 2025
35809ec
Merge branch 'master' into rqd-reserve-all-cores
KernAttila Aug 27, 2025
bb923e7
Merge remote-tracking branch 'origin/master' into rqd-reserve-all-cores
lithorus Sep 23, 2025
b2b08e7
feat(rqd): Add threads_per_proc to host stats
lithorus Sep 23, 2025
cc40947
Merge pull request #1 from lithorus/rqd-reserve-all-cores
KernAttila Sep 24, 2025
8c769d1
Merge branch 'AcademySoftwareFoundation:master' into rqd-reserve-all-…
KernAttila Sep 24, 2025
dc74bd7
Merge branch 'AcademySoftwareFoundation:master' into rqd-reserve-all-…
lithorus Sep 24, 2025
2c1a219
Merge pull request #2 from lithorus/rqd-reserve-all-cores
KernAttila Sep 25, 2025
722763b
Merge branch 'master' of https://github.com/Wolf-Pipeline/OpenCue int…
KernAttila Oct 8, 2025
3d1fed1
fix: use self.getTempPath() instead of env var.
KernAttila Oct 8, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 5 additions & 2 deletions proto/src/report.proto
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,7 @@ message BootReport {
}

message CoreDetail {
int32 total_cores = 1;
int32 total_cores = 1; // physical cores
int32 idle_cores = 2;
int32 locked_cores = 3;
int32 booked_cores = 4;
Expand All @@ -43,6 +43,7 @@ message CoreDetail {
// solely on rqd's end to store a map of reserved cores, but the data was never communicated to
// the server.
map<int64, CoreId> reserved_cores = 5 [deprecated=true];
int32 total_threads = 6; // logical cores
}

message CoreId {
Expand Down Expand Up @@ -70,7 +71,7 @@ message RenderHost {
bool nimby_locked = 3; // if nimby has locked the host due to user activity
string facility= 4; // The name of the facility that the host is in
int32 num_procs = 5; // the number of physical procs on this machine
int32 cores_per_proc = 6; // the number of cores per proc
int32 cores_per_proc = 6; // the number of physical cores per proc
int64 total_swap = 7; // the total size of the swap in kB
int64 total_mem = 8; // the total size of the main memory pool in kB
int64 total_mcp = 9; // the total size of MCP in kB
Expand All @@ -85,6 +86,7 @@ message RenderHost {
int32 num_gpus = 18; // the number of physical GPU's
int64 free_gpu_mem = 19; // the current amount of free gpu memory in kB
int64 total_gpu_mem = 20; // the total size of gpu memory in kB
int32 threads_per_proc = 21; // the number of logical cores per proc
};

message RunningFrameInfo {
Expand All @@ -107,6 +109,7 @@ message RunningFrameInfo {
int64 used_gpu_memory = 17; // kB
ChildrenProcStats children = 18; //additional data about the running frame's child processes
int64 used_swap_memory = 19; // kB
bool use_threads = 20; // whether the frame is requesting logical or physical cores
};

message ChildrenProcStats {
Expand Down
1 change: 1 addition & 0 deletions rqd/rqd/__main__.py
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,7 @@
In /etc/opencue/rqd.conf (on Linux) or %LOCALAPPDATA%/OpenCue/rqd.conf (on Windows):
[Override]
OVERRIDE_CORES = 2
OVERRIDE_THREADS = 4
OVERRIDE_PROCS = 3
OVERRIDE_MEMORY = 1000000
OVERRIDE_CUEBOT = cuebot1 cuebot2 cuebot3
Expand Down
9 changes: 6 additions & 3 deletions rqd/rqd/rqconstants.py
Original file line number Diff line number Diff line change
Expand Up @@ -154,15 +154,16 @@
if '-c' in sys.argv:
CONFIG_FILE = sys.argv[sys.argv.index('-c') + 1]

OVERRIDE_CORES = None # number of cores. ex: None or 8
OVERRIDE_IS_DESKTOP = None # Force rqd to run in 'desktop' mode
OVERRIDE_PROCS = None # number of physical cpus. ex: None or 2
OVERRIDE_CORES = None # number of cores per cpu. ex: None or 8
OVERRIDE_THREADS = None # number of threads per cpu. ex: None or 16
OVERRIDE_IS_DESKTOP = None # Force rqd to run in 'desktop' mode
OVERRIDE_MEMORY = None # in Kb
OVERRIDE_NIMBY = None # True to turn on, False to turn off
USE_NIMBY_PYNPUT = True # True pynput, False select
OVERRIDE_HOSTNAME = None # Force to use this hostname
ALLOW_GPU = False
LOAD_MODIFIER = 0 # amount to add/subtract from load
LOAD_MODIFIER = 0 # amount to add/subtract from load, makes the machine look busier to CueBot.

LOG_FORMAT = '%(levelname)-9s openrqd-%(module)-10s: %(message)s'
CONSOLE_LOG_LEVEL = logging.WARNING
Expand Down Expand Up @@ -207,6 +208,8 @@
CUEBOT_GRPC_PORT = config.getint(__override_section, "CUEBOT_GRPC_PORT")
if config.has_option(__override_section, "OVERRIDE_CORES"):
OVERRIDE_CORES = config.getint(__override_section, "OVERRIDE_CORES")
if config.has_option(__override_section, "OVERRIDE_THREADS"):
OVERRIDE_THREADS = config.getint(__override_section, "OVERRIDE_THREADS")
if config.has_option(__override_section, "OVERRIDE_PROCS"):
OVERRIDE_PROCS = config.getint(__override_section, "OVERRIDE_PROCS")
if config.has_option(__override_section, "OVERRIDE_MEMORY"):
Expand Down
14 changes: 10 additions & 4 deletions rqd/rqd/rqcore.py
Original file line number Diff line number Diff line change
Expand Up @@ -68,6 +68,7 @@ def __init__(self, optNimbyoff=False):

self.cores = opencue_proto.report_pb2.CoreDetail(
total_cores=0,
total_threads=0,
idle_cores=0,
locked_cores=0,
booked_cores=0,
Expand Down Expand Up @@ -328,7 +329,10 @@ def killAllFrame(self, reason):
def releaseCores(self, reqRelease, releaseHT=None, releaseGpus=None):
"""The requested number of cores are released
@type reqRelease: int
@param reqRelease: Number of cores to release, 100 = 1 physical core"""
@param reqRelease: Number of cores to release, 100 = 1 physical core
@type releaseHT: str
@param releaseHT: The hyper-threading cores to release
"""
with self.__threadLock:
# pylint: disable=no-member
self.cores.booked_cores -= reqRelease
Expand Down Expand Up @@ -431,9 +435,11 @@ def launchFrame(self, runFrame):
# pylint: enable=no-member

if runFrame.environment.get('CUE_THREADABLE') == '1':
reserveHT = self.machine.reserveHT(runFrame.num_cores)
if reserveHT:
runFrame.attributes['CPU_LIST'] = reserveHT
cpu_list = self.machine.reserveCores(
coresCount=runFrame.num_cores,
logical=runFrame.use_threads)
if cpu_list:
runFrame.attributes['CPU_LIST'] = cpu_list

if runFrame.num_gpus:
reserveGpus = self.machine.reserveGpus(runFrame.num_gpus)
Expand Down
Loading
Loading