kspaceFirstOrder3D-CUDA  1.1
The CUDA/C++ implementation of the k-wave toolbox for the time-domain simulation of acoustic wave fields in 3D
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
OutputMessagesLinux.h
Go to the documentation of this file.
1 /**
2  * @file OutputMessagesLinux.h
3  *
4  * @author Jiri Jaros \n
5  * Faculty of Information Technology \n
6  * Brno University of Technology \n
7  * jarosjir@fit.vutbr.cz
8  *
9  * @brief The header file containing all messages going to the standard output, Linux version.
10  *
11  * @version kspaceFirstOrder3D 3.4
12  *
13  * @date 13 July 2016, 12:33 (created) \n
14  * 29 July 2016, 16:49 (revised)
15  *
16  * @section License
17  * This file is part of the C++ extension of the k-Wave Toolbox
18  * (http://www.k-wave.org).\n Copyright (C) 2016 Jiri Jaros and Bradley Treeby.
19  *
20  * This file is part of the k-Wave. k-Wave is free software: you can redistribute it and/or modify
21  * it under the terms of the GNU Lesser General Public License as published by the Free Software
22  * Foundation, either version 3 of the License, or (at your option) any later version.
23  *
24  * k-Wave is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even
25  * the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser
26  * General Public License for more details.
27  *
28  * You should have received a copy of the GNU Lesser General Public License along with k-Wave.
29  * If not, see http://www.gnu.org/licenses/.
30  */
31 
32 #ifndef OUTPUT_MESSAGES_LINUX_H
33 #define OUTPUT_MESSAGES_LINUX_H
34 
35 /**
36  * @typedef TOutputMessage
37  * @brief Datatype for output messages.
38  * @details Datatype for output messages.
39  */
40 typedef const std::string TOutputMessage;
41 
42 
43 //--------------------------------------- Common outputs -----------------------------------------//
44 /// Output message - first separator
46  = "┌───────────────────────────────────────────────────────────────┐\n";
47 /// Output message - separator
49  = "├───────────────────────────────────────────────────────────────┤\n";
50 /// Output message -last separator
52  = "└───────────────────────────────────────────────────────────────┘\n";
53 
54 /// Output message - new line
56  = "\n";
57 /// Output message - Done with two spaces.
59  = " Done │\n";
60 /// Output message - finish line without done
62  = " │\n";
63 /// Output message - failed message
65  = "Failed │\n" ;
66 /// Output message - vertical line
68  = "│";
69 
70 /// Output message
72  = "│ %s │\n";
73 /// Output message
75  = "│ Number of CPU threads: %9lu │\n";
76 /// Output message
78  = "├───────────────────────────────────────────────────────────────┤\n"
79  "│ Simulation details │\n"
80  "├───────────────────────────────────────────────────────────────┤\n";
81 /// Output message
83  = "├───────────────────────────────────────────────────────────────┤\n"
84  "│ Initialization │\n"
85  "├───────────────────────────────────────────────────────────────┤\n";
86 
87 /// Output message
89  = "├───────────────────────────────────────────────────────────────┤\n"
90  "│ Computational resources │\n"
91  "├───────────────────────────────────────────────────────────────┤\n";
92 /// Output message
94  = "├───────────────────────────────────────────────────────────────┤\n"
95  "│ Simulation │\n"
96  "├──────────┬────────────────┬──────────────┬────────────────────┤\n"
97  "│ Progress │ Elapsed time │ Time to go │ Est. finish time │\n"
98  "├──────────┼────────────────┼──────────────┼────────────────────┤\n";
99 /// Output message
101  = "├───────────────────────────────────────────────────────────────┤\n"
102  "│ Checkpointing │\n"
103  "├───────────────────────────────────────────────────────────────┤\n";
104 
105 /// Output message
107  = "├───────────────────────────────────────────────────────────────┤\n"
108  "│ Summary │\n"
109  "├───────────────────────────────────────────────────────────────┤\n";
110 ///Output message
112  = "├───────────────────────────────────────────────────────────────┤\n"
113  "│ End of computation │\n"
114  "└───────────────────────────────────────────────────────────────┘\n";
115 
116 ///Output message
118  = "│ Elapsed time: %11.2fs │\n";
119 ///Output message
121  = "│ Recovered from time step: %8ld │\n";
122 ///Output message
124  = "│ Peak host memory in use: %8luMB │\n";
125 ///Output message
127  = "│ Peak device memory in use: %8luMB │\n";
128 ///Output message
130  = "│ Total execution time: %8.2fs │\n";
131 ///Output message
133  = "│ This leg execution time: %8.2fs │\n";
134 
135 
136 ///Output message
138  = "│ Reading simulation configuration: ";
139 ///Output message
141  = "│ Selected GPU device id: ";
142 ///Output message
144  = "%6d │\n";
145 ///Output message
147  = "│ GPU device name: %44s │\n";
148 ///Output message
150  = "│ Domain dimensions: %42s │\n";
151 ///Output message
153  = "%lu x %lu x %lu";
154 
155 
156 ///Output message
158  = "│ Simulation time steps: %9lu │\n";
159 ///Output message
161  = "│ Sensor mask type: Index │\n";
162 ///Output message
164  = "│ Sensor mask type: Cuboid │\n";
165 ///Output message
167  = "│ Git hash: %s │\n";
168 
169 ///Output message
171  = "kspaceFirstOrder3D-CUDA v1.1";
172 
173 ///Output message
175  = "│ FFT plans creation: ";
176 ///Output message
178  = "│ Pre-processing phase: ";
179 ///Output message
181  = "│ Data loading: ";
182 ///Output message
184  = "│ Memory allocation: ";
185 ///Output message
187  = "│ Current host memory in use: %8luMB │\n";
188 ///Output message
190  = "│ Current device memory in use: %8luMB │\n";
191 
192 ///Output message
194  = "%d x %d";
195 ///Output message
197  = "│ CUDA solver grid size [blocks x threads]: %19s │\n";
198 ///Output message
200  = "│ CUDA sampler grid size [blocks x threads]: %18s │\n";
201 
202 ///Output message
204  ="│ %2li%c │ %9.3fs │ %9.3fs │ %02i/%02i/%02i %02i:%02i:%02i │\n";
205 ///Output message
207  = "├──────────┴────────────────┴──────────────┴────────────────────┤\n";
208 ///Output message
210  = "└──────────┴────────────────┴──────────────┴────────────────────┘\n";
211 
212 ///Output message
214  = "│ Number of time steps completed: %10u │\n";
215 ///Output message
217  = "│ Creating checkpoint: ";
218 ///Output message
220  = "│ Sampled data post-processing: ";
221 ///Output message
223  = "│ + Storing checkpoint data: ";
224 ///Output message
226  = "│ + Storing sensor data: ";
227 ///Output message
229  = "│ + Reading input file: ";
230 ///Output message
232  = "│ + Reading checkpoint file: ";
233 ///Output message
235  = "│ + Reading output file: ";
236 ///Output message
238  = "│ + Creating output file: ";
239 
240 ///Output message
242  = "Input file: ";
243 ///Output message
245  = "Output file: ";
246 ///Output message
248  = "Check file: ";
249 ///Output message
251  = "│ Checkpoint interval: %8lus │\n";
252 ///Output message
254  = "│ Compression level: %8lu │\n";
255 ///Output message
257  = "│ Print progress interval: %8lu%% │\n";
258 ///Output message
260  = "│ Benchmark time steps: %8lu │\n";
261 ///Output message
263  = "├───────────────────────────────────────────────────────────────┤\n"
264  "│ Sampling flags │\n"
265  "├───────────────────────────────────────────────────────────────┤\n";
266 ///Output message
268  = "│ Sampling begins at time step: %8lu │\n";
269 ///Output message
271  = "│ Copy sensor mask to output file: Yes │\n";
272 
273 
274 
275 //-------------------------------------- Print code version --------------------------------------//
276 /// Print version output message
278  = "├───────────────────────────────────────────────────────────────┤\n"
279  "│ Build information │\n"
280  "├───────────────────────────────────────────────────────────────┤\n"
281  "│ Build Number: kspaceFirstOrder3D v3.4 │\n"
282  "│ Build date: %*.*s │\n"
283  "│ Build time: %*.*s │\n";
284 
285 /// Print version output message
287  = "│ Git hash: %s │\n";
288 
289 /// Print version output message
291  = "│ Operating system: Linux x64 │\n";
292 /// Print version output message
294  = "│ Operating system: Windows x64 │\n";
295 /// Print version output message
297  = "│ Operating system: Mac OS X x64 │\n";
298 
299 /// Print version output message
301  = "│ Compiler name: GNU C++ %.19s │\n";
302 /// Print version output message
304  = "│ Compiler name: Intel C++ %d │\n";
305 /// Print version output message
307  = "│ Compiler name: Visual Studio C++ %d │\n";
308 
309 /// Print version output message
311  = "│ Instruction set: Intel AVX 2 │\n";
312 /// Print version output message
314  = "│ Instruction set: Intel AVX │\n";
315 /// Print version output message
317  = "│ Instruction set: Intel SSE 4.2 │\n";
318 /// Print version output message
320  = "│ Instruction set: Intel SSE 4.1 │\n";
321 /// Print version output message
323  = "│ Instruction set: Intel SSE 3 │\n";
324 /// Print version output message
326  = "│ Instruction set: Intel SSE 2 │\n";
327 
328 /// Print version output message
330  = "│ CUDA Runtime: N/A │\n";
331 /// Print version output message
333  = "│ CUDA Runtime: %d.%d │\n";
334 /// Print version output message
336  = "│ CUDA Driver: %d.%d │\n";
337 
338 /// Print version output message
340  = "│ CUDA code arch: N/A │\n"
341  "├───────────────────────────────────────────────────────────────┤\n"
342  "│ CUDA device id: N/A │\n"
343  "│ CUDA device name: N/A │\n"
344  "│ CUDA capability: N/A │\n";
345 
346 /// Print version output message
348  = "│ CUDA code arch: %1.1f │\n";
349 /// Print version output message
351  = "│ CUDA device id: %d │\n";
352 /// Print version output message
354  = "│ CUDA device name: %s %.*s│\n";
355 /// Print version output message
357  = " ";
358 /// Print version output message
360  = "│ CUDA capability: %d.%d │\n";
361 
362 /// Print version output message
364  = "├───────────────────────────────────────────────────────────────┤\n"
365  "│ Contact email: jarosjir@fit.vutbr.cz │\n"
366  "│ Contact web: http://www.k-wave.org │\n"
367  "├───────────────────────────────────────────────────────────────┤\n"
368  "│ Copyright (C) 2016 Jiri Jaros and Bradley Treeby │\n"
369  "└───────────────────────────────────────────────────────────────┘\n";
370 
371 
372 
373 //------------------------------------------- Usage ----------------------------------------------//
374 /// Usage massage
376  = "│ Usage │\n"
377  "├───────────────────────────────────────────────────────────────┤\n"
378  "│ Mandatory parameters │\n"
379  "├───────────────────────────────────────────────────────────────┤\n"
380  "│ -i <file_name> │ HDF5 input file │\n"
381  "│ -o <file_name> │ HDF5 output file │\n"
382  "├───────────────────────────────┴───────────────────────────────┤\n"
383  "│ Optional parameters │\n"
384  "├───────────────────────────────┬───────────────────────────────┤\n";
385 
386 /// Usage massage
388  = "│ -g <device_number> │ GPU device to run on │\n"
389  "│ │ (default = the first free) │\n"
390  "│ -r <interval_in_%%> │ Progress print interval │\n"
391  "│ │ (default = %2ld%%) │\n"
392  "│ -c <compression_level> │ Compression level <0,9> │\n"
393  "│ │ (default = %1ld) │\n"
394  "│ --benchmark <time_steps> │ Run only a specified number │\n"
395  "│ │ of time steps │\n"
396  "│ --verbose <level> │ Level of verbosity <0,2> │\n"
397  "│ │ 0 - basic, 1 - advanced, │\n"
398  "│ │ 2 - full │\n"
399  "│ │ (default = basic) │\n"
400  "│ -h, --help │ Print help │\n"
401  "│ --version │ Print version and build info │\n"
402  "├───────────────────────────────┼───────────────────────────────┤\n"
403  "│ --checkpoint_file <file_name> │ HDF5 checkpoint file │\n"
404  "│ --checkpoint_interval <sec> │ Checkpoint after a given │\n"
405  "│ │ number of seconds │\n"
406  "├───────────────────────────────┴───────────────────────────────┤\n"
407  "│ Output flags │\n"
408  "├───────────────────────────────┬───────────────────────────────┤\n"
409  "│ -p │ Store acoustic pressure │\n"
410  "│ │ (default output flag) │\n"
411  "│ │ (the same as --p_raw) │\n"
412  "│ --p_raw │ Store raw time series of p │\n"
413  "│ --p_rms │ Store rms of p │\n"
414  "│ --p_max │ Store max of p │\n"
415  "│ --p_min │ Store min of p │\n"
416  "│ --p_max_all │ Store max of p (whole domain) │\n"
417  "│ --p_min_all │ Store min of p (whole domain) │\n"
418  "│ --p_final │ Store final pressure field │\n"
419  "├───────────────────────────────┼───────────────────────────────┤\n"
420  "│ -u │ Store ux, uy, uz │\n"
421  "│ │ (the same as --u_raw) │\n"
422  "│ --u_raw │ Store raw time series of │\n"
423  "│ │ ux, uy, uz │\n"
424  "│ --u_non_staggered_raw │ Store non-staggered raw time │\n"
425  "│ │ series of ux, uy, uz │\n"
426  "│ --u_rms │ Store rms of ux, uy, uz │\n"
427  "│ --u_max │ Store max of ux, uy, uz │\n"
428  "│ --u_min │ Store min of ux, uy, uz │\n"
429  "│ --u_max_all │ Store max of ux, uy, uz │\n"
430  "│ │ (whole domain) │\n"
431  "│ --u_min_all │ Store min of ux, uy, uz │\n"
432  "│ │ (whole domain) │\n"
433  "│ --u_final │ Store final acoustic velocity │\n"
434  "├───────────────────────────────┼───────────────────────────────┤\n"
435  "│ -s <time_step> │ When data collection begins │\n"
436  "│ │ (default = 1) │\n"
437  "└───────────────────────────────┴───────────────────────────────┘\n";
438 
439 /// Usage massage
441  = "│ -t <num_threads> │ Number of CPU threads │\n"
442  "│ │ (default = %2d) │\n";
443 
444 #endif /* OUTPUT_MESSAGES_LINUX_H */
445 
TOutputMessage OUT_FMT_LEG_EXECUTION_TIME
Output message.
TOutputMessage OUT_FMT_MEMORY_ALLOCATION
Output message.
TOutputMessage OUT_FMT_LICENCE
Print version output message.
TOutputMessage OUT_FMT_TOTAL_EXECUTION_TIME
Output message.
TOutputMessage OUT_FMT_STORING_SENSOR_DATA
Output message.
TOutputMessage OUT_FMT_DEVICE_NAME
Output message.
TOutputMessage OUT_FMT_SUMMARY_HEADER
Output message.
TOutputMessage OUT_FMT_USAGE_PART_1
Usage massage.
TOutputMessage OUT_FMT_SENSOR_MASK_INDEX
Output message.
TOutputMessage OUT_FMT_PRINT_PROGRESS_INTERVAL
Output message.
TOutputMessage OUT_FMT_CHECKPOINT_HEADER
Output message.
TOutputMessage OUT_FMT_HOST_MEMORY_USAGE
Output message.
TOutputMessage OUT_FMT_CURRENT_DEVICE_MEMORY
Output message.
TOutputMessage OUT_FMT_READING_INPUT_FILE
Output message.
TOutputMessage OUT_FMT_CHECKPOINT_INTERVAL
Output message.
TOutputMessage OUT_FMT_VISUAL_STUDIO_COMPILER
Print version output message.
TOutputMessage OUT_FMT_CURRENT_HOST_MEMORY
Output message.
TOutputMessage OUT_FMT_SIMULATION_FINAL_SEPARATOR
Output message.
TOutputMessage OUT_FMT_READING_CHECKPOINT_FILE
Output message.
TOutputMessage OUT_FMT_CUDA_DEVICE_INFO_NA
Print version output message.
TOutputMessage OUT_FMT_SIMULATION_PROGRESS
Output message.
TOutputMessage OUT_FMT_SIMULATION_DETAIL_TITLE
Output message.
TOutputMessage OUT_FMT_SIMULATION_LENGTH
Output message.
TOutputMessage OUT_FMT_USAGE_PART_2
Usage massage.
TOutputMessage OUT_FMT_FIRST_SEPARATOR
Output message - first separator.
TOutputMessage OUT_FMT_CUDA_RUNTIME_NA
Print version output message.
TOutputMessage OUT_FMT_GNU_COMPILER
Print version output message.
TOutputMessage OUT_FMT_DOMAIN_SIZE
Output message.
TOutputMessage OUT_FMT_CHECKPOINT_TIME_STEPS
Output message.
TOutputMessage OUT_FMT_KWAVE_VERSION
Output message.
TOutputMessage OUT_FMT_SSE2
Print version output message.
TOutputMessage OUT_FMT_COMPRESSION_LEVEL
Output message.
TOutputMessage OUT_FMT_FINSIH_NO_DONE
Output message - finish line without done.
TOutputMessage OUT_FMT_POST_PROCESSING
Output message.
TOutputMessage OUT_FMT_SSE41
Print version output message.
TOutputMessage OUT_FMT_DATA_LOADING
Output message.
TOutputMessage OUT_FMT_CUDA_GRID_SHAPE_FORMAT
Output message.
TOutputMessage OUT_FMT_RECOVER_FROM
Output message.
TOutputMessage OUT_FMT_CUDA_CAPABILITY
Print version output message.
TOutputMessage OUT_FMT_CUDA_CODE_ARCH
Print version output message.
TOutputMessage OUT_FMT_GIT_HASH_LEFT
Output message.
TOutputMessage OUT_FMT_SAMPLING_BEGINS_AT
Output message.
TOutputMessage OUT_FMT_FFT_PLANS
Output message.
TOutputMessage OUT_FMT_NEW_LINE
Output message - new line.
TOutputMessage OUT_FMT_OUTPUT_FILE
Output message.
TOutputMessage OUT_FMT_END_OF_SIMULATION
Output message.
TOutputMessage OUT_FMT_SIMULATION_HEADER
Output message.
TOutputMessage OUT_FMT_SIMULATOIN_END_SEPARATOR
Output message.
TOutputMessage OUT_FMT_SSE3
Print version output message.
TOutputMessage OUT_FMT_AVX2
Print version output message.
TOutputMessage OUT_FMT_BENCHMARK_TIME_STEP
Output message.
TOutputMessage OUT_FMT_DEVICE_MEMORY_USAGE
Output message.
TOutputMessage OUT_FMT_CUDA_DEVICE
Print version output message.
TOutputMessage OUT_FMT_USAGE_THREADS
Usage massage.
TOutputMessage OUT_FMT_ELAPSED_TIME
Output message.
TOutputMessage OUT_FMT_VERTICAL_LINE
Output message - vertical line.
TOutputMessage OUT_FMT_INTEL_COMPILER
Print version output message.
TOutputMessage OUT_FMT_LINUX_BUILD
Print version output message.
TOutputMessage OUT_FMT_VERSION_GIT_HASH
Print version output message.
TOutputMessage OUT_FMT_SELECTED_DEVICE
Output message.
TOutputMessage OUT_FMT_CUDA_SAMPLER_GRID_SHAPE
Output message.
TOutputMessage OUT_FMT_READING_OUTPUT_FILE
Output message.
TOutputMessage OUT_FMT_NUMBER_OF_THREADS
Output message.
TOutputMessage OUT_FMT_CUDA_RUNTIME
Print version output message.
TOutputMessage OUT_FMT_CUDA_DEVICE_NAME
Print version output message.
TOutputMessage OUT_FMT_LAST_SEPARATOR
Output message -last separator.
TOutputMessage OUT_FMT_DEVICE_ID
Output message.
TOutputMessage OUT_FMT_READING_CONFIGURATION
Output message.
TOutputMessage OUT_FMT_CUDA_SOLVER_GRID_SHAPE
Output message.
TOutputMessage OUT_FMT_CODE_NAME
Output message.
TOutputMessage OUT_FMT_WINDOWS_BUILD
Print version output message.
TOutputMessage OUT_FMT_SSE42
Print version output message.
TOutputMessage OUT_FMT_CUDA_DRIVER
Print version output message.
TOutputMessage OUT_FMT_BUILD_NO_DATE_TIME
Print version output message.
TOutputMessage OUT_FMT_CREATING_OUTPUT_FILE
Output message.
TOutputMessage OUT_FMT_MAC_OS_BUILD
Print version output message.
TOutputMessage OUT_FMT_SEPARATOR
Output message - separator.
TOutputMessage OUT_FMT_INIT_HEADER
Output message.
TOutputMessage OUT_FMT_DOMAIN_SIZE_FORMAT
Output message.
TOutputMessage OUT_FMT_INPUT_FILE
Output message.
TOutputMessage OUT_FMT_SENSOR_MASK_CUBOID
Output message.
TOutputMessage OUT_FMT_AVX
Print version output message.
TOutputMessage OUT_FMT_PRE_PROCESSING
Output message.
TOutputMessage OUT_FMT_SAMPLING_FLAGS
Output message.
TOutputMessage OUT_FMT_CHECKPOINT_FILE
Output message.
TOutputMessage OUT_FMT_CREATING_CHECKPOINT
Output message.
TOutputMessage OUT_FMT_FAILED
Output message - failed message.
TOutputMessage OUT_FMT_COMP_RESOURCES_HEADER
Output message.
TOutputMessage OUT_FMT_COPY_SENSOR_MASK
Output message.
const std::string TOutputMessage
Datatype for output messages.
TOutputMessage OUT_FMT_DONE
Output message - Done with two spaces.
TOutputMessage OUT_FMT_CUDA_DEVICE_NAME_PADDING
Print version output message.
TOutputMessage OUT_FMT_STORING_CHECKPOINT_DATA
Output message.