#1548: stdout redirection in multithreading scenario
---------------------------------+------------------------------------------
Reporter: gzheng@… | Owner:
Type: defect | Status: new
Priority: major | Milestone:
Component: Cactus | Version: development version
Keywords: stdout redirection |
---------------------------------+------------------------------------------
Current stdout redirection scheme implemented in
CommandLine.c:CCTKi_CommandLineFinished() (which redirects stdout to a
file or /dev/null based on myproc) does not work on multithreaded MPI (e.g
AMPI), because it redirects all output (from all threads in a process).
That is, all MPI ranks in a process will be mistakenly directly to one
file, or if redirecting to /dev/null, there will be simply no output.
It may be possible to implement a cctk_printf function, which checks
myproc and manage the output for each thread.
--
Ticket URL: <https://trac.einsteintoolkit.org/ticket/1548>
Einstein Toolkit <http://einsteintoolkit.org>
The Einstein Toolkit
#1302: Reduce time spent in deciding not to do output.
--------------------------------------+-------------------------------------
Reporter: diener | Owner: eschnett
Type: enhancement | Status: new
Priority: major | Milestone:
Component: Carpet | Version: development version
Keywords: performance optimization |
--------------------------------------+-------------------------------------
I noticed, during some scaling tests, that for my code a significant
amount of time was spent by CarpetIOASCII, even though I only had it
activated and didn't actually request any output. The reason is that in
order to figure out whether to do output or not, there is a loop over all
grid variables and a routine (TimeToOutput) is called. In this
routine there is a check if the out_dir and out_vars parameters have been
steered and if so update some internal data structures. It should be
sufficient to do this before entering the loop over grid variables. The
same issue is present in CarpetIOScalar and CarpetIOHDF5. The attached
patches for CarpetIOASCII, CarpetIOScalar and CarpetIOHDF5 moves this
check outside of the loop over grid variables and in addition bypasses the
loop completely if the out_vars parameter string is the empty string. Note
that the code where I noticed this problem uses large vectors of 1D grid
arrays, and it turns out that Cactus counts each vector element as a
distinct grid variables and the length of the loop over grid variables in
my case was close to 100.000, which might explain why nobody has noticed
this before.
--
Ticket URL: <https://trac.einsteintoolkit.org/ticket/1302>
Einstein Toolkit <http://einsteintoolkit.org>
The Einstein Toolkit
#1554: Want to define constants in parameter files
-------------------------+--------------------------------------------------
Reporter: eschnett | Owner:
Type: enhancement | Status: new
Priority: major | Milestone:
Component: Cactus | Version: development version
Keywords: |
-------------------------+--------------------------------------------------
I would like to define constants in parameter files, such as:
{{{
$rho = 1
grid::dx = 1.0/$rho
IOASCII::out_every = 10*$rho
}}}
The expansion of expressions is already implemented, but is limited to
parameters. Being able to define constants would be very cool.
--
Ticket URL: <https://trac.einsteintoolkit.org/ticket/1554>
Einstein Toolkit <http://einsteintoolkit.org>
The Einstein Toolkit
#1597: use gsissh when connecting to bluewaters
-------------------------+--------------------------------------------------
Reporter: rhaas | Owner: eschnett
Type: enhancement | Status: new
Priority: major | Milestone:
Component: SimFactory | Version: development version
Keywords: |
-------------------------+--------------------------------------------------
the attached patch copies functionality from kraken.ini to use in
bluewaters.ini and to have it use a myproxy instance to avoid having to
enter the password each time one connects to bluewaters.
--
Ticket URL: <https://trac.einsteintoolkit.org/ticket/1597>
Einstein Toolkit <http://einsteintoolkit.org>
The Einstein Toolkit
#1468: Building a configuration with just the MPI thorn fails
----------------------+-----------------------------------------------------
Reporter: hinder | Owner:
Type: defect | Status: new
Priority: optional | Milestone:
Component: Cactus | Version: development version
Keywords: |
----------------------+-----------------------------------------------------
If I build a Cactus configuration with a thornlist containing just the MPI
thorn (i.e no driver or any other thorns), the compilation fails with
{{{
COMPILING /Users/ian/Cactus/EinsteinToolkit/src/comm/CactusDefaultComm.c
In file included from
/Users/ian/Cactus/EinsteinToolkit/configs/mpitest/build/Cactus/comm/CactusDefaultComm.c:33:
/opt/local/include/openmpi/mpi.h:367: error: wrong number of arguments
specified for ‘__deprecated__’ attribute
}}}
Building the flesh without the MPI thorn works OK. This is on Mac OS with
MPI from MacPorts.
--
Ticket URL: <https://trac.einsteintoolkit.org/ticket/1468>
Einstein Toolkit <http://einsteintoolkit.org>
The Einstein Toolkit
#1546: LoopControl commit e0ddb732 contains Fortran 2003 code
--------------------+-------------------------------------------------------
Reporter: rhaas | Owner: eschnett
Type: defect | Status: new
Priority: minor | Milestone:
Component: Carpet | Version: development version
Keywords: |
--------------------+-------------------------------------------------------
commit e0ddb732 "LoopControl: Rewrite" from Wed Jan 16 14:46:17 2013 -0500
introduces Fortran 2003 features (namely {{{bind(C)}}} in
loopcontrol_types.F90.
This fails to compile with gfortran 4.1.2 (the default gfortran on RH 5
machines, which are still around). David Radice stumbled oppon this.
We had 2003 code in Carpet before, in ticket #670. At that point we
modified the code to compile with gfortran 4.1.2 and removed the advanced
features. Since gfortran 4.1.2 is by now 4 years old and none of our
production option lists show the problem, I think we are finally ready to
use some F2003 features in the code.
We should then document this in the release notes, either for Cactus if we
want to make this choice system wide or only for the ET/Carpet if we want
to support running eg PUGH with only F90 around. We already require C99 in
the Cactus flesh.
Possibly we should take this discussion to cactus-devel.
--
Ticket URL: <https://trac.einsteintoolkit.org/ticket/1546>
Einstein Toolkit <http://einsteintoolkit.org>
The Einstein Toolkit
#1373: GRHydro::tov_slowsector test fails in ET_2013_05
-----------------------------------+----------------------------------------
Reporter: rhaas | Owner:
Type: defect | Status: new
Priority: minor | Milestone:
Component: EinsteinToolkit thorn | Version:
Keywords: GRHydro |
-----------------------------------+----------------------------------------
Most likely due to intel vs. gcc compiler issues. This ticket to serve as
a reminder to fix this and to collect information known about this issue.
--
Ticket URL: <https://trac.einsteintoolkit.org/ticket/1373>
Einstein Toolkit <http://einsteintoolkit.org>
The Einstein Toolkit
#1378: provide equivalent of fprintf(stderr, "%s\n", msg) in Fortran
-------------------------+--------------------------------------------------
Reporter: rhaas | Owner:
Type: enhancement | Status: new
Priority: minor | Milestone:
Component: Cactus | Version: development version
Keywords: |
-------------------------+--------------------------------------------------
Currently to write out multi-line error messages in Fortran we use
multiple calls to CCTK_WARN(1, warnline) followed possibly by a
CCTK_ERROR(errline). Each of the level 1 warnings (given certain settings
of the Cactus parameters) prints the source file location and other
information to screen, thus cluttering the error output. A typical error
message might look like this:
{{{
WARNING level 1 in thorn GRHydro processor 179 host nid03278
(line 386 of GRHydro_Prim2Con.F90):
-> EOS error in prim2con_hot:
WARNING level 1 in thorn GRHydro processor 179 host nid03278
(line 388 of GRHydro_Prim2Con.F90):
-> 64897 22 37 31 -1.440000E+00 -8.496000E+01 -1.296000E+01
8.595485E+01
WARNING level 1 in thorn GRHydro processor 179 host nid03278
(line 390 of GRHydro_Prim2Con.F90):
-> 1.228064E-09 -8.644951E-03 -5.842300E-01 4.789413E-01
WARNING level 1 in thorn GRHydro processor 179 host nid03278
(line 392 of GRHydro_Prim2Con.F90):
-> code: 106
WARNING level 1 in thorn GRHydro processor 179 host nid03278
(line 394 of GRHydro_Prim2Con.F90):
-> reflevel: 0
WARNING level 1 in thorn GRHydro processor 179 host nid03278
(line 386 of GRHydro_Prim2Con.F90):
-> EOS error in prim2con_hot:
WARNING level 1 in thorn GRHydro processor 179 host nid03278
(line 388 of GRHydro_Prim2Con.F90):
-> 64897 23 37 31 1.440000E+00 -8.496000E+01 -1.296000E+01
8.595485E+01
WARNING level 1 in thorn GRHydro processor 179 host nid03278
(line 390 of GRHydro_Prim2Con.F90):
-> 1.227982E-09 -8.644755E-03 -5.798389E-01 4.789407E-01
WARNING level 1 in thorn GRHydro processor 179 host nid03278
(line 392 of GRHydro_Prim2Con.F90):
-> code: 106
WARNING level 1 in thorn GRHydro processor 179 host nid03278
(line 394 of GRHydro_Prim2Con.F90):
-> reflevel: 0
WARNING level 1 in thorn GRHydro processor 179 host nid03278
(line 166 of GRHydro_Eigenproblem.F90):
-> EOS ERROR in eigenvalues_hot
WARNING level 1 in thorn GRHydro processor 179 host nid03278
(line 168 of GRHydro_Eigenproblem.F90):
-> keyerr: 668 keytemp: 0
WARNING level 0 in thorn GRHydro processor 179 host nid03278
(line 170 of GRHydro_Eigenproblem.F90):
-> 1.228064E-09 -8.644951E-03 -5.842300E-01 4.789413E-01
5.668696E-04
cactus_sim:
Cactus/arrangements/Carpet/Carpet/src/helpers.cc:314:
int Carpet::Abort(const cGH*, int): Assertion `0' failed.
Rank 179 with PID 13388 received signal 6
}}}
with errors from multiple MPI processes possibly intersecting each other.
It would be useful to provide a subroutine equivalent to
{{{
subroutine CCTK_WARN_SHORT(msg)
character*(*) :: msg
write (stderr,'(a)') msg
end subroutine
}}}
(name is up for discussion) that outputs only "msg" to stderr (and the
warning listener registered in the flesh) without prepending the file
information output.
A similar routine might be offered for C (in WARN and VWarn flavors) both
for symmetry reasons and to have the message pass the warning listeners,
though in C one can usually get away with a single CCTK_VWarn and a very
long format string.
--
Ticket URL: <https://trac.einsteintoolkit.org/ticket/1378>
Einstein Toolkit <http://einsteintoolkit.org>
The Einstein Toolkit
#1551: Strange warnings at startup
----------------------+-----------------------------------------------------
Reporter: eschnett | Owner:
Type: defect | Status: new
Priority: minor | Milestone:
Component: Cactus | Version: development version
Keywords: |
----------------------+-----------------------------------------------------
I see this warning multiple times at startup on Blue Waters:
{{{
^[[1mWARNING[L1,P0] (Flesh):^[[0m Invalid end
}}}
This is apparently output by the routine Util_IntInRange or
Util_DoubleInRange. This happens for the parameter file
simfactory/etc/parfiles/submit.par.
--
Ticket URL: <https://trac.einsteintoolkit.org/ticket/1551>
Einstein Toolkit <http://einsteintoolkit.org>
The Einstein Toolkit