# 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"