experimaestro 1.8.6__py3-none-any.whl → 1.8.8__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of experimaestro might be problematic. Click here for more details.
- experimaestro/launcherfinder/parser.py +1 -1
- experimaestro/launcherfinder/registry.py +1 -0
- experimaestro/launcherfinder/specs.py +10 -9
- {experimaestro-1.8.6.dist-info → experimaestro-1.8.8.dist-info}/METADATA +1 -1
- {experimaestro-1.8.6.dist-info → experimaestro-1.8.8.dist-info}/RECORD +8 -8
- {experimaestro-1.8.6.dist-info → experimaestro-1.8.8.dist-info}/LICENSE +0 -0
- {experimaestro-1.8.6.dist-info → experimaestro-1.8.8.dist-info}/WHEEL +0 -0
- {experimaestro-1.8.6.dist-info → experimaestro-1.8.8.dist-info}/entry_points.txt +0 -0
|
@@ -20,9 +20,6 @@ class CudaSpecification:
|
|
|
20
20
|
min_memory: int = 0
|
|
21
21
|
"""Minimum request memory (in bytes)"""
|
|
22
22
|
|
|
23
|
-
def __lt__(self, other: "CudaSpecification"):
|
|
24
|
-
return self.memory < other.memory
|
|
25
|
-
|
|
26
23
|
def match(self, spec: "CudaSpecification"):
|
|
27
24
|
"""Returns True if the specification matches this host"""
|
|
28
25
|
return (self.memory >= spec.memory) and (self.min_memory <= spec.memory)
|
|
@@ -30,7 +27,7 @@ class CudaSpecification:
|
|
|
30
27
|
def __repr__(self):
|
|
31
28
|
return (
|
|
32
29
|
f"CUDA({self.model} "
|
|
33
|
-
f"{format_size(self.memory)}/{format_size(self.min_memory)})"
|
|
30
|
+
f"max={format_size(self.memory)}/min={format_size(self.min_memory)})"
|
|
34
31
|
)
|
|
35
32
|
|
|
36
33
|
|
|
@@ -48,8 +45,8 @@ class CPUSpecification:
|
|
|
48
45
|
cpu_per_gpu: int = 0
|
|
49
46
|
"""Number of CPU per GPU (0 if not defined)"""
|
|
50
47
|
|
|
51
|
-
def
|
|
52
|
-
return self.memory
|
|
48
|
+
def match(self, other: "CPUSpecification"):
|
|
49
|
+
return (self.memory >= other.memory) and (self.cores >= other.cores)
|
|
53
50
|
|
|
54
51
|
def total_memory(self, gpus: int = 0):
|
|
55
52
|
return max(
|
|
@@ -95,6 +92,7 @@ class HostRequirement:
|
|
|
95
92
|
"""A requirement must be a disjunction of host requirements"""
|
|
96
93
|
|
|
97
94
|
requirements: List["HostSimpleRequirement"]
|
|
95
|
+
"""List of requirements (by order of priority)"""
|
|
98
96
|
|
|
99
97
|
def __init__(self) -> None:
|
|
100
98
|
self.requirements = []
|
|
@@ -133,7 +131,10 @@ class HostSimpleRequirement(HostRequirement):
|
|
|
133
131
|
"""Simple host requirement"""
|
|
134
132
|
|
|
135
133
|
cuda_gpus: List["CudaSpecification"]
|
|
134
|
+
"""Specification for CUDA gpus"""
|
|
135
|
+
|
|
136
136
|
cpu: "CPUSpecification"
|
|
137
|
+
"""Specification for CPU"""
|
|
137
138
|
|
|
138
139
|
duration: int
|
|
139
140
|
"""Requested duration (in seconds)"""
|
|
@@ -158,7 +159,7 @@ class HostSimpleRequirement(HostRequirement):
|
|
|
158
159
|
self.cpu.cores = max(req.cpu.cores, self.cpu.cores)
|
|
159
160
|
self.duration = max(req.duration, self.duration)
|
|
160
161
|
self.cuda_gpus.extend(req.cuda_gpus)
|
|
161
|
-
self.cuda_gpus.sort()
|
|
162
|
+
self.cuda_gpus.sort(key=lambda cuda: -cuda.memory)
|
|
162
163
|
|
|
163
164
|
def match(self, host: HostSpecification) -> Optional[MatchRequirement]:
|
|
164
165
|
if self.cuda_gpus:
|
|
@@ -182,7 +183,7 @@ class HostSimpleRequirement(HostRequirement):
|
|
|
182
183
|
)
|
|
183
184
|
return None
|
|
184
185
|
|
|
185
|
-
if host.cpu
|
|
186
|
+
if not host.cpu.match(self.cpu):
|
|
186
187
|
return None
|
|
187
188
|
|
|
188
189
|
if host.max_duration > 0 and self.duration > host.max_duration:
|
|
@@ -197,7 +198,7 @@ class HostSimpleRequirement(HostRequirement):
|
|
|
197
198
|
_self = deepcopy(self)
|
|
198
199
|
for _ in range(count - 1):
|
|
199
200
|
_self.cuda_gpus.extend(self.cuda_gpus)
|
|
200
|
-
_self.cuda_gpus.sort()
|
|
201
|
+
_self.cuda_gpus.sort(key=lambda cuda: -cuda.memory)
|
|
201
202
|
|
|
202
203
|
return _self
|
|
203
204
|
|
|
@@ -34,9 +34,9 @@ experimaestro/huggingface.py,sha256=gnVlr6SZnbutYz4PLH0Q77n1TRF-uk-dR-3UFzFqAY0,
|
|
|
34
34
|
experimaestro/ipc.py,sha256=Xn3tYME83jLEB0nFak3DwEIhpL5IRZpCl3jirBF_jl4,1570
|
|
35
35
|
experimaestro/launcherfinder/__init__.py,sha256=qRUDyv3B9UsAM8Q31mRrZrTZox0AptwdmOY4f2K-TUo,279
|
|
36
36
|
experimaestro/launcherfinder/base.py,sha256=q47SsF_cXdo5O6ZhFKn5385WVFcx8Wd-BcEpd6tRpbs,515
|
|
37
|
-
experimaestro/launcherfinder/parser.py,sha256=
|
|
38
|
-
experimaestro/launcherfinder/registry.py,sha256=
|
|
39
|
-
experimaestro/launcherfinder/specs.py,sha256=
|
|
37
|
+
experimaestro/launcherfinder/parser.py,sha256=w8JyrBtiD15SYSPmzv06H64WDZAOdrz0xyV703mQ6TQ,2287
|
|
38
|
+
experimaestro/launcherfinder/registry.py,sha256=mhFAVgk8t2qWemUlhgM4nftn2x1THm7LTKSyDVsQQ9M,6379
|
|
39
|
+
experimaestro/launcherfinder/specs.py,sha256=j3rObYRUi8WbU9n8220usOIWJ9p68Uti0BjkQRqGiZc,6560
|
|
40
40
|
experimaestro/launchers/__init__.py,sha256=lXn544sgJExr6uirILWzAXu_IfmfyqFZOt4OzRnjHXg,2525
|
|
41
41
|
experimaestro/launchers/direct.py,sha256=JZh6WOPnO6ED_xlOs8pL4MRFmnRhmXzpVxTl-ByaD2A,258
|
|
42
42
|
experimaestro/launchers/oar.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
@@ -150,8 +150,8 @@ experimaestro/utils/jupyter.py,sha256=JcEo2yQK7x3Cr1tNl5FqGMZOICxCv9DwMvL5xsWdQP
|
|
|
150
150
|
experimaestro/utils/resources.py,sha256=j-nvsTFwmgENMoVGOD2Ap-UD3WU85WkI0IgeSszMCX4,1328
|
|
151
151
|
experimaestro/utils/settings.py,sha256=jpFMqF0DLL4_P1xGal0zVR5cOrdD8O0Y2IOYvnRgN3k,793
|
|
152
152
|
experimaestro/xpmutils.py,sha256=S21eMbDYsHfvmZ1HmKpq5Pz5O-1HnCLYxKbyTBbASyQ,638
|
|
153
|
-
experimaestro-1.8.
|
|
154
|
-
experimaestro-1.8.
|
|
155
|
-
experimaestro-1.8.
|
|
156
|
-
experimaestro-1.8.
|
|
157
|
-
experimaestro-1.8.
|
|
153
|
+
experimaestro-1.8.8.dist-info/LICENSE,sha256=OXLcl0T2SZ8Pmy2_dmlvKuetivmyPd5m1q-Gyd-zaYY,35149
|
|
154
|
+
experimaestro-1.8.8.dist-info/METADATA,sha256=UbtQwG2i6-287cO03zrgv-iV7v9lbXxa9DMoRrc-HQ8,6170
|
|
155
|
+
experimaestro-1.8.8.dist-info/WHEEL,sha256=b4K_helf-jlQoXBBETfwnf4B04YC67LOev0jo4fX5m8,88
|
|
156
|
+
experimaestro-1.8.8.dist-info/entry_points.txt,sha256=TppTNiz5qm5xm1fhAcdLKdCLMrlL-eQggtCrCI00D9c,446
|
|
157
|
+
experimaestro-1.8.8.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|