#382: SimFactory home directory on Kraken is too specific
------------------------+---------------------------------------------------
Reporter: hinder | Owner: mthomas
Type: defect | Status: new
Priority: major | Milestone: ET_2011_05
Component: SimFactory | Version:
Keywords: |
------------------------+---------------------------------------------------
The mdb entry for Kraken in SimFactory has
'sourcebasedir' => '/nics/b/home/@USER@',
My home directory is
'/nics/d/home/@USER@'
Either we could leave the source base dir as unset to force the user to
set it, or we could automatically detect the location of the user's home
directory (better).
--
Ticket URL: <https://trac.einsteintoolkit.org/ticket/382>
Einstein Toolkit <http://einsteintoolkit.org>
The Einstein Toolkit
#584: Use of uninitialized value in concatenation
------------------------+---------------------------------------------------
Reporter: hinder | Owner: eschnett
Type: defect | Status: new
Priority: major | Milestone:
Component: SimFactory | Version:
Keywords: |
------------------------+---------------------------------------------------
After failing to check out a thornlist (the current einsteintoolkit.th)
the automated build and test system re-runs GetComponents with --update.
On 27-Sep-2011, this gave the error:
{{{
Use of uninitialized value in concatenation (.) or string at
./GetComponents line 2514.
}}}
This line seems to be
{{{
$url = "(".$component{"URL"}.")|(".$component{"AUTH_URL"}.")";
}}}
Is the problem that SimFactory doesn't have an AUTH_URL?
I'm attaching the log of the testsuite script. I don't know if the error
is serious or not, since the checkout has already failed.
--
Ticket URL: <https://trac.einsteintoolkit.org/ticket/584>
Einstein Toolkit <http://einsteintoolkit.org>
The Einstein Toolkit
#241: Thorns should be able to specify implementation versions, and other thorns
should be able to depend on those
-------------------------+--------------------------------------------------
Reporter: knarf | Owner:
Type: enhancement | Status: new
Priority: minor | Milestone:
Component: Cactus | Version:
Keywords: |
-------------------------+--------------------------------------------------
Cactus thorns implement 'implementations', and other thorns can then
depend on particular implementations being present. However, quite often
those are updated, and incompatibilities occur. Usually this is resolved
by the developer in both thorns - the implementing and the using thorn.
However, a user might just update one of them, and Cactus would not catch
this error. Thus, I suggest to think about, and implement how to:
- specify implementation versions
e.g. IMPLEMENTS: Cactus (4.0)
The version string within () would have be sorted in an intelligent way
to allow
comparisons [1].
- specify dependencies on particular versions of other implementations
In particular I suggest the following dependencies: depends, and
conflicts, both
with comparisons < <= == >= > !=
e.g. DEPENDS: Cactus (>= 4.0)
DEPENDS: BadImplementation (!=3.14) <-- this introduces a
dependency
CONFLICTS: BadImplementation (==3.14) <-- this doesn't introduce
a depencency
[1] First the initial part of each string consisting entirely of non-digit
characters is determined. These two parts (one of which may be empty) are
compared lexically. If a difference is found it is returned. The lexical
comparison is a comparison of ASCII values modified so that all the
letters sort earlier than all the non-letters. Then the initial part of
the remainder of each string which consists entirely of digit characters
is determined. The numerical values of these two parts are compared, and
any difference found is returned as the result of the comparison. For
these purposes an empty string (which can only occur at the end of one or
both version strings being compared) counts as zero.
These two steps (comparing and removing initial non-digit strings and
initial digit strings) are repeated until a difference is found or both
strings are exhausted.
--
Ticket URL: <https://trac.einsteintoolkit.org/ticket/241>
Einstein Toolkit <http://einsteintoolkit.org>
The Einstein Toolkit
#334: unsuccessful qsub not recognized / submit succeeds for finished simulation
------------------------+---------------------------------------------------
Reporter: knarf | Owner: mthomas
Type: defect | Status: new
Priority: minor | Milestone:
Component: SimFactory | Version:
Keywords: |
------------------------+---------------------------------------------------
python version:
I submitted a simulation 'sim submit' but the corresponding qsub failed
due to wrong numbers of procs/node (philip cluster). I changed the number
given on the command line and did a 'sim submit' again, this time
successful. Several things happend which I think could be done better:
- the unsuccessful qsub was not detected during the new submit - it
attempted a restart and didn't simply clean
the unsuccessful submit
- when trying the restart, it went ahead and queued the job, but this
later failed when run with "cannot rerun a restart that has been
finished". This could have been caught earlier - without the wait time in
the queue.
--
Ticket URL: <https://trac.einsteintoolkit.org/ticket/334>
Einstein Toolkit <http://einsteintoolkit.org>
The Einstein Toolkit
#428: Forbid configuration names ending in -reconfig
----------------------+-----------------------------------------------------
Reporter: eschnett | Owner:
Type: defect | Status: new
Priority: minor | Milestone:
Component: Cactus | Version:
Keywords: |
----------------------+-----------------------------------------------------
I accidentally created a Cactus configuration with a name like "sim-
reconfig". This confuses Cactus, because the command "make sim-reconfig"
can then mean either to build the "sim-reconfig" configuration, or to
reconfigure the "sim" configuration.
Cactus should catch and forbid these cases.
This is probably most cleanly handled by using a script instead of a
Makefile to interpret the user commands.
--
Ticket URL: <https://trac.einsteintoolkit.org/ticket/428>
Einstein Toolkit <http://einsteintoolkit.org>
The Einstein Toolkit
#582: Semi-automatically split McLachlan's calculations
-----------------------------------+----------------------------------------
Reporter: eschnett | Owner:
Type: enhancement | Status: new
Priority: major | Milestone:
Component: EinsteinToolkit thorn | Version:
Keywords: |
-----------------------------------+----------------------------------------
Split McLachlan's calculations semi-automatically in two ways: (a) by
variable, so that e.g. dot[g] and dot[K] are calculated separately, and
(b) by pattern, so that advection terms, dissipation, and "everything
else" are calculated separately. Also introduce parameters to choose which
routines are called at run time.
This is somewhat a work in progress, in that the patch is good, but the
API defined to split kernels is more complex and less failsafe than it
should be.
--
Ticket URL: <https://trac.einsteintoolkit.org/ticket/582>
Einstein Toolkit <http://einsteintoolkit.org>
The Einstein Toolkit
#499: Prolongation fails with vectorisation enabled
--------------------+-------------------------------------------------------
Reporter: hinder | Owner: eschnett
Type: defect | Status: new
Priority: major | Milestone:
Component: Carpet | Version:
Keywords: |
--------------------+-------------------------------------------------------
The development version of Carpet uses vectorisation to speed-up
prolongation. This fails with various errors, including corruption of the
malloc heap.
--
Ticket URL: <https://trac.einsteintoolkit.org/ticket/499>
Einstein Toolkit <http://einsteintoolkit.org>
The Einstein Toolkit
#445: Make Carpet timers hierarchical
-------------------------+--------------------------------------------------
Reporter: hinder | Owner: eschnett
Type: enhancement | Status: new
Priority: major | Milestone:
Component: Carpet | Version:
Keywords: |
-------------------------+--------------------------------------------------
With the current flat structure of timers in Carpet, it is difficult to
identify which timers are contained in which other timers, and hence to
avoid double-counting when adding up the times.
This series of patches modifies the timer infrastructure in Carpet to
generate a tree of timers where the hierarchy reflects the call-graph of
the program. This makes it much easier to interpret the timer output than
with the previous flat structure, where it was not possible to see which
timers "contained" which others. More implementation details are given at
the top of TimerNode.hh.
Note that the Timer source and header files have been renamed as
CactusTimer and a new Timer file and object has been created. This is
because the Timer object now only provides a wrapper around the Cactus
timer mechanism which was contained in the old Timer object.
New parameters output_initialise_timer_tree and output_timer_tree_every
control output of a new "timer tree diagram" to standard output for the
Initialise and Evolve timer trees respectively. These diagrams indicate:
1. the value of each timer;
2. the percentage of the given tree taken by each timer;
3. which timers are contained in which other timers;
4. any untimed code
for any timer which takes more than 1% of the tree time.
Making the timers hierarchical means that the ad-hoc methods used before
to identify the hierarchy (such as naming the timer Evolve::Sync, for
example, to indicate that the Sync timer was a child of the Evolve timer)
are no longer necessary and have been removed. Additionally, the
construction of timers in a "dynamic" manner is now handled automatically
for all timers, so special-case code is no longer needed and has been
removed.
Additionally some previously-untimed parts of the code are now timed, and
timer names have been made more consistent in some places.
There is code in the patches to output the entire timer tree as an XML
file, but it is not enabled.
Ideally the timer tree printed to standard output would contain reductions
across processes, but at the moment it contains only the timer from the
current process.
The attached "tree-example.txt" file shows an example of the timer tree
that is printed for a simulation using the qc0-mclachlan parameter file
from the Einstein Toolkit.
--
Ticket URL: <https://trac.einsteintoolkit.org/ticket/445>
Einstein Toolkit <http://einsteintoolkit.org>
The Einstein Toolkit
#590: McLachlan should allow other thorns to set the gauge
-----------------------------------+----------------------------------------
Reporter: bmundim | Owner:
Type: defect | Status: new
Priority: major | Milestone:
Component: EinsteinToolkit thorn | Version:
Keywords: |
-----------------------------------+----------------------------------------
The parameters lapse_evolution_method and shift_evolution_method are
usually set to ML_BSSN in McLachlan. However they are never checked
in the code. McLachlan indeed seems to ignore their values and
overwrite whatever the values of lapse or shift set elsewhere,
preventing therefore other thorns from setting them differently.
--
Ticket URL: <https://trac.einsteintoolkit.org/ticket/590>
Einstein Toolkit <http://einsteintoolkit.org>
The Einstein Toolkit
#542: Remove thorn CactusArchive/ADM from thorn list
-----------------------------------+----------------------------------------
Reporter: eschnett | Owner:
Type: task | Status: new
Priority: major | Milestone:
Component: EinsteinToolkit thorn | Version:
Keywords: |
-----------------------------------+----------------------------------------
Remove thorn CactusArchive/ADM from thorn list. This thorn is outdated,
and we should updated out test cases instead. It also takes a long time
and a lot of memory to compile.
If we want an ADM formulation (which is doubtful since we don't use it
ourselves), we should implement one via Kranc.
--
Ticket URL: <https://trac.einsteintoolkit.org/ticket/542>
Einstein Toolkit <http://einsteintoolkit.org>
The Einstein Toolkit