ExaWorks / SDK

ExaWorks SDK
11 stars 12 forks source link

Parsl tutorial fails #151

Closed mturilli closed 1 year ago

mturilli commented 1 year ago

When running the Parsl tutorial in our SDK container or standalone, we get the following error:

ie = future.result()
print(f"The ionization energy of {future.task_def['args'][0]} is {ie:.2f} Ha")

---------------------------------------------------------------------------
ResourceError                             Traceback (most recent call last)
Cell In [9], line 1
----> 1 ie = future.result()
      2 print(f"The ionization energy of {future.task_def['args'][0]} is {ie:.2f} Ha")

File /opt/conda/lib/python3.9/concurrent/futures/_base.py:439, in Future.result(self, timeout)
    437     raise CancelledError()
    438 elif self._state == FINISHED:
--> 439     return self.__get_result()
    441 self._condition.wait(timeout)
    443 if self._state in [CANCELLED, CANCELLED_AND_NOTIFIED]:

File /opt/conda/lib/python3.9/concurrent/futures/_base.py:391, in Future.__get_result(self)
    389 if self._exception:
    390     try:
--> 391         raise self._exception
    392     finally:
    393         # Break a reference cycle with the exception in self._exception
    394         self = None

File /opt/conda/lib/python3.9/site-packages/parsl/dataflow/dflow.py:286, in DataFlowKernel.handle_exec_update(self, task_record, future)
    283     raise ValueError("done callback called, despite future not reporting itself as done")
    285 try:
--> 286     res = self._unwrap_remote_exception_wrapper(future)
    288 except Exception as e:
    289     logger.debug("Task {} try {} failed".format(task_id, task_record['try_id']))

File /opt/conda/lib/python3.9/site-packages/parsl/dataflow/dflow.py:471, in DataFlowKernel._unwrap_remote_exception_wrapper(future)
    469 result = future.result()
    470 if isinstance(result, RemoteExceptionWrapper):
--> 471     result.reraise()
    472 return result

File /opt/conda/lib/python3.9/site-packages/parsl/app/errors.py:131, in RemoteExceptionWrapper.reraise(self)
    128 v = dill.loads(self.e_value)
    129 tb = self.e_traceback.as_traceback()
--> 131 reraise(t, v, tb)

File /opt/conda/lib/python3.9/site-packages/six.py:718, in reraise(tp, value, tb)
    716         value = tp()
    717     if value.__traceback__ is not tb:
--> 718         raise value.with_traceback(tb)
    719     raise value
    720 finally:

File /opt/conda/lib/python3.9/site-packages/parsl/app/errors.py:159, in wrapper()
    157 from parsl.app.errors import RemoteExceptionWrapper
    158 try:
--> 159     return func(*args, **kwargs)  # type: ignore
    160 except Exception:
    161     return RemoteExceptionWrapper(*sys.exc_info())

File /tutorials/parsl/molecular-design-parsl-demo/chemfunctions.py:82, in _run_in_process()
     80 print(args)
     81 fut = exe.submit(func, *args)
---> 82 return fut.result()

File /opt/conda/lib/python3.9/concurrent/futures/_base.py:446, in result()
    444     raise CancelledError()
    445 elif self._state == FINISHED:
--> 446     return self.__get_result()
    447 else:
    448     raise TimeoutError()

File /opt/conda/lib/python3.9/concurrent/futures/_base.py:391, in __get_result()
    389 if self._exception:
    390     try:
--> 391         raise self._exception
    392     finally:
    393         # Break a reference cycle with the exception in self._exception
    394         self = None

ResourceError: Procedure geometric is registered with QCEngine, but cannot be found.