aboutsummaryrefslogtreecommitdiff
path: root/Carpet/LoopControl
Commit message (Collapse)AuthorAge
...
* LoopControl: Correct Fortran macros; provide Fortran wrappersErik Schnetter2013-01-21
|
* LoopControl: Update Fortran macros to follow cctk_Loop APIErik Schnetter2013-01-20
|
* LoopControl: Add assert statements to loop macros to catch indexing errorsErik Schnetter2013-01-20
|
* LoopControl: Correct indexing error with vectorisationErik Schnetter2013-01-20
|
* LoopControl: Store loop bounds in the provided variablesErik Schnetter2013-01-19
| | | | Store the loop bounds in the provided variables, not in lc_imin and lc_imax.
* LoopControl: Run tests only with 2 processesErik Schnetter2013-01-18
|
* LoopControl: Circumvent Cray compiler bugErik Schnetter2013-01-17
|
* LoopControl: RewriteErik Schnetter2013-01-16
| | | | | | | | Rewrite code in C++. Remove dependency on GSL. Modify algorithm; now traverses arrays bottom-up (by splitting the looping region into equal-sized blocks) instead of top-down (splitting the region into a certain number of blocks) Make multi-threading dynamic Support SMT (hyper-threading), i.e. threads which share the same cache
* LoopControl: Add missing copyprivateErik Schnetter2012-11-22
|
* LoopControl: Change printstats default to "no"Erik Schnetter2012-10-19
|
* LoopControl: Modify code to please PGI compilerErik Schnetter2012-09-11
| | | | | Declare local variable outside of "#pragma for". Also improve some error messages.
* LoopControl: Remove redefinition of restrict qualifierErik Schnetter2012-09-11
|
* LoopControl: Explain why downcast is safeErik Schnetter2012-09-11
|
* LoopControl: Add some comments to field declarationsErik Schnetter2011-12-14
|
* LoopControl: Add more self-checkingErik Schnetter2011-12-14
|
* LoopControl: Add many asserts to check correctness at run timeErik Schnetter2011-12-14
|
* LoopControl: Remove explicit attribute(pure) declarationsErik Schnetter2011-12-14
|
* LoopControl: Disable random-restart hill climbing by defaultErik Schnetter2011-12-14
| | | | | | Disable random-restart hill climbing by default, as this makes a certain segfault vanish. (We don't know the cause of the segfault yet.)
* LoopControl: Correct OpenMP parallelisation. Add self-tests.Erik Schnetter2011-12-14
| | | | | | | | | | Correct the OpenMP parallelisation: Previously, when the loop size is not a multiple of the block size assigned to each OpenMP thread, some grid points would be traversed multiple times. Add new parameter do_selftest that enables (somewhat expensive) self-tests to ensure in each loop that each grid point is traversed exactly once.
* LoopControl: Make selftest conditional on a parameterErik Schnetter2011-12-14
| | | | | Make selftest conditional on a new parameter do_selftest. Use atomic OpenMP statements in selftest.
* LoopControl: Improve checking Fortran type sizesErik Schnetter2011-12-14
|
* LoopControl: Disable some unused codeErik Schnetter2011-12-14
|
* LoopControl: Add a self-testErik Schnetter2011-12-14
| | | | | Add a self-test that ensure that all loops cover each grid point exactly once.
* LoopControl: Improve error message for illegal loop shapesErik Schnetter2011-12-14
|
* LoopControl: change storage size calculation to work with Intel 11.1Roland Haas2011-12-14
| | | | | | | | it seems that ifort's INQUIRE statement returns the byte size of a record divided by four. Maybe it is counting ints? This one uses pointer arithmetic and will work unless Fortran pads the structures differently than C or if a compiler allocates some temporaries when members of arrays are passed to functions.
* LoopControl: check that Fortran structures match C structures at startupRoland Haas2011-12-14
| | | | | | this is not foolproof (nor necessarily portable). It just checks that the sum of sizeof(lc_statmap_t) and sizeof(lc_control_t) is the same as seen from Fortran (via INQUIRE(IOLENGTH)) and C.
* LoopControl: support vectorized loops in Fortran interfaceRoland Haas2011-12-14
|
* LoopControl: Align inner loop boundaries with vector sizes, if vectorisation ↵Erik Schnetter2011-12-14
| | | | is used
* LoopControl: Ensure that LoopControl is active if it is usedErik Schnetter2011-12-14
|
* LoopControl: Ensure there is at least one possible tilingErik Schnetter2011-12-14
| | | | | Ensure there is at least one possible tiling, creating a fake tiling if there are zero grid points.
* LoopControl: Update statistics; activate statistics by defaultErik Schnetter2011-12-14
| | | | | | | | Handle very small grids correctly. Output statistics all the time. Introduce multiple verbosity levels for statistics. Update statistics to include saved time and comparison between best and initial time. Activate hill climbing algorithm by default.
* LoopControl: Override the flesh CCTK_LOOP macrosErik Schnetter2011-12-14
| | | | | | Override the flesh CCTK_LOOP macros, so that one can use CCTK_LOOP instead of LC_LOOP. Remove some outdated vectorisation code. Ensure the LC_LOOP and LC_ENDLOOP macros match in pairs.
* LoopControl: remove restrict keyword for lc_topology_t because we do modify ↵knarf2011-12-14
| | | | it using realloc
* LoopControl: realloc more memory for thread structures when needed instead ↵knarf2011-12-14
| | | | of aborting
* LoopControl: be more verbose with error abour thread count inconsistency)knarf2011-12-14
|
* LoopControl: Add loop macros for vectorised codeErik Schnetter2011-12-14
|
* LoopControl: Comment out unused routineErik Schnetter2011-12-14
|
* LoopControl: Reformat some statementsErik Schnetter2011-12-14
|
* LoopControl: Correct some commentsErik Schnetter2011-12-14
|
* - protect some mallocsknarf2011-12-14
| | | | - fix some compiler warnings
* LoopControl: Disable demo codeErik Schnetter2011-12-14
|
* LoopControl: Correct error in handling loop with different numbers of threadsErik Schnetter2011-12-14
|
* LoopControl: Add white spaceErik Schnetter2011-12-14
|
* LoopControl: Include <sys/time.h> if necessaryErik Schnetter2011-12-14
|
* LoopControl: Correct handling empty regionsErik Schnetter2011-12-14
|
* LoopControl: Implement cache-collaborative multi-threadingErik Schnetter2011-12-14
| | | | | | | | | | Ignore-this: 5169757c7749834ae595d4d73b39220 Add a new, additional feature to LoopControl: different threads can work on small regions that are likely to use the same cache entries as other threads, trying to reduce cache pressure. This makes sense mostly when the regions are still expensive although they are small, e.g. for the BSSN RHS.
* Import CarpetErik Schnetter2011-12-14
| | | | Ignore-this: 309b4dd613f4af2b84aa5d6743fdb6b3
* Merge branch 'master' of /Users/eschnett/Cbeta/carpet/Erik Schnetter2009-01-27
|\
| * LoopControl: Do not use <tgmath.h>Erik Schnetter2009-01-27
| |
* | Merge branch 'master' of /Users/eschnett/Cbeta/carpet/Erik Schnetter2009-01-26
|\|