Hi Colin,
cc'ing the loopy mailing list.
> On 6 Jun 2019, at 07:02, Cotter, Colin J <colin.cotter@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:
export XDG_CACHE_HOME=$VIRTUAL_ENV/.cache
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
--- a/firedrake_configuration/__init__.py
+++ b/firedrake_configuration/__init__.py
@@ -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.
Thoughts?
Thanks,
Lawrence