af531c1f96Added a sample for benchmarking
jpekkila
2020-03-30 17:22:41 +03:00
cc64968b9eGPUDirect was off, re-enabled
jpekkila
2020-03-26 18:24:42 +02:00
28792770f2Better overlap with computation and comm. when inner integration is launched first
jpekkila
2020-03-26 18:00:01 +02:00
4c82e3c563Removed old debug error check
jpekkila
2020-03-26 17:59:29 +02:00
5a898b8e95mpitest now gives a warning instead of a compilation failure if MPI is not enabled
jpekkila
2020-03-26 15:31:29 +02:00
08f567619aRemoved old unused functions for MPi integration and comm
jpekkila
2020-03-26 15:04:57 +02:00
329a71d299Added an example how to run the code with MPI
jpekkila
2020-03-26 15:02:55 +02:00
ed7cf3f540Added a production-ready interface for doing multi-node runs with Astaroth with MPI
jpekkila
2020-03-26 15:02:37 +02:00
dad84b361fRenamed Grid structure to GridDims structure to avoid confusion with MPI Grids used in device.cc
jpekkila
2020-03-26 15:01:33 +02:00
db120c129eModelsolver computes now any built-in parameters automatically instead of relying on the user to supply them (inv_dsx etc)
jpekkila
2020-03-26 14:59:07 +02:00
fbd4b9a385Made the MPI flag global instead of just core
jpekkila
2020-03-26 14:57:22 +02:00
e1bec4459bRemoved an unused variable
jpekkila
2020-03-25 13:54:43 +02:00
e36ee7e2d6AC_multigpu_offset tested to work on at least 2 nodes and 8 GPUs. Forcing should now work with MPI
jpekkila
2020-03-25 13:51:00 +02:00
0254628016Updated API specification. The DSL syntax allows only C++-style casting.
jpekkila
2020-03-25 11:28:30 +00:00
672137f7f1WIP further MPI optimizations
jpekkila
2020-03-24 19:02:58 +02:00
ef63813679Explicit check that critical parameters like inv_dsx are properly initialized before calling integration
jpekkila
2020-03-24 17:01:24 +02:00
8c362b44f0Added more warning in case some of the model solver parameters are not initialized
jpekkila
2020-03-24 16:56:30 +02:00
d520835c42Added integration to MPI comm, now completes a full integration step. Works at least on 2 nodes
jpekkila
2020-03-24 16:55:38 +02:00
37d6ad18d3Fixed formatting in the API specification file
jpekkila
2020-03-04 15:09:23 +02:00
13b9b39c0dRenamed sink_particle.md to .txt to avoid it showing up in the documentation
jpekkila
2020-02-28 14:44:51 +02:00
daa895d2fcFixed an issue that prevented Ninja being used as an alternative build system to Make. There's no signifant performance benefit to using Ninja though. Build times: 29-32 s (Make) and 27-28 s (Ninja)
jpekkila
2020-02-10 14:37:48 +02:00
7b39a6bb1dAC_multigpu_offset is now calculated with MPI. Should now work with forcing, but not tested
jpekkila
2020-02-03 15:45:23 +02:00
50af620a7bMore accurate timing when benchmarking MPI. Also made GPU-GPU communication the default. Current version of UCX is bugged, must export 'UCX_MEMTYPE_CACHE=n' to workaround memory errors when doing GPU-GPU comm
jpekkila
2020-02-03 15:27:36 +02:00
459d39a411README.md edited online with Bitbucket
jpekkila
2020-01-28 17:10:52 +00:00
ade8b10e8fbitbucket-pipelines.yml edited online with Bitbucket. Removed an unnecessary compiler flag.
jpekkila
2020-01-28 17:09:35 +00:00
17c935ce19Added padding to param name buffers to make them have NUM_*_PARAMS+1 elements. This should satisfy some strict compilation checks.
jpekkila
2020-01-28 18:53:09 +02:00
89f4d08b6cFixed a possible out-of-bounds access in error checking when NUM_*_PARAMS is 0
jpekkila
2020-01-28 18:43:03 +02:00
67f2fcc88dSetting inv_dsx etc explicitly is no longer required as they are set to default values in acc/stdlib/stdderiv.h
jpekkila
2020-01-28 18:22:27 +02:00
0ccd4e3dbcMajor 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.
jpekkila
2020-01-28 18:17:31 +02:00
6dfe3ed4d6Added out-of-the-box support for MPI (though not enabled by default). Previously the user had to pass mpicxx explicitly as the cmake compiler in order to compile MPI code, but this was bad practice and it's better to let cmake handle the include and compilation flags.
jpekkila
2020-01-28 15:59:20 +02:00
85d4de24e3Recompilation is now properly triggered when acc sources or the ac standard library are modified
jpekkila
2020-01-28 14:12:25 +02:00
07dd9ff024Updated documentation with the changes made for Astaroth 2.2
jpekkila
2020-01-28 13:36:51 +02:00
4c9523675cMight as well enable the C11 standard (separate from CXX11)
jpekkila
2020-01-27 18:16:02 +02:00
8464c1207dSet host compiler CXX standard explicitly to 11
jpekkila
2020-01-27 18:14:29 +02:00
fcd61180c8Added more information to MULTIGPU_ENABLED cmake flag
jpekkila
2020-01-27 17:19:19 +02:00
9e7e67819fTurned MULTIGPU_ENABLED=ON to be equivalent with the master branch
jpekkila
2020-01-27 17:05:29 +02:00
927d4d31a5Enabled CXX 11 support for CUDA code (required)
jpekkila
2020-01-27 17:04:52 +02:00
e751ee991bMath operators are now using consistent precision throughout the project
jpekkila
2020-01-27 17:04:14 +02:00
2bc3f9feddIncluding when compiling Core seems to be unnecessary since we already include earlier
jpekkila
2020-01-24 07:31:51 +02:00
14ff619ba6Merge branch 'master' into astaroth_2.2_cleanup
jpekkila
2020-01-24 07:18:30 +02:00
e27be3bdc8CMakeLists.txt edited online with Bitbucket
jpekkila
2020-01-24 05:15:49 +00:00
2f7e4bf3a2Enabled MPI compilation test in bitbucket-pipelines.yml.
jpekkila
2020-01-24 05:12:27 +00:00
f8cd571323Now CMake and compilation flags are functionally equivalent with the current master branch, not taking into account the deprecated flags. Also various small improvements to building.
jpekkila
2020-01-24 07:00:49 +02:00
c7c2a3eea4Simplified/rewrote the root CMakeLists.txt s.t. compilation bugs are easier to pinpoint. WIP, not all functionality is yet enabled (primarily compilation options like MPI_ENABLED and others)
jpekkila
2020-01-23 20:07:59 +02:00
a5b5e418d4Moved all headers used throughout the library to src/common
jpekkila
2020-01-23 20:06:47 +02:00
78fbcc090dReordered src/core to have better division to host and device code (this is more likely to work when compiling with mpicxx). Disabled separate compilation of CUDA kernels as this complicates compilation and is a source of many cmake/cuda bugs. As a downside, GPU code takes longer to compile.
jpekkila
2020-01-23 20:06:20 +02:00
96389e9da6Modified standalone includes to function with new astaroth headers
jpekkila
2020-01-23 20:03:25 +02:00
3adb0242a4src/utils is now a real library. Includable with the astaroth_utils.h header and linkable with libastaroth_utils.a. The purpose of Astaroth Utils is to function as a generic utility library in contrast to Astaroth Standalone which is essentially hardcoded only for MHD.
jpekkila
2020-01-23 20:02:38 +02:00
fdd829b888Cleaned up samples and removed old unused stuff. Simplified CMake files.
jpekkila
2020-01-23 20:00:19 +02:00
7215e842fcSimplified 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.
jpekkila
2020-01-23 19:59:44 +02:00
ba899211ffBetter code quality for ACC
jpekkila
2020-01-23 18:08:06 +02:00
5de163e8d1Added commented out pragma unrolls to remind how packing could be improved. Though at the moment unrolls actually make the performance much worse, reasons unknown.
jpekkila
2020-01-22 19:27:45 +02:00
41f8e9aebbRemoved an old inefficient function for MPI comm
jpekkila
2020-01-22 19:26:33 +02:00
caacf2b33cRemoved --restrict flag from CUDA compilation for safety
jpekkila
2020-01-22 19:25:26 +02:00
ff6a7155e5Added a simplified and cleaned up 3D decomp MPI implementation. Tested to work at least up to 2x2x2 nodes.
jpekkila
2020-01-17 15:22:23 +02:00
975a15f7f4Removed all MPI-related code in preparation of a rewrite of the MPI stuff
jpekkila
2020-01-17 14:22:11 +02:00
9264b7515aWorking 3D decomp, unoptimized
jpekkila
2020-01-16 21:47:05 +02:00
29b38d3b89MPI distribute and gather were incorrect, fixed. Now tested to work with 1,2, and 4 GPUs.
jpekkila
2020-01-16 19:12:32 +02:00
d7f56eeb67Boundary conditions for 3D decomposition with MPI now working on a single node.
jpekkila
2020-01-16 16:34:33 +02:00
50bf8b7148MPI communication of corners via CPU OK
jpekkila
2020-01-16 15:17:57 +02:00
f77ab8a809Removed unnecessary README and incorrect building instructions for mpitest
jpekkila
2020-01-16 14:49:07 +02:00
c76c2afd5eMerge branch 'master' into 3d-decomposition-2020-01
jpekkila
2020-01-16 13:21:59 +02:00
bb70c660bbbitbucket-pipelines.yml edited online with Bitbucket
jpekkila
2020-01-15 15:20:12 +00:00
5d412dd671bitbucket-pipelines.yml: better to build without real-time visualization, since that depends on SDL2 building correctly which is not in our hands.
jpekkila
2020-01-15 15:17:21 +00:00
e3f645d496bitbucket-pipelines.yml edited online with Bitbucket. Now builds all modules with single and double precision.
jpekkila
2020-01-15 15:12:11 +00:00
8f646e700eUpdated README.md with the new BUILD_SAMPLES option
jpekkila
2020-01-15 17:02:47 +02:00
7a099a008eRemoved build flags for old samples, replaced with BUILD_SAMPLES
jpekkila
2020-01-15 16:56:58 +02:00
65d9274eaaUpdated samples to have consistent naming
jpekkila
2020-01-15 16:56:02 +02:00