Commit Graph

324 Commits

Author SHA1 Message Date
jpekkila
26bbfa089d Better multi-node communication: fire and forget. 2019-10-17 18:17:37 +03:00
jpekkila
3d852e5082 Added timing to the MPI benchmark 2019-10-17 17:43:54 +03:00
jpekkila
e0a631d81a Added the hires timer to utils 2019-10-17 17:43:34 +03:00
jpekkila
588a94c772 Added more MPI stuff. Now multi-node GPU-GPU communication with GPUDirect RDMA should work. Also device memory is now allocated in unified memory by default as this makes MPI communication simpler if RDMA is not supported. This does not affect Astaroth any other way since different devices use different portions of the memory space and we continue managing memory transfers manually. 2019-10-17 16:09:05 +03:00
jpekkila
0e88d6c339 Marked some internal functions static 2019-10-17 14:41:44 +03:00
jpekkila
7390d53f79 Added missing extern Cs to verification.h 2019-10-17 14:41:13 +03:00
jpekkila
f1e988ba6a Added stuff for the device layer for testing GPU-GPU MPI. This is a quick and dirty solution which is primarily meant for benchmarking/verification. Figuring out what the MPI interface should look like is more challenging and is not the priority right now 2019-10-17 14:40:53 +03:00
jpekkila
bb9e65a741 AC_DEFAULT_CONFIG now propagated to projects that link to astaroth utils 2019-10-17 13:05:17 +03:00
jpekkila
65a2d47ef7 Made grid.cu (multi-node) to compile without errors. Not used though. 2019-10-17 13:03:42 +03:00
jpekkila
ef94ab5b96 A small update to ctest 2019-10-17 13:02:41 +03:00
jpekkila
0865f0499b Various improvements to the MPI-GPU implementation, but linking MPI libraries with both the host C-project and the core library seems to be a major pain. Currently the communication is done via gpu->cpu->cpu->gpu. 2019-10-15 19:32:16 +03:00
jpekkila
113be456d6 Undeprecated the wrong function in commit b693c8a 2019-10-15 18:11:07 +03:00
jpekkila
1ca089c163 New cmake option: MPI_ENABLED. Enables MPI functions on the device layer 2019-10-15 17:57:53 +03:00
jpekkila
0d02faa5f5 Working base for gathering, distributing and communicating halos with MPI 2019-10-15 17:39:26 +03:00
jpekkila
b11ef143eb Moved a debug print further to reduce clutter 2019-10-15 17:38:29 +03:00
jpekkila
fd9dc7ca98 Added periodic boundconds to utils 2019-10-15 17:37:57 +03:00
jpekkila
ff1ad37047 Some small improvements to the utils library 2019-10-15 17:00:58 +03:00
jpekkila
46ad9da8c8 Pulled some stuff from the mpi branch 2019-10-15 17:00:44 +03:00
jpekkila
4ae9c74d9d Added a function for randomizing vertex buffers (useful for testing) 2019-10-15 16:13:11 +03:00
jpekkila
37171689c8 Formatting 2019-10-15 16:12:44 +03:00
jpekkila
b693c8adb4 Undeprecated acDeviceLoadMesh and acDeviceStoreMesh, these are actually very nice to have 2019-10-15 16:12:31 +03:00
jpekkila
8d86ac6f9e Started preparing the MPI version for benchmarks and added a solve-independent version of the verification functions to the utils library 2019-10-15 15:54:15 +03:00
jpekkila
08188f3f5b is_valid is now consistently overloaded (parameter passed as a reference). Older CUDA compilers complained about this. 2019-10-14 21:18:21 +03:00
jpekkila
08f155cbec Finetuning some error checks 2019-10-07 20:40:32 +03:00
jpekkila
5d4f47c3d2 Added overloads for vector in-place addition and subtraction 2019-10-07 19:40:54 +03:00
jpekkila
ba49e7e400 Replaced deprecated DCONST_INT calls with overloaded DCONST() 2019-10-07 19:40:27 +03:00
jpekkila
ee4ff730f6 Deprecated inv_dsx and friends from utils/config_loader.c since those are not defined in the case where the user does not include stdderiv.h 2019-10-07 17:01:21 +03:00
jpekkila
66cfcefb34 More error checks 2019-10-07 17:00:23 +03:00
jpekkila
0e1d1b9fb4 Some optimizations for DSL compilation. Also a new feature: Inplace addition and subtraction += and -= are now allowed 2019-10-07 16:33:24 +03:00
jpekkila
f7c079be2a Removed everything unnecessary from integration.cuh. Now all derivatives etc are available in a standard library header (acc/stdlib/stdderiv.h) 2019-10-07 15:47:33 +03:00
Miikka Vaisala
f8e82d41af Can now set the endtime for simulation, instead of step number. 2019-10-02 15:09:26 +08:00
Miikka Vaisala
79fe634a84 Tested and works. Now it is possible to continue the simulatiom with a specific file number.
Next task: move I/O to src/utils/
2019-10-02 14:30:13 +08:00
Miikka Vaisala
0dbbcd22d5 Tested and works. We can now continue simulation from the chose snapshot number. 2019-10-02 14:09:47 +08:00
Miikka Vaisala
1b0e9803b0 Compiles and runs again.
Now to actual testing. Can we read and cotinue from and old file?
2019-10-02 13:52:38 +08:00
Miikka Vaisala
54d89f7a46 In principle should read a specifield old run.
Needs still testing and compilation.
2019-10-02 11:37:51 +08:00
Miikka Vaisala
d5b6f3b48e Drafted read_mesh() to read existing binary data with at a specific step number. 2019-10-02 11:16:30 +08:00
Miikka Vaisala
cbbfd941f8 Merge branch 'master' into io_improvement_20190924 2019-10-02 10:47:51 +08:00
jpekkila
9a16c79ce6 Renamed all references to uniforms to f.ex. loadScalarConstant -> loadScalarUniform (for consistency with the DSL) 2019-10-01 17:12:20 +03:00
jpekkila
20c2069231 Made the utility library more consistent with the core library 2019-10-01 15:45:56 +03:00
jpekkila
19b16eecc8 Added an example for creating arbitrary projects, see acc/test_solver and src/exampleproject. Note: make sure that dt is calculated adequately and that all parameters are defined properly (see src/exampleproject/simulation.cc) 2019-10-01 15:33:26 +03:00
jpekkila
5a45fe11a8 Added the utility library itself (linked with target astaroth_utils) 2019-10-01 15:23:39 +03:00
jpekkila
2c8c49ee24 Removed or updated some old .gitignore files 2019-09-24 17:50:41 +03:00
jpekkila
e4eea7db83 Added support for Volta GPUs 2019-09-24 17:19:45 +03:00
Miikka Vaisala
d7bd92ed1b Data read and written now with respect to actual AcReal properties. This will save space in the future. 2019-09-24 16:54:04 +08:00
Miikka Vaisala
d2e13d0139 Determine endianness. 2019-09-24 12:52:52 +08:00
jpekkila
bf34ec006a Merge branch 'master' into config_selection_as_runtime_option_20190918 2019-09-23 17:35:11 +03:00
jpekkila
4dfd4a1012 Changed from strncmp to strdup to work around warnings 2019-09-23 17:25:03 +03:00
Miikka Vaisala
cccc11798a Better mesh_info.list 2019-09-23 17:53:19 +08:00
jpekkila
24f46324e0 Deprecated the old style of selecting a config file (was a compile-time parameter). The config file is now a runtime parameter and can be changed without recompilation. Usage: ./ac_run -s <path/to/config/file/relative/to/ac_run/path>. config/astaroth.conf is selected by default if the custom path is not supplied to ac_run. 2019-09-18 19:22:15 +03:00
jpekkila
3bb6ca1712 The Astaroth Code Compiler (acc) is now built with cmake. Additionally, make is now used to generate the CUDA headers from DSL sources. The headers are also properly regenerated whenever a DSL file has been changed. With this commit, the DSL is now seamlessly integrated to the library and we no longer need complicated scripts to figure out the correct files. The current workflow for using custom DSL sources is to pass the DSL module directory to cmake, f.ex. cmake -DDSL_MODULE_DIR=/acc/mhd_solver. Note that the path must be absolute or then given relative to the CMakeLists.txt directory. f.ex cd build && cmake -DDSL_MODULE_DIR=../acc/mhd_solver does not work. CMake then takes all DSL files in that directory and handles the rest. 2019-09-18 17:28:29 +03:00