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