Skip to content

Commit

Permalink
use multiprocessing to bypass tf mem leak
Browse files Browse the repository at this point in the history
  • Loading branch information
Kevin Dalton committed Oct 3, 2023
1 parent 42f8c96 commit 90d36db
Show file tree
Hide file tree
Showing 2 changed files with 19 additions and 2 deletions.
1 change: 1 addition & 0 deletions .coveragerc
Original file line number Diff line number Diff line change
@@ -1,2 +1,3 @@
[run]
source = careless
concurrency = multiprocessing
20 changes: 18 additions & 2 deletions tests/test_cli.py
Original file line number Diff line number Diff line change
@@ -1,10 +1,26 @@
import pytest
import reciprocalspaceship as rs
from tempfile import TemporaryDirectory
from careless.careless import run_careless
from careless.careless import run_careless as _run_careless
from os.path import exists
import multiprocessing

niter = 10
# True will use multiprocessing to bypass the tf memory leak issue,
# but it may result in less verbose error messages.
use_mp = True

def run_careless(parser):
"""
Workaround for tensorflow memory leak.
see: https://github.com/tensorflow/tensorflow/issues/36465
"""
if use_mp:
proc = multiprocessing.Process(target=_run_careless, args=(parser,))
proc.start()
proc.join()
else:
_run_careless(parser)

def base_test_separate(flags, filenames):
with TemporaryDirectory() as td:
Expand Down Expand Up @@ -70,7 +86,7 @@ def test_twofile(off_file, on_file, on_file_alt_sg, ev11, dmin, anomalous, isigi
base_test_together(flags, [off_file, on_file])

def test_crystfel(stream_file):
flags = f"mono --iterations={niter} --spacegroups=1 dHKL,image_id"
flags = f"mono --disable-gpu --iterations={niter} --spacegroups=1 dHKL,image_id"
base_test_together(flags, [stream_file])

def test_scale_weight_save_and_load(off_file):
Expand Down

0 comments on commit 90d36db

Please sign in to comment.