Skip to content

Commit 650a5f4

Browse files
committed
Bring back DDFacet patch
1 parent c8014c6 commit 650a5f4

File tree

1 file changed

+36
-0
lines changed

1 file changed

+36
-0
lines changed

patches/DDFacet_cpus.patch

+36
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
--- AsyncProcessPool.py.original 2024-03-25 17:20:05.746189082 +0100
2+
+++ AsyncProcessPool.py 2024-03-25 17:24:15.135895638 +0100
3+
@@ -269,11 +269,14 @@
4+
else:
5+
raise RuntimeError("Invalid option for Parallel.Affinity. Expected cpu step (int), list, "
6+
"'enable_ht', 'disable_ht', 'disable'")
7+
+
8+
+ avail_cores = psutil.Process().cpu_affinity()
9+
if self.parent_affinity is None:
10+
print("Parent and I/O affinities not specified, leaving unset", file=log)
11+
else:
12+
print(ModColor.Str("Fixing parent process to vthread %d" % self.parent_affinity, col="green"), file=log)
13+
- psutil.Process().cpu_affinity(range(self.ncpu) if not self.parent_affinity else [self.parent_affinity])
14+
+ psutil.Process().cpu_affinity(avail_cores[:self.ncpu] if not self.parent_affinity else [self.parent_affinity])
15+
+
16+
17+
# if NCPU is 0, set to number of CPUs on system
18+
if not self.ncpu:
19+
@@ -291,7 +294,7 @@
20+
# create a queue for compute-bound tasks
21+
# generate list of CPU cores for workers to run on
22+
if isinstance(self.affinity, int) and (not self.affinity or self.affinity == 1):
23+
- cores = range(self.ncpu)
24+
+ cores = avail_cores[:self.ncpu]
25+
elif isinstance(self.affinity, int) and self.affinity == 2:
26+
cores = range(0, self.ncpu * 2, 2)
27+
elif isinstance(self.affinity, int) and self.affinity == -2:
28+
@@ -299,7 +302,7 @@
29+
elif isinstance(self.affinity, list):
30+
cores = self.affinity[:self.ncpu]
31+
elif not self.affinity:
32+
- cores = range(self.ncpu)
33+
+ cores = avail_cores[:self.ncpu]
34+
else:
35+
raise ValueError("unknown affinity setting")
36+
if not self.affinity:

0 commit comments

Comments
 (0)