Skip to content

Commit

Permalink
experimental resource control
Browse files Browse the repository at this point in the history
  • Loading branch information
koo5 committed Nov 2, 2023
1 parent d0af69a commit 49bda44
Show file tree
Hide file tree
Showing 2 changed files with 19 additions and 1 deletion.
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
{"nodebug_mem_reserve_mb":1000000}
19 changes: 18 additions & 1 deletion tests2/runner/runner/tests2.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@
from xml import etree
from xml.etree.ElementTree import canonicalize, fromstring, tostring

import psutil
from furl import furl
import lxml.etree

Expand Down Expand Up @@ -128,9 +129,12 @@ def copy_inputs(self, request_files_dir):


def write_job_json(self, request_files_dir):
with open(request_files_dir / 'request.json') as fp:
metadata = json.load(fp)
data = dict(
**metadata,
custom_job_metadata = dict(self.test),
worker_options = dict(self.test['worker_options'])
worker_options = dict(self.test['worker_options']),
)
fn = request_files_dir / 'request.json'
with open(fn, 'w') as fp:
Expand Down Expand Up @@ -171,6 +175,19 @@ class TestStart(luigi.Task):
test = luigi.parameter.DictParameter()
request_files = luigi.parameter.ListParameter()

@property
def resources(self):
for f in self.request_files:
if f.endswith('/request.json'):
with open(f) as fd:
j = json.load(fd)
nodebug_mem_reserve_mb = j.get('nodebug_mem_reserve_mb', 25)
o = j.get('worker_options')
if o is not None:
if o.get('prolog_debug') is True:
nodebug_mem_reserve_mb *= 4
return {'nodebug_mem_reserve_mb': min(1, nodebug_mem_reserve_mb / (psutil.virtual_memory().available/1000000))}

def run(self):
resp = make_request(self.test, self.request_files)
if resp.ok:
Expand Down

0 comments on commit 49bda44

Please sign in to comment.