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
jpekkila
2c8c49ee24
Removed or updated some old .gitignore files
2019-09-24 17:50:41 +03:00
jpekkila
021e5f3774
Renamed NUM_STREAM_TYPES -> NUM_STREAMS
2019-09-12 15:48:38 +03:00
jpekkila
53230c9b61
Added errorchecking and more flexibility the the new acDeviceLoadScalarArray function
2019-09-05 19:56:04 +03:00
jpekkila
263a1d23a3
Added a function for loading ScalarArrays to the GPU
2019-09-05 16:35:08 +03:00
jpekkila
9e57aba9b7
New feature: ScalarArray. ScalarArrays are read-only 1D arrays containing max(mx, max(my, mz)) elements. ScalarArray is a new type of uniform and can be used for storing f.ex. forcing profiles. The DSL now also supports complex numbers and some basic arithmetic (exp, multiplication)
2019-09-02 21:26:57 +03:00
jpekkila
022e46f2e7
Merge branch 'master' into dsl_parameter_overhaul_2019-08-19
2019-08-23 13:13:57 +03:00
jpekkila
f6040f89dc
Added acPrintMeshInfo for printing all mesh parameters
2019-08-21 16:24:48 +03:00
jpekkila
0208d55e4e
Moved STENCIL_ORDER and NGHOST out of user-defined parameter as these are actually internal defines used to configure the built-in functions. Additionally, renamed all explicitly declared uniforms from dsx -> AC_dsx in the DSL in preparation for having clear connection between DSL uniforms and the library parameter handles created by the user (AcRealParam etc)
2019-08-19 16:40:47 +03:00
jpekkila
787363226b
Added functions for loading int, int3, scalar and vector constants to the device layer (acDeviceLoad...Constant)
2019-08-19 15:28:16 +03:00
jpekkila
598799d7c3
Added a new function to the device interface: acDeviceLoadMeshInfo
2019-08-19 15:14:00 +03:00
jpekkila
3369d8efec
Added a missing include
2019-08-12 11:44:27 +03:00
jpekkila
bba9ec7c3b
Implemented acNodeQueryDeviceConfiguration
2019-08-12 11:40:38 +03:00
jpekkila
b5daf22c26
Added interface function acSynchronizeMesh
2019-08-12 10:25:05 +03:00
jpekkila
fdadd463b7
Included the user-defined header after the definition of AcReal to make it available if needed.
2019-08-09 17:11:21 +03:00
jpekkila
5397495496
Added acLoadWithOffset
2019-08-08 20:43:01 +03:00
jpekkila
e79e1207f2
Added a function for checking whether CUDA-capable devices are available
2019-08-08 20:35:02 +03:00
jpekkila
8a9099d75e
Added missing functions to fix backwards compatibility with the version interfaced with Pencil Code
2019-08-08 19:49:57 +03:00
jpekkila
322cdce52c
Added some new comments + some helpful old comments from a time before the interface revision
2019-08-07 20:05:54 +03:00