#1865: Automatically start SystemTopology
---------------------------------+------------------------------------------
Reporter: dradice@… | Owner: eschnett
Type: enhancement | Status: new
Priority: major | Milestone:
Component: Carpet | Version: development version
Keywords: |
---------------------------------+------------------------------------------
Carpet used to load hwloc automatically and that would set thread
affinities. Now this functionality is in the SystemTopology thorn, which
is not automatically activated. This change could result in a significant
performance regression on some systems (see discussion in #1850).
Would it make sense to activate SystemTopology automatically?
--
Ticket URL: <https://trac.einsteintoolkit.org/ticket/1865>
Einstein Toolkit <http://einsteintoolkit.org>
The Einstein Toolkit
#1932: ML_BSSN: other_timelevels Parameter Not Respected
--------------------------------+-------------------------------------------
Reporter: zachetie@… | Owner:
Type: defect | Status: new
Priority: major | Milestone:
Component: Other | Version: development version
Keywords: |
--------------------------------+-------------------------------------------
At the Jun 27, 2016 ET telecon, we found the following bug in
McLachlan/ML_BSSN:
Inside the ET_2016_05 ML_BSSN/schedule.ccl, you'll notice the following
lines:
STORAGE: ML_Ham[timelevels]
STORAGE: ML_mom[timelevels]
STORAGE: ML_cons_detg[timelevels]
STORAGE: ML_cons_Gamma[timelevels]
STORAGE: ML_cons_traceA[timelevels]
in all of these lines, "timelevels" should be replaced by
"other_timelevels".
This should result in significantly increased memory usage in the latest
ML_BSSN (possibly at the 10-20% level), particularly in vacuum evolutions.
Related to this problem, I noticed that in a previous version of McLachlan
(2015_05, where the above issue does not exist), all constraints are being
stored in checkpoint files, despite having only one timelevel.
ML_BSSN_Helper is supposed to overwrite the ML_BSSN/interface.ccl request
to set the Checkpoint="no" tag.
--
Ticket URL: <https://trac.einsteintoolkit.org/ticket/1932>
Einstein Toolkit <http://einsteintoolkit.org>
The Einstein Toolkit
#1816: segfaults on 64bit systems when build with c99
--------------------------------+-------------------------------------------
Reporter: physik@… | Owner:
Type: defect | Status: new
Priority: unset | Milestone:
Component: Cactus | Version: ET_2014_05
Keywords: |
--------------------------------+-------------------------------------------
I recently encountered a segfault in ScheduleInterface.c, more precisely
in the function
static int CCTKi_ScheduleCallFunction(void *function,
t_attribute *attribute,
t_sched_data *data)
{
/* find the timer for this function and this schedule bin */
t_timer *timer = attribute->timers;
while (timer && strcmp(timer->schedule_bin, data->schedule_bin))
{
timer = timer->next;
}
Running in the debugger revealed that timer->schedule_bin pointed to an
invalid address. Curiously, it had the top 33 (33 not a typo) bits all
set. Taking the lowest 32 bits gave a valid address which pointed to a
reasonable string "CCTK_INITIAL". This suggests a 32/64 bit issue. The
pointer timer->schedule_bin seems to be initialized in the same function
using strdup:
timer->schedule_bin = strdup (where);
strdup is not part of the c99 standard, but only Posix. Compiling with gcc
--std=c99 means it is not defined in <string.h>. This means the compiler
treats the occurrence of strdup as an implicit function declaration, and
assumes it returns int.
Thus, it will do an implicit conversion of the result from int to char*.
If the highest bit of the int was set, this resulted in a 64 bit pointer
with all 32 high bits set (I checked with a small test code).
When the address returned by the actual strdup code linked from glibc has
the top 33 bits zero, the conversion yields the correct results.
Therefore, the problem is hard to reproduce, it only occurred with a test
case almost exhausting my workstations memory, but frustratingly not small
tests.
After this, I also found compiler warnings for ScheduleInterface.c of the
type
implicit declaration of function ‘strdup’ [-Wimplicit-function-
declaration]
and
assignment makes pointer from integer without a cast [-Wint-conversion]
Switching from --std=c99 to --std=gnu99 fixed the problem for now.
However, this is a bug that might affect many users since the code
compiles with --std=c99 and the compiler warnings are hidden within the
thousands of other compiler warnings the ET code generates.
Also, a quick grep revealed many occurrences of strdup, although some of
them where redefined as Util_Strdup. The rest might lead to segfaults on
64 bit systems with std=c99.
My findings concern the Wheeler release, I haven't had time to check the
development version.
--
Ticket URL: <https://trac.einsteintoolkit.org/ticket/1816>
Einstein Toolkit <http://einsteintoolkit.org>
The Einstein Toolkit
#1926: remove CACHELINE_BYTES and CACHE_SIZE from flesh
-------------------------+--------------------------------------------------
Reporter: knarf | Owner:
Type: enhancement | Status: new
Priority: optional | Milestone:
Component: Cactus | Version: development version
Keywords: |
-------------------------+--------------------------------------------------
Nothing in Cactus uses these variables, and in some cases they are best
guesses only. Also, as of 2fb3e32532bbe70121559d582d96b3c300c95276 (Erik
Schnetter, Thu Jan 15 12:57:04 2015 -0500), Cactus (the flesh) lost it's
ability to overwrite these variables via parameters. Thus, this is a
little clean-up within the flesh.
Pull request: https://bitbucket.org/cactuscode/cactus/pull-requests/25
/remove-cacheline_bytes-and-cache_size-from/diff
--
Ticket URL: <https://trac.einsteintoolkit.org/ticket/1926>
Einstein Toolkit <http://einsteintoolkit.org>
The Einstein Toolkit
#1791: Allow aligning the interior of grid functions in looping macros
-------------------------+--------------------------------------------------
Reporter: eschnett | Owner:
Type: enhancement | Status: new
Priority: minor | Milestone:
Component: Cactus | Version: development version
Keywords: |
-------------------------+--------------------------------------------------
Currently, when grid functions are aligned, Cactus expects their origin to
be aligned. These changes update the looping macros to allow aligning the
interior of grid functions instead.
Whether and how grid functions are aligned is still determined by the
driver -- this only makes it possible to still use the looping macros in
this case.
Implemented in <https://bitbucket.org/cactuscode/cactus/pull-request/16
/allow-aligning-the-interior-of-grid/diff> and
<https://bitbucket.org/cactuscode/cactustest/pull-request/1/allow-
aligning-the-interior-of-grid/diff>.
--
Ticket URL: <https://trac.einsteintoolkit.org/ticket/1791>
Einstein Toolkit <http://einsteintoolkit.org>
The Einstein Toolkit
#1913: Cactus shouldn't use 'u' within ARFLAGS
--------------------+-------------------------------------------------------
Reporter: knarf | Owner:
Type: defect | Status: new
Priority: major | Milestone: ET_2016_11
Component: Cactus | Version: development version
Keywords: |
--------------------+-------------------------------------------------------
configure.in specifies 'u' (among other flags) in ARFLAGS, but shouldn't,
as can lead to build failures and is in general not a good default.
See #1902 for a discussion (where it was fixed using a workaround in
PETSc).
--
Ticket URL: <https://trac.einsteintoolkit.org/ticket/1913>
Einstein Toolkit <http://einsteintoolkit.org>
The Einstein Toolkit
#1858: CarpetLib: "balanced" recomposition fix
----------------------+-----------------------------------------------------
Reporter: knarf | Owner: eschnett
Type: defect | Status: new
Priority: optional | Milestone:
Component: Carpet | Version: development version
Keywords: |
----------------------+-----------------------------------------------------
This pull request fixes some things that I believe are broken for this
algorithm. I am not claiming that it now works correctly, but it works
'more correct' this way.
I came across these issues while looking at some of the implemented
recomposition algos, but will not use this particular one in the future.
However, I think it might be useful for someone else, so here it is.
https://bitbucket.org/eschnett/carpet/pull-requests/10/recompose-balance-
partial-fix/diff
--
Ticket URL: <https://trac.einsteintoolkit.org/ticket/1858>
Einstein Toolkit <http://einsteintoolkit.org>
The Einstein Toolkit
#1657: ExternalThorns/pciutils ignores most option list options
-----------------------------------+----------------------------------------
Reporter: rhaas | Owner:
Type: defect | Status: new
Priority: major | Milestone:
Component: EinsteinToolkit thorn | Version: development version
Keywords: pciutils |
-----------------------------------+----------------------------------------
It does not contain a configure script and its Makefile hard-codes the
compiler and linker to be gcc. This is an issue if LDFLAGS (or CFLAGS
possibly) contain {{{-openmp}}} like they do when using the intel
compiler. Also using mkl could (should) be done with the {{{-mkl}}} switch
to the intel compiler but gcc (as used in pciutils) will naturally not
accept this.
--
Ticket URL: <https://trac.einsteintoolkit.org/ticket/1657>
Einstein Toolkit <http://einsteintoolkit.org>
The Einstein Toolkit
#1924: piraha contains code for expanding arbitrary variables
-------------------------+--------------------------------------------------
Reporter: rhaas | Owner:
Type: enhancement | Status: new
Priority: optional | Milestone:
Component: Cactus | Version: development version
Keywords: Piraha |
-------------------------+--------------------------------------------------
line 369 of piraha's Call.cc contains code:
{{{
nm_iter iter = variables.find(gr->group(0)->substring());
if(iter != variables.end()) {
ret = iter->second;
}
}}}
that would seem to allow arbitrary variable names to be expanded to
values. However piraha does not let me assign values to these variables
anymore as the only allowed assignments are "ActiveThorns = ..." and
"thorn::par = ...".
So either there is code to support no longer allowed operations or there
is a lack of documentation on how to set variable values for later use by
{{{$varname}}}.
--
Ticket URL: <https://trac.einsteintoolkit.org/ticket/1924>
Einstein Toolkit <http://einsteintoolkit.org>
The Einstein Toolkit