Skip to content

Commit 7a71c7e

Browse files
committed
make memoizer into an interface class and impls
1 parent 335b277 commit 7a71c7e

File tree

2 files changed

+13
-2
lines changed

2 files changed

+13
-2
lines changed

parsl/dataflow/dflow.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@
2929
from parsl.dataflow.dependency_resolvers import SHALLOW_DEPENDENCY_RESOLVER
3030
from parsl.dataflow.errors import DependencyError, JoinError
3131
from parsl.dataflow.futures import AppFuture
32-
from parsl.dataflow.memoization import Memoizer
32+
from parsl.dataflow.memoization import BasicMemoizer, Memoizer
3333
from parsl.dataflow.rundirs import make_rundir
3434
from parsl.dataflow.states import FINAL_FAILURE_STATES, FINAL_STATES, States
3535
from parsl.dataflow.taskrecord import TaskRecord
@@ -164,7 +164,7 @@ def __init__(self, config: Config) -> None:
164164
else:
165165
checkpoint_files = []
166166

167-
self.memoizer = Memoizer(self, memoize=config.app_cache, checkpoint_files=checkpoint_files)
167+
self.memoizer: Memoizer = BasicMemoizer(self, memoize=config.app_cache, checkpoint_files=checkpoint_files)
168168
self.memoizer.run_dir = self.run_dir
169169

170170
self._checkpoint_timer = None

parsl/dataflow/memoization.py

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -121,6 +121,17 @@ def id_for_memo_function(f: types.FunctionType, output_ref: bool = False) -> byt
121121

122122

123123
class Memoizer:
124+
def update_memo(self, task: TaskRecord, r: Future[Any]) -> None:
125+
raise NotImplementedError
126+
127+
def checkpoint(self, tasks: Sequence[TaskRecord]) -> None:
128+
raise NotImplementedError
129+
130+
def check_memo(self, task: TaskRecord) -> Optional[Future[Any]]:
131+
raise NotImplementedError
132+
133+
134+
class BasicMemoizer(Memoizer):
124135
"""Memoizer is responsible for ensuring that identical work is not repeated.
125136
126137
When a task is repeated, i.e., the same function is called with the same exact arguments, the

0 commit comments

Comments
 (0)