I would like to pass an iname by reference in a CallInstruction (or else, rewrite a subkernel to change an argument with shape (1) to a scalar argument).
Is there any way to do either of these things? The latter is probably less ugly.
cc'ing the loopy mailing list.
> On 6 Jun 2019, at 07:02, Cotter, Colin J <colin.cotter(a)imperial.ac.uk> wrote:
> Hi folks,
> When running on ARCHER (national supercomputer) we need to set new paths for writing cache files because you have to build in /home but compute nodes are only allowed to write to /work. Since the loo.py changes it looks like we need to set paths for loo.py as well, otherwise I get the message at the bottom of this email. How do I set them?
It looks like loopy (via pytools) sets up these caches by asking python where the use cache directory is. This is controlled by the XDG_CACHE_HOME environment variable
Running your firedrake with:
Should do the trick (once you've activated the virtualenv before setting the var).
Or try this patch?
diff --git a/firedrake_configuration/__init__.py b/firedrake_configuration/__init__.py
index b64b1b52..c6a1566b 100644
@@ -46,3 +46,5 @@ def setup_cache_dirs():
os.environ["PYOP2_CACHE_DIR"] = os.path.join(config["options"]["cache_dir"], "pyop2")
if 'FIREDRAKE_TSFC_KERNEL_CACHE_DIR' not in os.environ:
os.environ["FIREDRAKE_TSFC_KERNEL_CACHE_DIR"] = os.path.join(config["options"]["cache_dir"], "tsfc")
+ os.environ["XDG_CACHE_HOME"] = config["options"]["cache_dir"]
@loopy folk, I guess you're being good citizens by asking python for the cache directory. But controlling this on supercomputers is potentially an issue: you need to set different things depending on whether you're on linux or not.
I guess we can just assume that on a supercomputer you're on linux.