[ET Trac] [Einstein Toolkit] #1772: Simfactory: potentially serious problem with CACHE directory in the simulations directory
Einstein Toolkit
trac-noreply at einsteintoolkit.org
Tue May 5 11:35:49 CDT 2015
#1772: Simfactory: potentially serious problem with CACHE directory in the
simulations directory
-------------------------+--------------------------------------------------
Reporter: bmundim | Owner:
Type: defect | Status: new
Priority: critical | Milestone: ET_2015_05
Component: SimFactory | Version: development version
Resolution: | Keywords: CACHE
-------------------------+--------------------------------------------------
Comment (by eschnett):
Yes, the CACHE directory is necessary if you are running many similar
simulations. This can happen e.g. during benchmarking. While most HPC
systems can handle a large number of executables, there are some that
cannot, and where one runs out of quota.
The cache works slightly differently than you describe. First, it uses
hard links, not soft (symbolic) links. The cache is just this, a cache --
the actual executables are safely stored in the simulation directories,
and are never modified. Here is what actually happens when a simulation is
created:
1. Check cache whether it has the right executable. If not, ignore cache.
2. If cache is good, create a hard link from cache to simulation
directory.
3. Check simulation directory if it now has the right executable, since
the cache may have changed in the mean time. If no, delete hard link
again.
4. If simulation directory does not have an executable, copy it from the
Cactus build directory.
5. The simulation directory now has the correct executable.
6. If we are not using a hard link from the cache, then delete the cache
file, and create a new hard link from the simulation directory to the
cache.
This guarantees that simulations always use the correct executable, and
that a simulation's executable is never overwritten. Also, there are
fallbacks in place in case any of the operations fails (e.g. creating a
hard link).
What is actually a problem currently is that some external libraries that
are built are dynamic libraries, which can change or go away when one
rebuilds. These are not copied into the simulation directory. We try to
enforce using static libraries for this reason, but I'm not sure whether
this is the case for all external libraries.
--
Ticket URL: <https://trac.einsteintoolkit.org/ticket/1772#comment:1>
Einstein Toolkit <http://einsteintoolkit.org>
The Einstein Toolkit
More information about the Trac
mailing list