Commit Graph

  • 9065381b2a Added the configuration used for benchmarking (not to be merged to master) jpekkila 2020-03-30 18:01:35 +03:00
  • 850b37e8c8 Added a switch for generating strong and weak scaling results jpekkila 2020-03-30 17:56:12 +03:00
  • d4eb3e0d35 Benchmarks are now written into a csv-file jpekkila 2020-03-30 17:41:42 +03:00
  • 9c5011d275 Renamed t to terr to avoid naming conflicts jpekkila 2020-03-30 17:41:09 +03:00
  • 864699360f Better-looking autoformat jpekkila 2020-03-30 17:40:38 +03:00
  • af531c1f96 Added a sample for benchmarking jpekkila 2020-03-30 17:22:41 +03:00
  • cc64968b9e GPUDirect was off, re-enabled jpekkila 2020-03-26 18:24:42 +02:00
  • 28792770f2 Better overlap with computation and comm. when inner integration is launched first jpekkila 2020-03-26 18:00:01 +02:00
  • 4c82e3c563 Removed old debug error check jpekkila 2020-03-26 17:59:29 +02:00
  • 5a898b8e95 mpitest now gives a warning instead of a compilation failure if MPI is not enabled jpekkila 2020-03-26 15:31:29 +02:00
  • 08f567619a Removed old unused functions for MPi integration and comm jpekkila 2020-03-26 15:04:57 +02:00
  • 329a71d299 Added an example how to run the code with MPI jpekkila 2020-03-26 15:02:55 +02:00
  • ed7cf3f540 Added a production-ready interface for doing multi-node runs with Astaroth with MPI jpekkila 2020-03-26 15:02:37 +02:00
  • dad84b361f Renamed Grid structure to GridDims structure to avoid confusion with MPI Grids used in device.cc jpekkila 2020-03-26 15:01:33 +02:00
  • db120c129e Modelsolver 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
  • fbd4b9a385 Made the MPI flag global instead of just core jpekkila 2020-03-26 14:57:22 +02:00
  • e1bec4459b Removed an unused variable jpekkila 2020-03-25 13:54:43 +02:00
  • ce81df00e3 Merge branch 'master' of https://bitbucket.org/jpekkila/astaroth jpekkila 2020-03-25 13:51:07 +02:00
  • e36ee7e2d6 AC_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
  • 0254628016 Updated API specification. The DSL syntax allows only C++-style casting. jpekkila 2020-03-25 11:28:30 +00:00
  • 672137f7f1 WIP further MPI optimizations jpekkila 2020-03-24 19:02:58 +02:00
  • ef63813679 Explicit check that critical parameters like inv_dsx are properly initialized before calling integration jpekkila 2020-03-24 17:01:24 +02:00
  • 8c362b44f0 Added more warning in case some of the model solver parameters are not initialized jpekkila 2020-03-24 16:56:30 +02:00
  • d520835c42 Added 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
  • 37d6ad18d3 Fixed formatting in the API specification file jpekkila 2020-03-04 15:09:23 +02:00
  • 13b9b39c0d Renamed sink_particle.md to .txt to avoid it showing up in the documentation jpekkila 2020-02-28 14:44:51 +02:00
  • daa895d2fc Fixed 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
  • 7b39a6bb1d AC_multigpu_offset is now calculated with MPI. Should now work with forcing, but not tested jpekkila 2020-02-03 15:45:23 +02:00
  • 50af620a7b More 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
  • 459d39a411 README.md edited online with Bitbucket jpekkila 2020-01-28 17:10:52 +00:00
  • ade8b10e8f bitbucket-pipelines.yml edited online with Bitbucket. Removed an unnecessary compiler flag. jpekkila 2020-01-28 17:09:35 +00:00
  • 17c935ce19 Added 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
  • 89f4d08b6c Fixed a possible out-of-bounds access in error checking when NUM_*_PARAMS is 0 jpekkila 2020-01-28 18:43:03 +02:00
  • 7685d8a830 Astaroth 2.2 update complete. jpekkila 2020-01-28 18:28:38 +02:00
  • 67f2fcc88d Setting 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
  • 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. jpekkila 2020-01-28 18:17:31 +02:00
  • 6dfe3ed4d6 Added 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
  • 85d4de24e3 Recompilation is now properly triggered when acc sources or the ac standard library are modified jpekkila 2020-01-28 14:12:25 +02:00
  • 07dd9ff024 Updated documentation with the changes made for Astaroth 2.2 jpekkila 2020-01-28 13:36:51 +02:00
  • 5444c84cff Formatting jpekkila 2020-01-27 18:24:46 +02:00
  • 4c9523675c Might as well enable the C11 standard (separate from CXX11) jpekkila 2020-01-27 18:16:02 +02:00
  • 8464c1207d Set host compiler CXX standard explicitly to 11 jpekkila 2020-01-27 18:14:29 +02:00
  • fcd61180c8 Added more information to MULTIGPU_ENABLED cmake flag jpekkila 2020-01-27 17:19:19 +02:00
  • 9e7e67819f Turned MULTIGPU_ENABLED=ON to be equivalent with the master branch jpekkila 2020-01-27 17:05:29 +02:00
  • 927d4d31a5 Enabled CXX 11 support for CUDA code (required) jpekkila 2020-01-27 17:04:52 +02:00
  • e751ee991b Math operators are now using consistent precision throughout the project jpekkila 2020-01-27 17:04:14 +02:00
  • 2bc3f9fedd Including when compiling Core seems to be unnecessary since we already include earlier jpekkila 2020-01-24 07:31:51 +02:00
  • 14ff619ba6 Merge branch 'master' into astaroth_2.2_cleanup jpekkila 2020-01-24 07:18:30 +02:00
  • e27be3bdc8 CMakeLists.txt edited online with Bitbucket jpekkila 2020-01-24 05:15:49 +00:00
  • 2f7e4bf3a2 Enabled MPI compilation test in bitbucket-pipelines.yml. jpekkila 2020-01-24 05:12:27 +00:00
  • f8cd571323 Now 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
  • c7c2a3eea4 Simplified/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
  • a5b5e418d4 Moved all headers used throughout the library to src/common jpekkila 2020-01-23 20:06:47 +02:00
  • 78fbcc090d Reordered 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
  • 96389e9da6 Modified standalone includes to function with new astaroth headers jpekkila 2020-01-23 20:03:25 +02:00
  • 3adb0242a4 src/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
  • fdd829b888 Cleaned up samples and removed old unused stuff. Simplified CMake files. jpekkila 2020-01-23 20:00:19 +02:00
  • 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. jpekkila 2020-01-23 19:59:44 +02:00
  • ba899211ff Better code quality for ACC jpekkila 2020-01-23 18:08:06 +02:00
  • 5de163e8d1 Added 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
  • 41f8e9aebb Removed an old inefficient function for MPI comm jpekkila 2020-01-22 19:26:33 +02:00
  • caacf2b33c Removed --restrict flag from CUDA compilation for safety jpekkila 2020-01-22 19:25:26 +02:00
  • 868bf3ed5e Merge branch 'master' of https://bitbucket.org/jpekkila/astaroth jpekkila 2020-01-22 15:21:10 +02:00
  • ba8960cd08 Formatting fixes to documentation jpekkila 2020-01-20 19:28:00 +02:00
  • 354cf81777 MPI_Request was saved to address pointing to local memory, fixed jpekkila 2020-01-20 19:15:20 +02:00
  • 54d91e7eeb Removed debug synchronization from packing.cu jpekkila 2020-01-20 18:58:06 +02:00
  • 993bfc4533 Better concurrency and some simplifications (MPI). jpekkila 2020-01-20 18:45:24 +02:00
  • 765ce9a573 Some concurrency optimizations for 3D blocking jpekkila 2020-01-20 17:08:23 +02:00
  • 6d4f696e60 Initial implementation for parallel compute + communication jpekkila 2020-01-20 16:21:11 +02:00
  • 3625e9db5f Added timing to acDeviceRunMPITest() jpekkila 2020-01-20 14:54:26 +02:00
  • af51534d35 Skipping also src/core/kernels/deprecated when generating docs jpekkila 2020-01-18 15:29:46 +02:00
  • bbdbea964e Renamed the old WIP manual from .md to .txt s.t. it's not scanned when generating doxygen documentation jpekkila 2020-01-18 15:27:59 +02:00
  • e8c594769f Excluded directories that are not core parts of the library when generating doxygen documentation jpekkila 2020-01-18 15:26:18 +02:00
  • 462123e220 Added link to the repository (README.md) jpekkila 2020-01-18 15:20:18 +02:00
  • d034cadfac Updated copyright years jpekkila 2020-01-17 15:34:10 +02:00
  • 19ccc751af Merge branch 'master' into 3d-decomposition-2020-01 jpekkila 2020-01-17 15:27:40 +02:00
  • 88a4a1718d More cleanup jpekkila 2020-01-17 15:27:02 +02:00
  • ff6a7155e5 Added 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
  • 975a15f7f4 Removed all MPI-related code in preparation of a rewrite of the MPI stuff jpekkila 2020-01-17 14:22:11 +02:00
  • 9264b7515a Working 3D decomp, unoptimized jpekkila 2020-01-16 21:47:05 +02:00
  • 29b38d3b89 MPI 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
  • d7f56eeb67 Boundary conditions for 3D decomposition with MPI now working on a single node. jpekkila 2020-01-16 16:34:33 +02:00
  • 50bf8b7148 MPI communication of corners via CPU OK jpekkila 2020-01-16 15:17:57 +02:00
  • f77ab8a809 Removed unnecessary README and incorrect building instructions for mpitest jpekkila 2020-01-16 14:49:07 +02:00
  • e4c9c16809 Clarified licencing jpekkila 2020-01-16 14:24:41 +02:00
  • 29d40326b0 Clarified licencing jpekkila 2020-01-16 14:24:41 +02:00
  • c76c2afd5e Merge branch 'master' into 3d-decomposition-2020-01 jpekkila 2020-01-16 13:21:59 +02:00
  • bb70c660bb bitbucket-pipelines.yml edited online with Bitbucket jpekkila 2020-01-15 15:20:12 +00:00
  • 5d412dd671 bitbucket-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
  • e3f645d496 bitbucket-pipelines.yml edited online with Bitbucket. Now builds all modules with single and double precision. jpekkila 2020-01-15 15:12:11 +00:00
  • 8f646e700e Updated README.md with the new BUILD_SAMPLES option jpekkila 2020-01-15 17:02:47 +02:00
  • 7a099a008e Removed build flags for old samples, replaced with BUILD_SAMPLES jpekkila 2020-01-15 16:56:58 +02:00
  • 65d9274eaa Updated samples to have consistent naming jpekkila 2020-01-15 16:56:02 +02:00
  • efa95147f3 Renamed exampleproject -> cpptest jpekkila 2020-01-15 16:25:27 +02:00
  • 23efcb413f Introduced a sample directory and moved all non-library-components from src to there jpekkila 2020-01-15 16:24:38 +02:00
  • a937546ffb Added a new CMake option: BUILD_SAMPLES. jpekkila 2020-01-15 16:19:39 +02:00
  • 604005ed37 Now compiles after compile_acc_module.sh moved to other place. Miikka Vaisala 2020-01-15 13:58:19 +08:00
  • c3727e2183 Autoformatting jpekkila 2020-01-14 22:13:53 +02:00
  • 20ab7b7c36 Readded scripts/fix_style.sh. It seems to have disappeared at some point, have no idea. Use with care. jpekkila 2020-01-14 22:09:43 +02:00
  • 74cbcf390e Removed deprecated unused files jpekkila 2020-01-14 21:56:00 +02:00