Commit Graph

125 Commits

Author SHA1 Message Date
jpekkila
f697b53b01 Auto-format of astaroth.h 2021-02-07 19:53:49 +02:00
jpekkila
bcacc357d3 Now all host functions start with acHost to avoid confusion on whether the function operates on host or device memory 2020-11-24 21:32:43 +02:00
jpekkila
095f863097 Added functions acSetVertexBuffer, acNodeSetVertexBuffer, and acDeviceSetVertexBuffer for setting device memory directly to some constant 2020-11-24 21:29:14 +02:00
Miikka Vaisala
11eddabbd6 Merge branch 'master' into alt_bcond_2020_09 2020-11-23 15:47:46 +08:00
Miikka Vaisala
4add619e2f Calling boundconds compiles again. 2020-11-20 16:22:47 +08:00
Miikka Vaisala
f87d65408c Added acBoundcondStepGBC() for flexible boundary conditions. 2020-11-20 15:42:54 +08:00
Miikka Vaisala
8732480cd9 Added acIntegrateGBC() 2020-11-20 15:37:37 +08:00
Miikka Vaisala
efd3cc40cd Compiles without the API funtion call. 2020-11-20 14:11:14 +08:00
Miikka Vaisala
cb15668f2d Figuring out compilations. 2020-11-20 11:58:15 +08:00
jpekkila
349093768d Added acMeshRandomize to astaroth.h to keep core and utils separate 2020-11-02 17:14:26 +02:00
jpekkila
ae0d4de23c The root host mesh is no longer allocated during benchmarking as this caused out-of-memory errors in weak scaling tests 2020-10-29 16:33:41 +02:00
Miikka Vaisala
d060e67bec Includes also 2020-10-06 18:16:24 +08:00
Miikka Vaisala
66662c1603 Defines for new diagnostics. 2020-09-11 16:52:12 +08: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
764e4dda69 Streamlined verification 2020-08-21 20:11:25 +03:00
jpekkila
8c28aacf96 Reduction types are now generated in a same fashion as vertexbuffer handles and others 2020-08-21 19:05:01 +03:00
jpekkila
56273433fe Fixed inconsistency in the acGridLoad parameter order 2020-08-21 14:40:11 +03:00
jpekkila
3afab77533 Removed astaroth_utils from astaroth_core dependencies 2020-07-29 19:58:21 +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
d0ca1f8195 Reduction types are now generated with acc instead of being explicitly declared in astaroth.h 2020-06-28 18:16:19 +03:00
jpekkila
852fae17cf Added a function for getting the GPU count from fortran 2020-06-28 18:15:40 +03:00
jpekkila
6f59890a3f Added loading and storing functions to the fortran interface 2020-06-26 09:52:33 +03:00
jpekkila
ee4b18c81c Merge branch 'mpi-to-master-merge-candidate-2020-06-01' of https://bitbucket.org/jpekkila/astaroth into mpi-to-master-merge-candidate-2020-06-01 2020-06-25 20:40:24 +03:00
jpekkila
39c7fc6c6f Streams are now generated with acc 2020-06-25 20:40:02 +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
f11c5b84fb Forgot the actual interface from previous commits, here it is 2020-06-25 06:36:00 +03:00
jpekkila
fbb8d7c7c6 Added a minimal Fortran interface to Astaroth 2020-06-25 06:34:16 +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
jpekkila
ed7cf3f540 Added a production-ready interface for doing multi-node runs with Astaroth with MPI 2020-03-26 15:02:37 +02:00
jpekkila
17c935ce19 Added padding to param name buffers to make them have NUM_*_PARAMS+1 elements. This should satisfy some strict compilation checks. 2020-01-28 18:53:09 +02:00
jpekkila
0ccd4e3dbc Major improvement: uniforms can now be set to default values. The syntax is the same as for setting any other values, f.ex. 'uniform Scalar a = 1; uniform Scalar b = 0.5 * a;'. Undefined uniforms are still allowed, but in this case the user should load a proper value into it during runtime. Default uniform values can be overwritten by calling any of the uniform loader funcions (like acDeviceLoadScalarUniform). Improved also error checking. Now there are explicit warnings if the user tries to load an invalid value into a device constant. 2020-01-28 18:17:31 +02:00
jpekkila
7215e842fc Simplified the include directory. Everything is now in only two headers: astaroth.h and astaroth_utils.h. Removed old and unused stuff. user.h is unused in standalone but might be used with Pencil Code, so left that intact. 2020-01-23 19:59:44 +02:00
jpekkila
c3727e2183 Autoformatting 2020-01-14 22:13:53 +02:00
jpekkila
37cafd26aa Various small improvements to the website (navigation panel, better headings, formatting, etc) 2020-01-14 14:44:06 +02:00
jpekkila
5e1500fe97 Happy new year! :) 2020-01-13 21:38:07 +02:00
jpekkila
d51d48071f Updated documentation and made it work with Doxygen. Now the doc/doxygen/index.html generated with it looks quite good and contains lots of useful and up-to-date information about Astaroth 2020-01-13 21:11:04 +02:00
jpekkila
794e4393c3 Added a new function for the legacy Astaroth layer: acGetNode(). This functions returns a Node, which can be used to access acNode layer functions 2020-01-13 11:33:15 +02:00
jpekkila
5a6a3110df Reformatted 2019-12-03 15:14:26 +02:00
jpekkila
f14e35620c Now nvcc is used to compile kernels only. All host code, incl. device.cc, MPI communication and others are now compiled with the host C++ compiler. This should work around an nvcc/MPI bug on Puhti. 2019-12-03 15:12:17 +02: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
4fcf9d861f More undeprecated/deprecated fixes 2019-10-15 19:46:57 +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
1ca089c163 New cmake option: MPI_ENABLED. Enables MPI functions on the device layer 2019-10-15 17:57:53 +03:00
jpekkila
aa6c2b23d9 Built-in parameters are now added during compilation instead of defining them in CUDA sources. IMPORTANT: DCONST macro should no longer be used when accessing built-in variables. Now all uniforms are consistently accessed with the handle only 2019-10-07 17:39:27 +03:00
jpekkila
6ed3b7978d Updated the name of the generated header 2019-10-07 15:44:21 +03: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