#875: Cactus should define 'restrict', with a value dependent on autoconf
information
-------------------------+--------------------------------------------------
Reporter: knarf | Owner:
Type: enhancement | Status: new
Priority: minor | Milestone:
Component: Cactus | Version: development version
Keywords: |
-------------------------+--------------------------------------------------
The Kranc ticket https://github.com/ianhinder/Kranc/issues/62 mentions
arguments why to do this: to make certain optimizations possible. While
'restrict' is not a C keyword, many compilers support it, leading to
measurable speedup in cases. At the moment Cactus only defines
CCTK_RESTRICT, but it has been commented that using this leads to ugly
code. Defining 'restrict' would beautify this, as well as make it easier
to directly use code which relies on 'restrict' being present (when this
isn't actually the case, or is called differently).
A counter argument would be that this would effectively introduce a
keyword 'restrict' to Cactus. Code using this name already for something
else would need to be changed. Given the positive effects of this change I
would say that this outweights this potential problem.
--
Ticket URL: <https://trac.einsteintoolkit.org/ticket/875>
Einstein Toolkit <http://einsteintoolkit.org>
The Einstein Toolkit
#903: Build of Mojave Project fails
---------------------+------------------------------------------------------
Reporter: sbrandt | Owner: sbrandt
Type: defect | Status: new
Priority: major | Milestone: Cactus_4.1.0
Component: Mojave | Version: development version
Keywords: |
---------------------+------------------------------------------------------
After creating a fresh Mojave project checkout and applying the
NoThornIs9.patch files (see #768) I get this error when I try to build.
java.lang.NullPointerException
at
edu.lsu.cct.mojave.IncludePathConfiguration.createIncludes(IncludePathConfiguration.java:215)
at
edu.lsu.cct.mojave.IncludePathConfiguration.SetIncludePath(IncludePathConfiguration.java:119)
at
edu.lsu.cct.mojave.DynamicMenu$3.widgetSelected(DynamicMenu.java:409)
at
org.eclipse.swt.widgets.TypedListener.handleEvent(TypedListener.java:240)
at
org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:84)
at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1258)
at
org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:3588)
at
org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3209)
at
org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:2701)
at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:2665)
at org.eclipse.ui.internal.Workbench.access$4(Workbench.java:2499)
at org.eclipse.ui.internal.Workbench$7.run(Workbench.java:679)
at
org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332)
at
org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:668)
at
org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:149)
at
org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:123)
at
org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:196)
at
org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:110)
at
org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:79)
at
org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:344)
at
org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:179)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at
org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:622)
at org.eclipse.equinox.launcher.Main.basicRun(Main.java:577)
at org.eclipse.equinox.launcher.Main.run(Main.java:1410)
at org.eclipse.equinox.launcher.Main.main(Main.java:1386)
--
Ticket URL: <https://trac.einsteintoolkit.org/ticket/903>
Einstein Toolkit <http://einsteintoolkit.org>
The Einstein Toolkit
#730: The mojave variable "thornlist" cannot deal with absolute path names;
update repo fails then...
---------------------+------------------------------------------------------
Reporter: alibeck | Owner: sbrandt
Type: defect | Status: new
Priority: blocker | Milestone:
Component: Mojave | Version:
Keywords: |
---------------------+------------------------------------------------------
Using Eclispe (indigo classic), I have tried to build with a new
thornlist.
Therefore I have entered the following name in
mojave -> edit variables
/home/alibeck/Cactus-Simfact2-NewRepos-save/Cactus/test-ali.th
Staring then "update repo"
gives me:
[1m[31mError: [0mCould not open Cactus//home/alibeck/Cactus-Simfact2
-NewRepos-save/Cactus/test-ali.th
So mojave tries to open a file called
Cactus//home/alibeck/Cactus-Simfact2-NewRepos-save/Cactus/test-ali.th
instead of
/home/alibeck/Cactus-Simfact2-NewRepos-save/Cactus/test-ali.th
--
Ticket URL: <https://trac.einsteintoolkit.org/ticket/730>
Einstein Toolkit <http://einsteintoolkit.org>
The Einstein Toolkit
#177: EXC_BAD_ACCESS in CarpetIOASCII
--------------------+-------------------------------------------------------
Reporter: hinder | Owner: eschnett
Type: defect | Status: new
Priority: major | Milestone:
Component: Carpet | Version:
Keywords: |
--------------------+-------------------------------------------------------
I am trying to run a minimal parameter file for testing purposes
(attached). Cactus gets as far as printing the iteration 0 info line and
then appears to hang. When I run in a debugger, it reports:
Program received signal EXC_BAD_ACCESS, Could not access memory.
Reason: 13 at address: 0x0000000000000000
0x0000000100b858b7 in CarpetIOASCII::WriteASCII<0> (os=@0x7fff5fbfc5e0,
gfdatas={<std::_Vector_base<const gdata *, std::allocator<const gdata *>
>> = {_M_impl = {<allocator<const gdata *>> =
{<__gnu_cxx::new_allocator<const gdata *>> = {<No data fields>}, <No data
fields>}, _M_start = 0x109f0ea10, _M_finish = 0x109f0eab8,
_M_end_of_storage = 0x109f0eab8}}, <No data fields>},
gfext=@0x7fff5fbfc960, vi=0, time=0, org=@0x7fff5fbfcafc,
dirs=@0x7fff5fbfd150, rl=0, ml=0, m=0, c=0, tl=0, coord_time=0,
coord_lower=@0x7fff5fbfc9d8, coord_upper=@0x7fff5fbfc9f0) at
ioascii.cc:1378
1378 switch (vartype) {
(gdb) bt
#0 0x0000000100b858b7 in CarpetIOASCII::WriteASCII<0>
(os=@0x7fff5fbfc5e0, gfdatas={<std::_Vector_base<const gdata *,
std::allocator<const gdata *> >> = {_M_impl = {<allocator<const gdata *>>
= {<__gnu_cxx::new_allocator<const gdata *>> = {<No data fields>}, <No
data fields>}, _M_start = 0x109f0ea10, _M_finish = 0x109f0eab8,
_M_end_of_storage = 0x109f0eab8}}, <No data fields>},
gfext=@0x7fff5fbfc960, vi=0, time=0, org=@0x7fff5fbfcafc,
dirs=@0x7fff5fbfd150, rl=0, ml=0, m=0, c=0, tl=0, coord_time=0,
coord_lower=@0x7fff5fbfc9d8, coord_upper=@0x7fff5fbfc9f0) at
ioascii.cc:1378
#1 0x0000000100b5b7ee in CarpetIOASCII::IOASCII<0>::OutputDirection
(cctkGH=0x109f073f0, vindex=0, alias={_M_dataplus = {<allocator<char>> =
{<__gnu_cxx::new_allocator<char>> = {<No data fields>}, <No data fields>},
_M_p = 0x10a06c1c8 "carpet::timing"}}, basefilename={_M_dataplus =
{<allocator<char>> = {<__gnu_cxx::new_allocator<char>> = {<No data
fields>}, <No data fields>}, _M_p = 0x10a06ba68
"minimal/carpet::timing"}}, dirs=@0x7fff5fbfd150, is_new_file=true,
truncate_file=true) at ioascii.cc:610
#2 0x0000000100b554c4 in CarpetIOASCII::IOASCII<0>::OutputVarAs
(cctkGH=0x109f073f0, varname=0x10a06c170 "CARPET::physical_time_per_hour",
alias=0x10a06be00 "carpet::timing") at ioascii.cc:480
#3 0x0000000100b57370 in CarpetIOASCII::IOASCII<0>::TriggerOutput
(cctkGH=0x109f073f0, vindex=0) at ioascii.cc:359
#4 0x0000000100b542b7 in CarpetIOASCII::IOASCII<0>::OutputGH
(cctkGH=0x109f073f0) at ioascii.cc:239
#5 0x000000010329a006 in Carpet::OutputGH (cctkGH=0x109f073f0) at
OutputGH.cc:55
#6 0x0000000103293b25 in Carpet::OutputGH (where=0x104c70f3c
"Initialise::CallAnalysis", cctkGH=0x109f073f0) at Initialise.cc:1382
#7 0x000000010328d432 in Carpet::CallAnalysis (cctkGH=0x109f073f0) at
Initialise.cc:530
#8 0x00000001032892d4 in Carpet::Initialise (fc=0x7fff5fbfe2b0) at
Initialise.cc:118
#9 0x000000010005806a in main (argc=4, argv=0x7fff5fbfe318) at
flesh.cc:80
I do not see how this line "switch(vartype)" where vartype is declared on
the stack, could lead to this error. This configuration has been rebuilt
with -O0 (Intel compiler) and debugging enabled.
This is with the current production (Git) version of Carpet running on Mac
OS 10.6.5. The code is compiled as 64 bit. This parameter file has
worked in the past, though with 32 bit on Mac OS 10.5.
--
Ticket URL: <https://trac.einsteintoolkit.org/ticket/177>
Einstein Toolkit <http://einsteintoolkit.org>
The Einstein Toolkit
#465: Hydro_InitExcision test cases take a long time
-----------------------------------+----------------------------------------
Reporter: eschnett | Owner:
Type: defect | Status: new
Priority: major | Milestone:
Component: EinsteinToolkit thorn | Version:
Keywords: |
-----------------------------------+----------------------------------------
I am just running all test cases with an executable without optimisation,
and I find that Hydro_InitExcision takes a long time. While most other
test cases finish in a few minutes, Hydro_InitExcision takes two hours to
run. The test cases should be reduced in number, size, or duration.
--
Ticket URL: <https://trac.einsteintoolkit.org/ticket/465>
Einstein Toolkit <http://einsteintoolkit.org>
The Einstein Toolkit
#839: MoL Multirate capabilities. This add three new multirate RK schemes to MoL.
----------------------------------------+-----------------------------------
Reporter: reisswig@… | Type: enhancement
Status: new | Priority: optional
Milestone: | Component: Cactus
Version: | Keywords: MoL Multirate
----------------------------------------+-----------------------------------
In order to make multirate work, we need to introduce new registration
routines that explicitly register variables with the "slow" sector, i.e.
those variables which are integrated by the lower order scheme.
This also means that we require new "accumulator" parameters indicating
how many "slow" variables we want to register.
Flags indicate whether it is time to execute slow RHS computation.
For instance, in the RK4-RK2 scheme, there are 4 substeps in total, but
the RK2 RHS are only evaluated in the very first and in the very last step
of the four substeps.
--
Ticket URL: <https://trac.einsteintoolkit.org/ticket/839>
Einstein Toolkit <http://einsteintoolkit.org>
The Einstein Toolkit
#550: CarpetIOHDF5 too verbose while reading from checkpoint
-------------------------+--------------------------------------------------
Reporter: knarf | Owner: eschnett
Type: enhancement | Status: new
Priority: minor | Milestone:
Component: Carpet | Version:
Keywords: |
-------------------------+--------------------------------------------------
It is not that uncommon that I recover using a different number of
processors. Every time I do this I see the error file cluttered with
messages like
WARNING level 1 in thorn CarpetIOHDF5 processor 21 host
c312-313.ls4.tacc.utexas.edu
(line 640 of
/work/00920/tg459479/Cactus/arrangements/Carpet/CarpetIOHDF5/src/Input.cc):
-> Variable AHFINDERDIRECT::ahmask on rl 0 and tl 0 not read completely.
Will have to look for it in other files
I expect this, this is not an error and not really something to warn
about. I acknowledge that this might have been introduced when recovering
using the same number of processors was a problem and caused reading all
files, but I don't think this is an issue anymore.
I propose to change the warnlevel for this message to CCTK_WARN_DEBUG(4).
In addition it would be good to have _one_ separate message with level
CCTK_WARN_PICKY(3) if any variable/reflevel/timelevel could not be read
completely (but not one for each of these), ideally only once for all
processors. This would not clutter the output of the default simfactory
runs (-L 3) too much, but would indicate that this happened - and in case
this is a problem it's easy to enable -L 4.
--
Ticket URL: <https://trac.einsteintoolkit.org/ticket/550>
Einstein Toolkit <http://einsteintoolkit.org>
The Einstein Toolkit
#855: CCTK_TraverseString should be documented
-------------------------+--------------------------------------------------
Reporter: hinder | Owner:
Type: enhancement | Status: new
Priority: minor | Milestone:
Component: Cactus | Version:
Keywords: |
-------------------------+--------------------------------------------------
CCTK_TraverseString should be documented
--
Ticket URL: <https://trac.einsteintoolkit.org/ticket/855>
Einstein Toolkit <http://einsteintoolkit.org>
The Einstein Toolkit
#634: Riemann1D fails to compile on Kraken
-----------------------------------+----------------------------------------
Reporter: hinder | Owner:
Type: defect | Status: new
Priority: minor | Milestone:
Component: EinsteinToolkit thorn | Version:
Keywords: GRHydro |
-----------------------------------+----------------------------------------
I'm unable to compile the Riemann1D utility on Kraken. It gives the
following error message.
{{{
Creating Riemann1d in /nics/d/home/hinder/Cactus/EinsteinToolkit/exe/sim
from
/nics/d/home/hinder/Cactus/EinsteinToolkit/configs/sim/build/GRHydro/Riemann1d.o
/nics/d/home/hinder/Cactus/EinsteinToolkit/configs/sim/build/GRHydro/Riemann1d.o:
In function `riemann1d':
/nics/d/home/hinder/Cactus/EinsteinToolkit/arrangements/EinsteinEvolve/GRHydro/src/util/Riemann1d.f90:10:
undefined reference to `__kmpc_begin'
/nics/d/home/hinder/Cactus/EinsteinToolkit/arrangements/EinsteinEvolve/GRHydro/src/util/Riemann1d.f90:374:
undefined reference to `__kmpc_end'
/usr/bin/ld: link errors found, deleting executable
`/nics/d/home/hinder/Cactus/EinsteinToolkit/exe/sim/Riemann1d'
make[1]: ***
[/nics/d/home/hinder/Cactus/EinsteinToolkit/exe/sim/Riemann1d] Error 1
make: *** [sim-utils] Error 2
}}}
I think that this needs an Intel library to be linked in, but I'm not sure
which one or how to add it.
--
Ticket URL: <https://trac.einsteintoolkit.org/ticket/634>
Einstein Toolkit <http://einsteintoolkit.org>
The Einstein Toolkit
#935: HTTPD can use large amounts of memory for its hash table of pages
-----------------------------------+----------------------------------------
Reporter: rhaas | Owner:
Type: defect | Status: new
Priority: minor | Milestone:
Component: EinsteinToolkit thorn | Version:
Keywords: HTTPD |
-----------------------------------+----------------------------------------
I just found that for an (stripped down!) parameter file of my production
simulations HTTPD creates a Hash table via functions in
CACTUS_HOME/src/util/Hash.c that consumes 1GB of memory (for the array of
pointers that is the top level hash table structure) to hold about 10000
entries. I am not sure if this is due to a poor choice of hashing function
(util_HashHash) or the fact that it doubles the size of the table until
the number of entries is smaller than the number of hash slots in (in
Util_HashRehash and Util_HashAdd). It was somewhat unexpected that a non-
science thorn would use that much memory.
Alternatives to use less memory might be to increase the filling factor
ie. only rehash if hash->keys > 10*hash->fill (maybe starting from some
limit of keys) or to use something like the binary tree implementation in
BinaryTree.c (but not that one since it is broken in at least two places).
I simple linear list might also be sufficient since HTTPD does not have to
be lightning fast and serve hundreds of request per second I expect.
--
Ticket URL: <https://trac.einsteintoolkit.org/ticket/935>
Einstein Toolkit <http://einsteintoolkit.org>
The Einstein Toolkit