Commit Graph

518 Commits

Author SHA1 Message Date
Miikka Vaisala
94d1d053bc ReduceVecScal calls added. For Alfven speeds. 2020-09-11 15:54:53 +08:00
jpekkila
f21c6a8c0b Disabled LFORCING and LUPWD temporarily until the new MPI standalone module is properly tested 2020-08-24 18:46:38 +03:00
jpekkila
4052120f52 dt wasn't propagated properly to all GPUs when computing integration steps, fixed 2020-08-24 18:33:54 +03:00
jpekkila
e1dd8df988 Re-enabled warnings about invalid device constants if AC_VERBOSE=OFF 2020-08-24 17:20:35 +03:00
jpekkila
8199ff914f Added acGridLoadScalarUniform and acGridLoadVectorUniform functions for loading specific device constants with MPI 2020-08-24 17:19:02 +03:00
jpekkila
94794cee91 Added acVertexBufferSet in the utils interface 2020-08-24 14:29:01 +03:00
jpekkila
d966afe830 Added VERBOSE CMake option and made various prints optional to clean the output. VERBOSE is by off by default, pass cmake -DVERBOSE=ON to re-enable various non-critical warning and status prints (important warnings are still visible regardless of the flag). 2020-08-21 21:19:42 +03:00
jpekkila
9f676a6d5d Fixed some stupid logic when loading uniforms 2020-08-21 20:23:50 +03:00
jpekkila
764e4dda69 Streamlined verification 2020-08-21 20:11:25 +03:00
jpekkila
56273433fe Fixed inconsistency in the acGridLoad parameter order 2020-08-21 14:40:11 +03:00
jpekkila
b0cfceab98 Merged with master 2020-08-19 16:16:06 +03:00
jpekkila
46cfa9cd37 Now using MPI C bindings instead of the (deprecated?) C++ bindings due to compilation issues on some machines (error: cast between incompatible function types, ompi_mpi_cxx_op_intercept) 2020-08-19 15:50:16 +03:00
jpekkila
f9e9a4a4ef Streamlined setting up MPI in the CMakeLists 2020-08-19 13:44:35 +03:00
jpekkila
e051d72091 Moved standalone from src to samples 2020-08-19 13:35:49 +03:00
jpekkila
a85b8b8cd1 MPI: corners are now transferred by default because 1) with those Astaroth works with any symmetric stencil and 2) corners have very small impact on performance. Also disabled resetting the device s.t. one could potentially assign many subgrids to one GPU (f.ex. in AMR) 2020-08-19 12:05:20 +03:00
jpekkila
3afab77533 Removed astaroth_utils from astaroth_core dependencies 2020-07-29 19:58:21 +03:00
jpekkila
003c202e8c Pulled useful changes from the benchmark branch. GPUDirect RDMA (unpinned) is now the default for MPI communication. 2020-07-29 16:39:24 +03:00
jpekkila
6cab3586cf The generated fortran header is now consistent with fortran conventions. Also cleaned up the C version of the header. 2020-06-29 01:06:30 +03:00
jpekkila
50fb54f1aa Added more warnings since its easy to make off-by-one mistakes when dealing with fortran-c-interop 2020-06-28 18:14:54 +03:00
jpekkila
e764725564 acUpdateBuiltinParams now recalculates AC_inv_dsx and others if necessary 2020-06-26 09:54:17 +03:00
jpekkila
6f59890a3f Added loading and storing functions to the fortran interface 2020-06-26 09:52:33 +03:00
jpekkila
7e71e32359 Fortran does not seem to really support arrays of pointers, better to modify the interface function to take the f array as an input and use it in C to costruct a proper AcMesh 2020-06-25 20:21:16 +03:00
jpekkila
1b50374cdb Added the rest of the basic functions required for running simulations with the fortran interface 2020-06-25 20:09:35 +03:00
jpekkila
0a19192004 Auto-optimization was not on for all GPUs when using MPI. May have to rerun all benchmarks for the MPI paper. 2020-06-25 19:53:39 +03:00
jpekkila
172ffc34dc Was missing another fortran file, added 2020-06-25 06:44:27 +03:00
jpekkila
fbb8d7c7c6 Added a minimal Fortran interface to Astaroth 2020-06-25 06:34:16 +03:00
jpekkila
196edac46d Added proper casts to modelsolver.c 2020-06-24 17:03:54 +03:00
jpekkila
ba0bfd65b4 Merged the new reduction functions manually 2020-06-24 16:10:27 +03:00
jpekkila
ff1a601f85 Merged mpi-to-master-merge-candidate-2020-06-01 here 2020-06-24 16:08:14 +03:00
jpekkila
0d1c5b3911 Autoformatted 2020-06-24 15:56:30 +03:00
jpekkila
3c3b2a1885 Reverted the default settings to what they were before merge. Note: LFORCING (1) is potentially not tested properly, TODO recheck. 2020-06-24 15:35:19 +03:00
jpekkila
88f99c12e4 Fixed #fi -> #endif 2020-06-24 15:20:43 +03:00
jpekkila
f04e347c45 Cleanup before merging to the master merge candidate branch 2020-06-24 15:13:15 +03:00
jpekkila
0e4b39d6d7 Added a toggle for using pinned memory 2020-06-11 11:28:52 +03:00
jpekkila
1cdb9e2ce7 Added missing synchronization to the end of the new integration function 2020-06-10 12:32:56 +03:00
jpekkila
fa422cf457 Added a better-pipelined version of the acGridIntegrate and a switch for toggling the transfer of corners 2020-06-10 02:16:23 +03:00
jpekkila
9840b817d0 Added the (hopefully final) basic test case used for the benchmarks 2020-06-07 21:59:33 +03:00
Oskar Lappi
cd49db68d7 No barrier benchmark 2020-06-07 15:50:49 +03:00
Oskar Lappi
53b48bb8ce MPI_Allreduce -> MPI_Reduce for MPI reductions + benchmark batch script
Slightly ugly because this changes the benchmark behaviour slightly
However we now have a way to run batch benchmarks from one script, no need to generate new ones
2020-06-06 22:56:05 +03:00
jpekkila
17a4f31451 Added the latest setup used for benchmarks 2020-06-04 20:47:03 +03:00
Oskar Lappi
9e5fd40838 Changes after code review by Johannes, and clang-format 2020-06-04 18:50:22 +03:00
Oskar Lappi
f7d8de75d2 Reduction test pipeline added to mpitest, Error struct changed: new label field
- CHANGED: Error struct has a new label field for labeling an error
   - The label is what is printed to screen
   - vtxbuf name lookup moved out of printErrorToScreen/print_error_to_screen
 - NEW: acScalReductionTestCase and acVecReductionTestCase
   - Define new test cases by adding them to a list in samples/mpitest/main.cc:main
 - Minor style change in verification.c to make all Verification functions similar
   and fit one screen
2020-06-04 15:10:35 +03:00
jpekkila
226de32651 Added model solution for reductions and functions for automated testing 2020-06-03 13:37:00 +03:00
Oskar Lappi
34793d4e8b Changes after code review with Johannes 2020-06-03 12:44:43 +03:00
Oskar Lappi
899d679518 Draft of MPI-based reductions acGridReduceScal, acGridReduceVec
- Calls acDeviceReduceScal/Vec first
 - Both functions then perform the same MPI-reduction (MPI_Allreduce)
 - Not tested
2020-06-02 21:59:30 +03:00
jpekkila
0d80834619 Disabled forcing and upwinding for performance tests. Set default grid size to 512^3. Set default cmake params s.t. benchmarks can be reproduced out-of-the-box. 2020-06-02 14:09:00 +03:00
jpekkila
a753ca92f2 Made cmake handle MPI linking. Potentially a bad idea (usually better to use mpicc and mpicxx wrappers) 2020-05-30 22:02:39 +03:00
jpekkila
f97ed9e513 For reason X git decided to remove integration from the most critical part of the program when merging. Luckily we have autotests. 2020-05-30 20:59:39 +03:00
jpekkila
176ceae313 Fixed various compilation warnings 2020-05-30 20:23:53 +03:00
jpekkila
4748e48c7d Spelling fixes 2020-05-28 17:10:17 +03:00