#834: Provide access to CarpetLib timers
-------------------------+--------------------------------------------------
Reporter: hinder | Owner: eschnett
Type: enhancement | Status: new
Priority: major | Milestone:
Component: Carpet | Version:
Keywords: |
-------------------------+--------------------------------------------------
CarpetLib has several internal timers which contain useful information. I
would like to make this more accessible to the user. Currently, these
timers can be output by setting
CarpetLib::print_timestats_every = 1
and the timer output is written to files called
carpetlib-timing-statistics.NNNN.txt
This file is in a nonstandard format, contains lots of information, and is
difficult to interpret. It is also not realistic to have this output
enabled routinely in production simulations because there is one file per
process, which leads to large numbers of output files when running with
large numbers of processes. There is also no way currently to reduce the
information into a min/max/average, which is what we really care about
most of the time.
Cactus already has the ability to do the above if the timer values are
stored in grid arrays. I propose that CarpetLib should define some grid
arrays similar to those currently defined in Carpet for its timers. For
example,
{{{
CCTK_REAL timing TYPE=array DIM=1 SIZE=1 DISTRIB=constant
TAGS='checkpoint="no"'
{
sent_bytes_count
sent_bytes_per_second
received_bytes_count
received_bytes_per_second
comm_time
} "Per-processor timing information"
}}}
sent_bytes_count should come from commit_send_space::isend.
received_bytes_count should come from commstate::sizes_irecv. comm_time
should come from commstate::step. (Aside: Erik mentioned that the
hierarchy of these timer names is incorrect; this should be fixed.)
My aim is to be able to compare sent_bytes_per_second and
received_bytes_per_second with the advertised bandwidth of the
interconnect. For example, our own cluster has 5 GB/s full-duplex
bandwidth. I would like to display reductions of these variables on
standard output using CarpetIOBasic, and store these reductions in output
files using CarpetIOScalar. This allows me to see very easily whether the
communication is making efficient use of the hardware.
The timers I mentioned above would tell us about the actual time to
transmit data (or at least, as close as I can find), but does not include
any overheads introduced by processing the data before giving it to MPI.
We probably want to expose the overheads times as well.
When should these variables be updated from the CarpetLib timers? At what
point in the schedule, and how frequently?
How should the rates (sent_bytes_per_second etc) be computed? Carpet uses
a decaying average algorithm to compute its speeds. Does it make sense to
do something similar here?
Does it make sense to separate sent_bytes_per_second and
received_bytes_per_second, given that we only have the combined
communication time available?
It would probably also be useful to measure latency. Would
commstate::step:cnt be the correct number to measure, and if so, how
should this be expressed?
Does it make sense to provide these values in CarpetLib, or should Carpet
provide the infrastructure itself and get the information from the
CarpetLib timers?
--
Ticket URL: <https://trac.einsteintoolkit.org/ticket/834>
Einstein Toolkit <http://einsteintoolkit.org>
The Einstein Toolkit
#828: num-threads set in the machine files is never used as default value
------------------------+---------------------------------------------------
Reporter: alibeck | Owner: eschnett
Type: defect | Status: new
Priority: minor | Milestone:
Component: SimFactory | Version: ET_2011_05
Keywords: |
------------------------+---------------------------------------------------
If I set in a mdb/machine ini file
num-threads = xx
this value is never used e.g. as @NUM_THREADS@ in a SubmitScript or a
RunScript, if --num-threads is not set on the command line. Instead of
this, always a value of 1 is used as default.
Of course this might make sense, if we want to set no OpenMP as default,
but then is does ot make sense to set num-threads to a value different of
1 in the machines ini file, or even more, it does not make sense to set
num-threads to anything in the machines ini files.
--
Ticket URL: <https://trac.einsteintoolkit.org/ticket/828>
Einstein Toolkit <http://einsteintoolkit.org>
The Einstein Toolkit
#822: Provide generic output routines
-----------------------------------+----------------------------------------
Reporter: eschnett | Owner:
Type: enhancement | Status: new
Priority: major | Milestone:
Component: EinsteinToolkit thorn | Version:
Keywords: |
-----------------------------------+----------------------------------------
Cactus should provide generic output routines. These would output groups
of arrays, not necessarily grid functions, in multiple columns per file.
Such routines would be convenient in many cases, and would remove the need
for specialized output routines that are currently found in many thorns
(AH finders, spheres, multipoles, etc.).
--
Ticket URL: <https://trac.einsteintoolkit.org/ticket/822>
Einstein Toolkit <http://einsteintoolkit.org>
The Einstein Toolkit
#752: GetComponents hangs when "svn info" reports a certificate warning
---------------------------+------------------------------------------------
Reporter: hinder | Owner: eric9
Type: defect | Status: new
Priority: major | Milestone:
Component: GetComponents | Version:
Keywords: |
---------------------------+------------------------------------------------
This is similar to, but not the same as, #135. The problem is that
GetComponents runs "svn info" on a repository with https where SVN thinks
the certificate is not valid:
{{{
MacBook-2:manifest (master) $ svn info --username hinder
https://svn.cactuscode.org/arrangements/CactusNumerical/MoL/device
Error validating server certificate for 'https://svn.cactuscode.org:443':
- The certificate is not issued by a trusted authority. Use the
fingerprint to validate the certificate manually!
Certificate information:
- Hostname: svn.cactuscode.org
- Valid: from Thu, 05 Jan 2012 21:31:52 GMT until Fri, 04 Jan 2013
21:31:52 GMT
- Issuer: lsu, edu
- Fingerprint:
d1:ea:8a:9a:a8:7d:a5:15:7a:56:22:27:99:30:96:d7:e4:38:0e:53
(R)eject, accept (t)emporarily or accept (p)ermanently?
}}}
This causes GetComponents to hang permanently with no indication of what
is wrong. The solution to #135 was to add --non-interactive to the "svn
update" command, and "svn info" also supports such an option. Should it
be added here as well?
--
Ticket URL: <https://trac.einsteintoolkit.org/ticket/752>
Einstein Toolkit <http://einsteintoolkit.org>
The Einstein Toolkit
#830: problem connencting with svn.cct.lsu.edu
--------------------------------------+-------------------------------------
Reporter: daniel.siegel@… | Type: defect
Status: new | Priority: major
Milestone: | Component: Other
Version: | Keywords: server
--------------------------------------+-------------------------------------
Hello,
we tried to download thorns like the ones listed below -- without success.
We cannot connect from within the AEI network (login-damiana.aei.mpg.de).
We have experienced the problem for a few days now.
Regards,
Daniel Siegel
-----------------------------------------------------------------
Checking out module: LSUThorns/Vectors
from repository:
https://svn.cct.lsu.edu/repos/numrel/LSUThorns/Vectors/branches/ET_2011_10
into: Cactus/arrangements
Warning: Could not checkout module LSUThorns/Vectors
-----------------------------------------------------------------
--
Ticket URL: <https://trac.einsteintoolkit.org/ticket/830>
Einstein Toolkit <http://einsteintoolkit.org>
The Einstein Toolkit
#807: dependenct problem with standard hdf5 tools within HDF5 thorn
--------------------+-------------------------------------------------------
Reporter: knarf | Owner: eschnett
Type: defect | Status: new
Priority: major | Milestone: ET_2012_05
Component: Carpet | Version:
Keywords: |
--------------------+-------------------------------------------------------
Currently the utils-build target depends on the standard hdf5 tools being
build using the HDF5 thorn. However, when using an external library those
tools are not present and 'make' presents the user with an unresolved
build dependency error. We should probably remove binaries which are not
always built from the make.configuration.defn file:
ALL_UTILS += gif2h5 h52gif h5copy h5debug h5diff h5dump h5import h5jam
h5ls h5mkgrp h5perf_serial h5redeploy h5repack h5repart h5stat h5unjam
This would however, prevent binaries built by Cactus from being copied to
the exe/NAME/ directory. Any ideas how to solve this? Copy them inside the
build script maybe?
--
Ticket URL: <https://trac.einsteintoolkit.org/ticket/807>
Einstein Toolkit <http://einsteintoolkit.org>
The Einstein Toolkit
#826: cannot log into Wiki
-------------------------------------+--------------------------------------
Reporter: rhaas | Owner:
Type: defect | Status: new
Priority: minor | Milestone:
Component: EinsteinToolkit website | Version:
Keywords: |
-------------------------------------+--------------------------------------
I seem to be unable to log into the wiki (Trac works with the same
usename/password).
--
Ticket URL: <https://trac.einsteintoolkit.org/ticket/826>
Einstein Toolkit <http://einsteintoolkit.org>
The Einstein Toolkit
#817: add function to flesh to query name of currently executing function
-------------------------+--------------------------------------------------
Reporter: rhaas | Owner:
Type: enhancement | Status: new
Priority: minor | Milestone:
Component: Cactus | Version:
Keywords: |
-------------------------+--------------------------------------------------
It would be nice if there was a function:
{{{
#include <cctk.h>
const cFunctionData * CCTK_QueryScheduledFunction(const cGH * cctkGH);
const cFunctionData * func = QueryScheduledFunction(cctkGH);
printf("Currently running: %s::%s\n", func->thorn, func->routine);
}}}
to find the function most recently called via CCTK_CallFunction. In the
simplest implementation CCTK_CallFunction() (in main/ScheduleInterface.c)
would simply store its {{{attribute}}} arguement in a global variable for
later retrieval. A more complete implementation might have stack of called
functions (in case CallFunction can be called recurively) or store the
information in cctkGH (though CallFunction does not take cctkGH as an
argument).
I currently have a hacked version of the first option running to find out
who is calling CarpetReduce in local mode. BUt it might be useful also in
eg. the interpolator calls (as in "AEILocalInterpolator: point foo out of
bounds").
--
Ticket URL: <https://trac.einsteintoolkit.org/ticket/817>
Einstein Toolkit <http://einsteintoolkit.org>
The Einstein Toolkit
#339: ExternalLibraries/OpenSSL does not compile in 64-bit mode on Mac OS
---------------------------------------+------------------------------------
Reporter: hinder | Owner:
Type: defect | Status: new
Priority: major | Milestone:
Component: Cactus | Version:
Keywords: ExternalLibraries/OpenSSL |
---------------------------------------+------------------------------------
Compiling OpenSSL using ExternalLibraries leads to the following warning,
followed by a build failure:
+ cd openssl-1.0.0d
+ ./config
--prefix=/Users/ian/Cactus/et/configs/fink/scratch/external/OpenSSL
Operating system: i686-apple-darwinDarwin Kernel Version 10.6.0: Wed Nov
10 18:13:17 PST 2010; root:xnu-1504.9.26~3/RELEASE_I386
WARNING! If you wish to build 64-bit library, then you have to
invoke './Configure darwin64-x86_64-cc' *manually*.
You have about 5 seconds to press Ctrl-C to abort.
Configuring for darwin-i386-cc
I don't know how to detect that the compiler is building in 64-bit mode in
order to add the corresponding flag to the Configure line.
--
Ticket URL: <https://trac.einsteintoolkit.org/ticket/339>
Einstein Toolkit <http://einsteintoolkit.org>
The Einstein Toolkit