The Op for true_div, real, sqrt and others does not have a C implementation

Thank you again. I did as you suggested and have this new error:


/home/tele/miniconda3/envs/PyMC5_2/lib/python3.10/site-packages/pytensor/tensor/rewriting/elemwise.py:680: UserWarning: Optimization Warning: The Op real does not provide a C implementation. As well as being potentially slow, this also disables loop fusion.                             
  warn(                                                                                                                                        
/home/tele/miniconda3/envs/PyMC5_2/lib/python3.10/site-packages/pytensor/tensor/rewriting/elemwise.py:680: UserWarning: Optimization Warning: The Op real does not provide a C implementation. As well as being potentially slow, this also disables loop fusion.
  warn(
/home/tele/miniconda3/envs/PyMC5_2/lib/python3.10/site-packages/pytensor/tensor/rewriting/elemwise.py:680: UserWarning: Optimization Warning: The Op real does not provide a C implementation. As well as being potentially slow, this also disables loop fusion.
  warn(
ERROR (pytensor.graph.rewriting.basic): Rewrite failure due to: constant_folding
ERROR (pytensor.graph.rewriting.basic): node: InplaceDimShuffle{}(TensorConstant{(1, 1) of ..4045494163})
ERROR (pytensor.graph.rewriting.basic): TRACEBACK:
ERROR (pytensor.graph.rewriting.basic): Traceback (most recent call last):
  File "/home/tele/miniconda3/envs/PyMC5_2/lib/python3.10/site-packages/pytensor/graph/rewriting/basic.py", line 1918, in process_node
    replacements = node_rewriter.transform(fgraph, node)
  File "/home/tele/miniconda3/envs/PyMC5_2/lib/python3.10/site-packages/pytensor/graph/rewriting/basic.py", line 1078, in transform
    return self.fn(fgraph, node)
  File "/home/tele/miniconda3/envs/PyMC5_2/lib/python3.10/site-packages/pytensor/tensor/rewriting/basic.py", line 1138, in constant_folding
    thunk = node.op.make_thunk(node, storage_map, compute_map, no_recycling=[])
  File "/home/tele/miniconda3/envs/PyMC5_2/lib/python3.10/site-packages/pytensor/link/c/op.py", line 131, in make_thunk
    return self.make_c_thunk(node, storage_map, compute_map, no_recycling)
  File "/home/tele/miniconda3/envs/PyMC5_2/lib/python3.10/site-packages/pytensor/link/c/op.py", line 96, in make_c_thunk
    outputs = cl.make_thunk(
  File "/home/tele/miniconda3/envs/PyMC5_2/lib/python3.10/site-packages/pytensor/link/c/basic.py", line 1200, in make_thunk
    cthunk, module, in_storage, out_storage, error_storage = self.__compile__(
  File "/home/tele/miniconda3/envs/PyMC5_2/lib/python3.10/site-packages/pytensor/link/c/basic.py", line 1120, in __compile__
    thunk, module = self.cthunk_factory(
  File "/home/tele/miniconda3/envs/PyMC5_2/lib/python3.10/site-packages/pytensor/link/c/basic.py", line 1644, in cthunk_factory
    module = cache.module_from_key(key=key, lnk=self)
  File "/home/tele/miniconda3/envs/PyMC5_2/lib/python3.10/site-packages/pytensor/link/c/cmodule.py", line 1206, in module_from_key
    module = self._get_from_hash(module_hash, key)
  File "/home/tele/miniconda3/envs/PyMC5_2/lib/python3.10/site-packages/pytensor/link/c/cmodule.py", line 1109, in _get_from_hash
    with lock_ctx():
  File "/home/tele/miniconda3/envs/PyMC5_2/lib/python3.10/contextlib.py", line 135, in __enter__
    return next(self.gen)
  File "/home/tele/miniconda3/envs/PyMC5_2/lib/python3.10/site-packages/pytensor/compile/compilelock.py", line 74, in lock_ctx
    fl.acquire(timeout=timeout)
  File "/home/tele/miniconda3/envs/PyMC5_2/lib/python3.10/site-packages/filelock/_api.py", line 195, in acquire
    raise Timeout(self._lock_file)
filelock._error.Timeout: The file lock '/home/tele/.pytensor/compiledir_Linux-5.19--generic-x86_64-with-glibc2.35-x86_64-3.10.9-64/.lock' could not be acquired.

/home/tele/miniconda3/envs/PyMC5_2/lib/python3.10/site-packages/pytensor/tensor/rewriting/elemwise.py:680: UserWarning: Optimization Warning: The Op real does not provide a C implementation. As well as being potentially slow, this also disables loop fusion.
  warn(
Exception in thread Thread-3 (_handle_results):
Traceback (most recent call last):
  File "/home/tele/miniconda3/envs/PyMC5_2/lib/python3.10/threading.py", line 1016, in _bootstrap_inner
    self.run()
  File "/home/tele/miniconda3/envs/PyMC5_2/lib/python3.10/threading.py", line 953, in run
    self._target(*self._args, **self._kwargs)
  File "/home/tele/miniconda3/envs/PyMC5_2/lib/python3.10/multiprocessing/pool.py", line 579, in _handle_results
    task = get()
  File "/home/tele/miniconda3/envs/PyMC5_2/lib/python3.10/multiprocessing/connection.py", line 251, in recv
    return _ForkingPickler.loads(buf.getbuffer())
TypeError: Timeout.__init__() missing 1 required positional argument: 'lock_file'

Do you also see that if you set cores=1 in sample?

1 Like

With cores=1 it runs without problem, just the usual β€œreal” warning. What do you think is going on?