[ET Trac] [Einstein Toolkit] #522: Improve consistency and performance of sync/build/create
Einstein Toolkit
trac-noreply at einsteintoolkit.org
Fri Aug 19 05:27:21 CDT 2011
#522: Improve consistency and performance of sync/build/create
-------------------------+--------------------------------------------------
Reporter: hinder | Owner: eschnett
Type: enhancement | Status: new
Priority: minor | Milestone:
Component: SimFactory | Version:
Keywords: |
-------------------------+--------------------------------------------------
One of the design goals of SimFactory is to make it very difficult for a
user to make mistakes or end up with inconsistent results. Currently, if
a user modifies a source file and submits a simulation without remembering
to rebuild the configuration, the old version of the configuration will be
used. SimFactory could scan all the source files which would be used for
a build and warn the user if there are new source files. Optionally it
could also rebuild the configuration automatically. This check might be
better implemented in Cactus, which in principle has the dependency
information already. It is functionally equivalent to performing a build
before every create, so maybe the best approach would be to make the
Cactus build process much faster in the case where no files have been
modified. This may not be possible.
A related idea is to ensure that remote configurations are synced before
being built, and parameter files are synced before simulations are
created. One could record the time of the last successful sync
(separately of the source tree and the parameter files) to each machine,
and look for files which have been modified since that time. If there are
such files, a sync could be initiated, or the user warned. Statting files
on a laptop should be very fast. Statting files on Kraken can take
minutes or hours. This information could also be used to restrict the
list of files synced, to avoid having to stat every file in the source
tree on the remote system. This assumes that the only modifications of
the source tree on the remote system are due to simfactory on the local
system. For me, this is the case 99.999% of the time.
I attach a script that I wrote to interact conveniently with remote
systems. It performs a sync of either the source tree or the parameter
files depending on the simfactory command you want to run. It allows you
to use the syntax
<machine> <command> <args>
instead of
sim --remote <machine> <command> <args>
e.g.
damiana list-simulations
The script should be somewhere on your path, and symlinks named after
machines should be created pointing to it. For example,
cp machine .../bin
chmod u+x .../bin/sim/machine
cd .../bin
ln -s machine datura
ln -s machine damiana
ln -s machine kraken
cd ~/Cactus
datura sync
datura create-submit ...
datura build
--
Ticket URL: <https://trac.einsteintoolkit.org/ticket/522>
Einstein Toolkit <http://einsteintoolkit.org>
The Einstein Toolkit
More information about the Trac
mailing list