| Commit message (Collapse) | Author | Age |
|
|
|
|
| |
this function effectively exposes the CarpetLib parameter to Carpet
without explicit parameter sharing
|
|
|
|
|
|
| |
Use set instead of list to store registered gh, dh, th, gf, data.
Do not store an iterator as handle for de-registering.
This corrects some memory corruption with the Intel compiler; the previous code may have been illegal.
|
|
|
|
| |
Replace calls to abs() with floating arguments by calls to fabs(), to ensure the results are not accidentally truncated to integer.
|
| |
|
| |
|
|
|
|
|
| |
Rewrite padding infrastructure.
Add padded array extents to transport operator APIs.
|
| |
|
| |
|
| |
|
|\ |
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Re-organise some of the internal details of refluxing. Refluxing
requires restricting fluxes from fine to coarse grids. Previously,
Carpet would internally store bounding boxes that were offset by 1/2
grid point, and adjust (correct) these boxes in various places in a
rather ad-hoc manner. This is now cleaned up.
Remove the (unused) "accumulate" operator, and the (unused)
"accumulate" prolongation type.
|
|/
|
|
|
|
|
|
| |
single-precision
---
Carpet/Carpet/src/Timing.cc | 2 +-
Carpet/CarpetLib/src/gdata.cc | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
|
|
|
|
|
|
|
| |
Extend API of grid operators and of gdata::copy_from,
gdata::transfer_from to allow hyperslabbing
Implement hyperslabbing in copy_3d.cc
|
|
|
|
|
|
|
|
|
| |
Introduce dist::barrier as low-level implementation of a named
barrier.
Use it in Carpet::NamedBarrier.
Use the above in almost all barrier calls.
|
| |
|
|
|
|
|
|
| |
Introduce a function gdata::allocated_memory_shape that determines from a given grid size how many grid points should be allocated. This allows adding padding to grid sizes, e.g. to improve cache performance.
Use this function when checking grid sizes.
|
|
|
|
| |
Thorn LSUThorns/NoMPI provides a fake MPI implementation that runs only on a single processor if no real MPI implementation is found.
|
|
|
|
|
|
| |
Add a new transport operator "accumulate", which accumulates ghost
zones into grid functions. (This is in a sense the opposite of regular
synchronisation, which copies grid function values into ghost zones.)
|
| |
|
| |
|
|
|
|
| |
Output grid variable name in find_source_timelevel's error messages.
|
| |
|
|
|
|
|
|
| |
When using cell centring, use first order interpolation (instead of
zeroth order interpolation), even when prolongation="copy" is
specified.
|
|
|
|
|
|
|
|
|
| |
Ignore-this: 1a389f0dd3f40a0c0edb3fdabd6e7d40
Padding grid variables means that e.g. a component of size 32x32x32 is
allocated as 33x33x33 instead, but only 32x32x32 of this storage is
used. This can improve cache performance considerably. This requires
corresponding changes to the cGH entries.
|
|
|
|
| |
Ignore-this: 309b4dd613f4af2b84aa5d6743fdb6b3
|
| |
|
|
|
|
|
|
|
| |
Output all digit for the times in the error message indicating that
there is an extrapolation in time.
darcs-hash:20080225055300-dae7b-500b168cc5b5f9c57b31c54e7ee07114062dca51.gz
|
|
|
|
|
|
|
|
|
|
| |
When passing in a pointer to mem<T>, also pass the size of the
pointed-to memory region, so that mem<T> can check that there is
enough space.
Keep track of the number of allocated bytes in mempools.
darcs-hash:20080219044528-dae7b-107edc6f696a35aad32ef6e58129b3281d00eb56.gz
|
|
|
|
| |
darcs-hash:20070419024245-dae7b-862947817fa17453aa9996920c3012ff9eda7c20.gz
|
|
|
|
|
|
|
|
|
| |
Remove outdated communication mechanisms from data<T> and gdata
classes.
Redesign communication mechanism in data<T> and gdata classes.
darcs-hash:20070419014301-dae7b-ece41543dcb1e23ab81f103b04a75880ac68807f.gz
|
|
|
|
| |
darcs-hash:20070204192255-dae7b-6088220061f07d64a163966855064f5311c1a028.gz
|
|
|
|
| |
darcs-hash:20070204191934-dae7b-8428cc85656d5eb92580f82165ef134c72fc98c9.gz
|
|
|
|
| |
darcs-hash:20070204191733-dae7b-52b09558844a134371169ab0530c3df5b030b739.gz
|
|
|
|
|
|
|
| |
Add a field "void * _storage" to the gdata class to speed up its
storage() member function.
darcs-hash:20070204175843-dae7b-644ade82e1432b82384baf64f55aeb2482032fdf.gz
|
|
|
|
|
|
|
|
|
|
|
|
| |
Implement a second timer based on Intel's rdtsc instruction, which is
much faster and much more accurate than MPI_Wtime.
Place the timer classes into the CarpetLib namespace.
Create a TimerSet class. Make the Timer class automatically register
all timers with a singleton object, removing all global variables.
darcs-hash:20070203211128-dae7b-42765e79446eda6a2337ba22cd390869055c555a.gz
|
|
|
|
|
|
|
|
| |
Define a macro AT() to index into std::vector. Depending on the macro
NDEBUG, AT() is defined either as at(), providing index checking, or
as operator[], providing no checking.
darcs-hash:20070203205854-dae7b-a1999c88c95ba12b1ee66505f712aefdd67d7e6f.gz
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Reorganise prolongation and restriction operators. This is a major
implementation change.
Most operators are now written as C++ templates instead of as Fortran
77 code. This simplifies the code, since C++ routines can be called
more easily, and they also have access to CarpetLib's high-level data
structures.
Previously, the operators combined temporal and spatial interpolation.
Now, time interpolation and space interpolation are handled
separately. This may be less efficient, but simplifies the code
significantly, since there are now N+M instead of N*M routines, for N
time interpolation and M space interpolation methods.
Remove the minmod prolongation operator, which was previously
disabled.
Add support for cell centering, using a method described by Simon
Hern, and suggested for Carpet by Ian Hawke.
darcs-hash:20070112205812-dae7b-5329795aa698e7bbc3671b1504134885dd830238.gz
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Add new parameters:
BOOLEAN interleave_communications:
Try to interleave communications with each other; each processor
begins to communicate with its 'right neighbour' in rank, instead of
with the root processor
BOOLEAN vary_tags:
Use different tags for each communication
BOOLEAN barrier_between_stages:
Add a barrier between the communication stages (slows down, but may
make timing numbers easier to interpret)
BOOLEAN combine_sends:
Send data together and in order of processor ranks
BOOLEAN reduce_mpi_waitall:
Call MPI_Waitall only for requests that are not null
BOOLEAN use_mpi_send:
Use MPI_Send instead of MPI_Isend
BOOLEAN use_mpi_ssend:
Use MPI_Ssend instead of MPI_Isend
darcs-hash:20061206165333-dae7b-8ba40bd19fb1733336e60cb7e6bfa0ebfe0d546d.gz
|
|
|
|
|
|
|
| |
Extend the CarpetLib timers so that they also count the number of
bytes transmitted in addition to the wall time.
darcs-hash:20060904020649-dae7b-7a18c2fbe2de09d662b4154a3ae2e553ad57c12b.gz
|
|
|
|
|
|
|
|
|
|
| |
Add timers for the new communication infrastructure.
Enhance the timers to also track the minimum and maximum time spent.
Add a parameter to output timing information to files.
darcs-hash:20060731152618-dae7b-1d049b2b37397610c14648078fd0ee92f252ca2a.gz
|
|
|
|
| |
darcs-hash:20060731151456-dae7b-3f905340dc34295d2e00fe58995ebc5b4d6690f7.gz
|
|
|
|
|
|
|
| |
Rename some local variables in dh.cc and gdata.cc so that their names
don't clash with global variables.
darcs-hash:20051119203248-dae7b-c371dfbf1e43fbd95577a17201d7cee45e5c8400.gz
|
|
|
|
|
|
| |
No functionality change, but this requires all callers to be changed.
darcs-hash:20051119202604-dae7b-3492487bfdc4f3d228ec57a2b2ea02116f5cb64c.gz
|
|
|
|
|
|
|
|
|
| |
The low-level routine gdata::change_processor() wasn't aware of the collective
commbuffers communication scheme. This caused problems with CarpetInterp
which still uses this function in order to communicate data. But not for long
anymore, another patch is waiting already to be pushed.
darcs-hash:20050816135442-776a0-60371ebba14505a9d402bb08a9b0696d4b3d4702.gz
|
|
|
|
|
|
|
|
|
| |
CarpetLib's comm_state class (actually, it's still just a struct) has been
extended to handle collective buffer communications for all possible C datatypes
at the same time. This makes it unnecessary for the higher-level communication
routines to loop over each individual datatype separately.
darcs-hash:20050815150023-776a0-dddc1aca7ccaebae872f9f451b2c3595cd951fed.gz
|
|
|
|
| |
darcs-hash:20050606162839-891bb-d7c2b48772dd8910ae362f0a96b34e1564f906b8.gz
|
|
|
|
|
|
|
|
| |
This fixes a bug in the collective buffers code which did call
copy_from_innerloop() even for empty boxes. The fortran routine called by
copy_from_innerloop() finally catched this bug in an assert statement.
darcs-hash:20050418170004-776a0-68fdda0131f273b80931a55d8abb5799dcf820c8.gz
|
|
|
|
| |
darcs-hash:20050606161741-891bb-4c4c528437cc24241167486f0d3295475086e3f3.gz
|
|
|
|
|
|
| |
communication code
darcs-hash:20050411144255-776a0-cfa22ce6876ff5f598d55f2da2d8b0d474c85ab0.gz
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
single components
The default communication scheme in Carpet (which does an individual send/recv
operation for each component) comes with two parameters for fine tuning:
CarpetLib::use_lightweight_buffers
CarpetLib::combine_recv_send
the defaults of which are set to use a well-tested but also slower
communication pattern (as turned out during benchmark runs).
This patch cleans up the implementation of this communication scheme so that the
fastest communication pattern (combined posting of send/recv; use of lightweight
buffers) is now always used. The above parameters therefore became obsolete
and shouldn't be used anymore in parfiles.
darcs-hash:20050526114253-776a0-780933a1539a260d74da8b92522fa2f48c714964.gz
|