| Commit message (Collapse) | Author | Age |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The new datatype region_t combines an extent (a bbox), an outer
boundary descriptor, a refinement descriptor, and a processor number:
struct region_t {
ibbox extent; // extent
b2vect outer_boundaries; // outer boundaries
b2vect refinement_boundaries; // refinement boundaries
int map; // map to which this
// region belongs
int processor; // processor number
};
These quantities are often used together, and combining them into a
single datatype simplifies the code significantly.
Adapt gh, dh, etc. to use this new datatype.
This is a major API change.
darcs-hash:20070112204130-dae7b-92cad546187b0fe499e8cfc38b2e26614a4f608c.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
|
|
|
|
|
|
|
|
|
| |
Add __attribute__((const)) and __attribute__((pure)) to vect<T>
functions where appropriate. These attributes are not active, because
it is not clear that this really improves performance, and errors
could lead to wrong code.
darcs-hash:20060731152218-dae7b-20c523f60890b2ad611157764e0b993bfb185c8d.gz
|
|
|
|
| |
darcs-hash:20061212160245-dae7b-19df81c29d911d9c77ae0aaa99ae999a0f6d27c9.gz
|
|
|
|
| |
darcs-hash:20061206165743-dae7b-00a12e7ebcf48f2f54ee439ea662ab0018485915.gz
|
|
|
|
|
|
|
|
|
| |
The new algorithm always finds the same canonical configuration of
bboxes, independent of how the bboxset is split into bboxes. There is
no guarantee that the new representation uses the minimum number of
bboxes, since that would be too difficult.
darcs-hash:20061205211342-dae7b-2eee2ac16cea06b3ee4fc623deb086d380d5ed37.gz
|
|
|
|
|
|
|
|
|
|
|
| |
Correc the way in which it is determined which points are boundary
prolongated and which are synchronised.
For this, introduce a new field "owned" to the dh class that
determines which grid points a processor owns for interprocessor
communication.
darcs-hash:20061113214128-dae7b-34a520f7e461173d0042acde68cb48cd670b167a.gz
|
|
|
|
|
|
| |
Correct serious error in determining whether a grid structure changed.
darcs-hash:20060928033543-dae7b-950620f6f66b1708929e1432d9158d2354ebe41e.gz
|
|
|
|
|
|
|
| |
Avoid nans in timer output; instead of dividing by zero, set the
result to zero.
darcs-hash:20060925214858-dae7b-0c82bb1a3dc1a3080955b86324487e4a7efc044e.gz
|
|
|
|
|
|
| |
Add more timers, one timer for each kind of prolongation operator.
darcs-hash:20060925214744-dae7b-00f47d74c2cdccdd8d5ee05a88973543116678e9.gz
|
|
|
|
|
|
|
| |
When recomposing a refinement level level of the grid hierarchy,
return whether the level's structure changed.
darcs-hash:20060925214438-dae7b-e204a6fffdccc3f900b72a3e5ae82f84f0ee5d8e.gz
|
|
|
|
| |
darcs-hash:20060925214246-dae7b-1d3ad6e009dcaa1654644808d762af545c597766.gz
|
|
|
|
| |
darcs-hash:20060925214157-dae7b-e963052677829366ed96876a2bf7043d3d71ebf9.gz
|
|
|
|
| |
darcs-hash:20060925214029-dae7b-9d9d5a3fec2f33f85f739bd850f156ab4c4151b7.gz
|
|
|
|
|
|
|
|
| |
Write the CarpetLib timer output to files instead of to screen; the
output is lengthy, difficult to interpret, and output from all
processors is needed.
darcs-hash:20060911025609-dae7b-c1d812ae44dfdb3f8e8daae09f06a8ed3476e73f.gz
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Split recompose functions into two stages, regrid and recompose. The
first stage, regrid, changes the grid structure in the gh and dh
classes. The second stage, recompose, changes the values of the
actual grid functions, i.e., changes the gf<T> and data<T> objects.
The second stage has to be called individually for every refinement
level.
This is necessary since the boundary conditions need to be applied
after recomposing one refinement level, before the next fine
refinement level can be recomposed.
darcs-hash:20060904230433-dae7b-3ba1982460f57b34da11a6fbb6b4b524dc5b348f.gz
|
|
|
|
|
|
| |
Correct errors in array index checking code for the copy operators.
darcs-hash:20060925213952-dae7b-632a2159ea9f676e88ec4e27d16d2c5134b09f4f.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
|
|
|
|
|
|
|
| |
When CarpetLib::poison_new_memory is set, poison communications
buffers as well.
darcs-hash:20060904020453-dae7b-762dfc46dcaea77cdff48fcd5e63805bf14e6dc0.gz
|
|
|
|
| |
darcs-hash:20060904020213-dae7b-778fdfeb662280630d1c5af50fcedde2a78e9137.gz
|
|
|
|
| |
darcs-hash:20060904020202-dae7b-b02b1eb0b44431d2b0e31840ac8bd8f000ac1514.gz
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
compiler flags
Carpet is _almost_ entirely written in C, C++, and Fortran 77, but
there are a few Fortran 90 files in CarpetLib defining the ENO and
WENO prolongation operators. This patch allows Carpet to be compiled
without a Fortran 90 compiler if these (ENO/WENO) operators are not
needed, by defining the C preprocessor symbol OMIT_F90. For example,
you could do this by putting
CFLAGS=-DOMIT_F90
CXXFLAGS=-DOMIT_F90
F77FLAGS=-DOMIT_F90
F90FLAGS=-DOMIT_F90
in a ~/.cactus/config file.
I emphasize that in the default case, where OMIT_F90 is not defined,
this patch is a no-op: the ENO and WENO prolongation operators are still
defined, a Fortran 90 compiler is still needed to compile CarpetLib, you
still pass go, you still collect $200. :) This patch only changes the
behavior of Carpet in the non-default case where OMIT_F90 is defined.
darcs-hash:20060829170502-b0a3f-0d423f190bd7388faa9e1a6e0a980694b044516b.gz
|
|
|
|
|
|
| |
The fortran77 standards require that a "function" must be ended by "end" and not by "end function". The non-standard syntax is accepted by several compilers, but not by the Portland compiler.
darcs-hash:20060809133700-d5812-14616fe5ee7f5e75087f09ae7cc9d83acd27bd42.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:20060731152547-dae7b-c56f2acaf72d2d21d2e4bdee00691866568af6fc.gz
|
|
|
|
|
|
|
|
|
| |
Poison newly allocated memory if desired. This is potentially more
thorough that Carpet's poisoning, since it is applied to all allocated
memory. It is not applied after time level cycling, though, so it
cannot replace Carpet's poisoning.
darcs-hash:20060731152325-dae7b-d039ee958161690c9430e70a8051d400273b819e.gz
|
|
|
|
|
|
|
|
|
| |
Use double instead of size_t for memory statistics. size_t works fine
for keeping statistics on a single processor, but there can be
overflow on multiple processors. double may be inexact, but will not
overflow.
darcs-hash:20060731152039-dae7b-51a07bfa276c18a59b400a4aef09ab3f2cfc1490.gz
|
|
|
|
| |
darcs-hash:20060731151456-dae7b-3f905340dc34295d2e00fe58995ebc5b4d6690f7.gz
|
|
|
|
| |
darcs-hash:20060731151355-dae7b-fa5ddb6af45a3eec44780b7bff81e8a07a1aa861.gz
|
|
|
|
| |
darcs-hash:20060731151302-dae7b-555810bfd094f8acb70b3dc90c2775ab84a20ef7.gz
|
|
|
|
| |
darcs-hash:20060613170802-dae7b-9f69116a70acbac95c7b7b4afa4282330b065602.gz
|
|
|
|
|
|
|
|
| |
If two refinement boxes sit next to each other in an L (ell) shape,
then the region where the boxes have prolongation boundaries may not
have the shape of a single box. Therefore allow arbitrary many boxes.
darcs-hash:20060613170952-dae7b-a1579f5ec53ad4a36bd44c9ab1d4f07f46a1160e.gz
|
|
|
|
| |
darcs-hash:20060608015436-dae7b-6526525fd78b275abcd84e856d47554128dd7d7b.gz
|
|
|
|
| |
darcs-hash:20060606003856-dae7b-b1bbd7219113bee246898626c6652e1df5a8db65.gz
|
|
|
|
|
|
|
|
|
| |
Move the arithmetic operations (+-*/ etc.) out of the vect class.
Instead of member functions, they are now standalone functions. This
makes it possible to write "int * vect<int>" with automatic
conversion.
darcs-hash:20060605220401-dae7b-eee6ed411e3d0e5850dd8e6bd85d432eed4752e8.gz
|
|
|
|
| |
darcs-hash:20060508154323-dae7b-30f14d75440c10774cd9f386bcfaca77fe3e704d.gz
|
|
|
|
| |
darcs-hash:20060508154248-dae7b-a4d6c2b35d559cf0e61adae9f580905fa7771235.gz
|
|
|
|
| |
darcs-hash:20060413201623-dae7b-da2878c0520c3f35626e7201241037de38000cbc.gz
|
|
|
|
| |
darcs-hash:20060413201319-dae7b-04e2b3038d83e746ac52fd01b3cf4ba51ddb6c01.gz
|
|
|
|
|
|
|
| |
Correct the logic error when omit_prolongation_points_when_restricting
is used. It remains off by default.
darcs-hash:20060504231609-dae7b-d2b89530463b9c67e120426f20e86e6f21211a3d.gz
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Add a parameter "omit_prolongation_points_when_restricting" that
controls whether to restrict to points that are used for boundary
prolongation. The default is "no", restoring Carpet's behaviour from
before the patch "CarpetLib: Do not restrict to points that are used
for boundary prolongation".
When set to yes, then there is still a logic error in the code on
multiple processors, leading to different restriction regions on
different numbers of processors.
darcs-hash:20060503235940-dae7b-4c124e68e4c2519c0f97d416e0a7fa3489c1441d.gz
|
|
|
|
|
|
|
|
| |
Store the number of active time levels per refinement level, not
globally, because each refinement level can have a different number of
active time levels.
darcs-hash:20060413192655-dae7b-be12d1baef21b3f0a24bbb022297a4856c7d6f14.gz
|
|
|
|
|
|
|
| |
Allow a processor's domain to be empty. This needs special treatment,
because such a domain must not have ghost zones added to it.
darcs-hash:20060227001303-dae7b-e0c0f4d2455add31f0b1f7d1366e0090d31c9fff.gz
|
|
|
|
|
|
|
|
|
| |
WENO prolongation should be more accurate than ENO prolongation whilst
retaining the monotonicity properties of the ENO operators. The WENO
operators will only work with prolongation_order_space = 5 because of
the stencil width (requires 3 ghost zones).
darcs-hash:20060310132742-34bfa-32c65e7f67cb91ab36dd125a5327f2e16286e807.gz
|
|
|
|
|
|
|
|
|
| |
Correct an error in the patch "CarpetLib: Do not restrict to points
they are used for boundary prolongation".
Rename some iterators to more meaningful names.
darcs-hash:20060227001417-dae7b-65ada5d5357fef71b162163ee3f1ef74e55403db.gz
|
|
|
|
|
|
|
|
| |
Do not restrict to points they are used for boundary prolongation.
Check this condition.
darcs-hash:20060226002735-dae7b-36da19d1be45a8db8a2af194873cd8a3e64c8a86.gz
|
|
|
|
| |
darcs-hash:20060226002647-dae7b-120cbc31f8e3caf9dcf1e996844268749a954d57.gz
|
|
|
|
| |
darcs-hash:20060225172723-dae7b-27a2d88ad612cd88b33b83095760a55dd03d2dc4.gz
|
|
|
|
| |
darcs-hash:20060225172648-dae7b-93b93c97212a7fa33c8770200b8f8b1494ad9776.gz
|
|
|
|
| |
darcs-hash:20060208233203-dae7b-c3837264ceeca33579afa2bfcb45c8d10803ac0e.gz
|