xx LoopControl

LoopControl

Erik Schnetter <schnetter@cct.lsu.edu>

August 20 2007

Abstract

1 Introduction

2 Physical System 3 Numerical Implementation 4 Using This Thorn 4.1 Obtaining This Thorn 4.2 Basic Usage 4.3 Special Behaviour 4.4 Interaction With Other Thorns 4.5 Examples 4.6 Support and Feedback 5 History 5.1 Thorn Source Code 5.2 Thorn Documentation 5.3 Acknowledgements References 6 Parameters

11alignxwithxcachelines 10Scope: privatex01 BOOLEAN

11Description: Align innermost loops with cache line size

11                         10  x01  Default: yes

11

11explorexeagerlyxbeforexiteration 10Scope: privatex01  INT

11Description: Try to explore the parameter space as much as possible before this iteration

11  Range  10  x01  Default: (none)

110:*  10

11

11initialxsetup  10Scope: privatex01  KEYWORD

11Description: Initial configuration

11 Range 10 x01 Default: tiled
11legacy  10Like a non-LoopControl loop
11tiled  10Basic LoopControl setup

11

11loopsizexi  10Scope: privatex01  INT

11Description: Size of each thread’s loop in i direction (in grid points) for multithreading

11  Range  10  x01  Default: 8

111:*  10

11

11loopsizexj  10Scope: privatex01  INT

11Description: Size of each thread’s loop in j direction (in grid points) for multithreading

11  Range  10  x01  Default: 8

111:*  10

11

11loopsizexk  10Scope: privatex01  INT

11Description: Size of each thread’s loop in k direction (in grid points) for multithreading

11  Range  10  x01  Default: 8

111:*  10

11

11maxxsizexfactor  10Scope: privatex01  INT

11Description: Maximum size for modifying loop sizes

11  Range  10  x01  Default: 4

111:*  10

11

11randomxjumpxprobability 10Scope: privatex01  REAL

11Description: Probability of a random jump to begin exploring a very different param

11 Range 10 x01 Default: 0.1
110.0:1.0  10

11

11selftest  10Scope: privatex01  BOOLEAN

11Description: Run a self test with every loop (expensive)

11                         10  x01  Default: no

11

11settlexafterxiteration  10Scope: privatex01  INT

11Description: Do not explore the parameter space any more at or after this iteration

11 Range 10 x01 Default: (none)
11-1  10always continue exploring

110:*  10

11statisticsxeveryxseconds  10Scope: privatex01  REAL

11Description: Output statistics every so many seconds

11 Range 10 x01 Default: -1.0
11-1.0  10don’t output
110.0:*  10output every so many seconds

11

11statisticsxfilename  10Scope: privatex01  STRING

11Description: File name for LoopControl statistics

11 Range 10 x01 Default: LoopControl-statistics
11                         10disable statistics output
11.+  10file name

11

11tilesizexi  10Scope: privatex01  INT

11Description: Tile size in i direction (in grid points) for loop tiling

11  Range  10  x01  Default: 4

111:*  10

11

11tilesizexj  10Scope: privatex01  INT

11Description: Tile size in j direction (in grid points) for loop tiling

11  Range  10  x01  Default: 4

111:*  10

11

11tilesizexk  10Scope: privatex01  INT

11Description: Tile size in k direction (in grid points) for loop tiling

11  Range  10  x01  Default: 4

111:*  10

11

11tryoutxiterations  10Scope: privatex01  INT

11Description: Try out new params for this many iterations before judging them

11  Range  10  x01  Default: 1

111:*  10

11

11usexsmtxthreads  10Scope: privatex01  BOOLEAN

11Description: Place SMT threads close together

11                         10  x01  Default: yes

11

11verbose  10Scope: privatex01  BOOLEAN

11Description: Output some loop information at run time

11                         10  x01  Default: no

11

11veryxexpensivexfactor  10Scope: privatex01  REAL

11Description: Params worse than the current-best by more than this factor are ignored more quickly

11 Range 10 x01 Default: 1.5
111.0:*  10

11

11veryverbose  10Scope: privatex01  BOOLEAN

11Description: Output detailed debug information at run time

11                         10  x01  Default: no

11

11outxdir  10Scope: shared from IOx01STRING

7 Interfaces

General Implements: loopcontrol

Inherits: cycleclock

Adds header: loopcontrol.h

Uses header: cycleclock.h vectors.h

8 Schedule This section lists all the variables which are assigned storage by thorn Carpet/LoopControl. Storage can either last for the duration of the run (Always means that if this thorn is activated storage will be assigned, Conditional means that if this thorn is activated storage will be assigned for the duration of the run if some condition is met), or can be turned on for the duration of a schedule function.

Storage NONE

Scheduled Functions

CCTKxSTARTUP x lcxsetup x set up loopcontrol

11x11Before: 11driverxstartup
11 x 11Language:11c
11 x 11Type: 11function

11

CCTKxPRESTEP x lcxsteer x update loopcontrol algorithm preferences x

11x11Language:11c
11 x 11Options: 11meta
11 x 11Type: 11function

11

CCTKxANALYSIS x lcxstatisticsxanalysis x output loopcontrol statistics x

11x11Language:11c
11 x 11Options: 11meta
11 x 11Type: 11function

11

CCTKxTERMINATE x lcxstatisticsxterminate x output loopcontrol statistics x

11x11Language:11c
11 x 11Options: 11meta
11 x 11Type: 11function