aboutsummaryrefslogtreecommitdiff
path: root/Carpet/CarpetLib/param.ccl
blob: a81275309ea19cf48f1e05cf9b3506d3561c39a6 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
# Parameter definitions for thorn CarpetLib

private:

BOOLEAN verbose "Print info to the screen" STEERABLE=always
{
} "no"

BOOLEAN barriers "Insert barriers at strategic places for debugging purposes (slows down execution)" STEERABLE=always
{
} "no"



BOOLEAN omit_prolongation_points_when_restricting "Do not restrict to points which are used to prolongate the boundary" STEERABLE=always
{
} "no"

INT proper_nesting_distance "Minimum distance (in grid points) between two level interfaces" STEERABLE=always
{
  0:* :: "any non-negative value is fine; the default value is just a guess"
} 4



BOOLEAN output_bboxes "Output bounding box information to the screen" STEERABLE=always
{
} "no"



BOOLEAN poison_new_memory "Try to catch uninitialised data by setting newly allocated memory to values that will catch your attention" STEERABLE=always
{
} "no"

CCTK_INT poison_value "Integer value (0..255) used to poison new timelevels (with memset)" STEERABLE=always
{
  0:255 :: "Must fit into a byte.  Use 0 for zero, 255 for nan, and e.g. 113 for a large value."
} 255



BOOLEAN print_timestats "Print timing statistics at every iteration" STEERABLE=always
{
} "no"

INT print_timestats_every "Print timing statistics periodically" STEERABLE=always
{
  0   :: "don't report"
  1:* :: "report every so many iterations"
} 0

STRING timestat_file "File name in which timestat output is collected (because stdout from the root node may not be enough)" STEERABLE=always
{
  "^$"   :: "empty filename: no file output"
  "^.+$" :: "file name"
} "carpetlib-timing-statistics"

KEYWORD timestat_timer "Timer for timing statistics" STEERABLE=recover
{
  "MPI_Wtime" :: "MPI_Wtime (expensive; uses system call)"
  "rdtsc"     :: "Intel rdtsc instruction (exists only on Intel CPUs)"
  "none"      :: "don't measure time"
} "MPI_Wtime"

BOOLEAN timestat_disable "Disable timing statistics" STEERABLE=always
{
} "no"



INT print_memstats_every "Report periodically how much memory is used per process" STEERABLE=always
{
  0   :: "don't report"
  1:* :: "report every so many iterations"
} 0

INT max_allowed_memory_MB "Maximum allowed amount of memory per process (in Megabytes)" STEERABLE=always
{
  0   :: "no maximum"
  1:* :: "abort if more memory is used"
} 0

STRING memstat_file "File name in which memstat output is collected (because stdout from the root node may not be enough)" STEERABLE=always
{
  "^$"   :: "empty filename: no file output"
  "^.+$" :: "file name"
} "carpetlib-memory-statistics"



# Experimental communication 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" STEERABLE=always
{
} "no"

BOOLEAN vary_tags "Use different tags for each communication" STEERABLE=always
{
} "no"

BOOLEAN barrier_between_stages "Add a barrier between the communication stages (slows down, but may make timing numbers easier to interpret)" STEERABLE=always
{
} "no"

BOOLEAN combine_sends "Send data together and in order of processor ranks" STEERABLE=always
{
} "no"

BOOLEAN reduce_mpi_waitall "Call MPI_Waitall only for requests that are not null" STEERABLE=always
{
} "no"

BOOLEAN use_mpi_send "Use MPI_Send instead of MPI_Isend" STEERABLE=always
{
} "no"

BOOLEAN use_mpi_ssend "Use MPI_Ssend instead of MPI_Isend" STEERABLE=always
{
} "no"



SHARES: IO

USES STRING out_dir

PRIVATE:



# Options to tune MPI communication
# DEPRECATED - DO NOT USE ANYMORE
# The defaults of these flags are now sensible for everybody;
# you should not be setting these parameters by hand any more.

INT max_mpi_tags "Maximum number of MPI tags to use -- DEPRECATED - DO NOT USE ANYMORE" STEERABLE=always
{
  1:30000 :: ""
} 30000

BOOLEAN use_waitall "Use MPI_Waitall instead individual MPI_Wait/MPI_Waitsome statements -- DEPRECATED - DO NOT USE ANYMORE" STEERABLE=always
{
} "yes"

BOOLEAN combine_recv_send "Combine MPI_Irecv and MPI_Isend calls -- DEPRECATED - DO NOT USE ANYMORE" STEERABLE=always
{
} "no"

BOOLEAN use_lightweight_buffers "Use lightweight communication buffers instead of data objects -- DEPRECATED - DO NOT USE ANYMORE" STEERABLE=always
{
} "no"

BOOLEAN use_collective_communication_buffers "Use collective buffers for MPI communications -- DEPRECATED - DO NOT USE ANYMORE" STEERABLE=always
{
} "yes"

BOOLEAN minimise_outstanding_communications "Minimise the number of Isend/Irecv operations that are submitted concurrently -- DEPRECATED - DO NOT USE ANYMORE" STEERABLE=always
{
} "no"

BOOLEAN save_memory_during_regridding "Save some memory during regridding at the expense of speed -- DEPRECATED - DO NOT USE ANYMORE" STEERABLE=always
{
} "yes"

BOOLEAN fast_recomposing "Take shortcuts during recomposing -- DEPRECATED - DO NOT USE ANYMORE" STEERABLE=always
{
} "no"