Commit Graph

  • 26bbfa089d Better multi-node communication: fire and forget. jpekkila 2019-10-17 18:17:37 +03:00
  • 3d852e5082 Added timing to the MPI benchmark jpekkila 2019-10-17 17:43:54 +03:00
  • e0a631d81a Added the hires timer to utils jpekkila 2019-10-17 17:43:34 +03:00
  • 588a94c772 Added more MPI stuff. Now multi-node GPU-GPU communication with GPUDirect RDMA should work. Also device memory is now allocated in unified memory by default as this makes MPI communication simpler if RDMA is not supported. This does not affect Astaroth any other way since different devices use different portions of the memory space and we continue managing memory transfers manually. jpekkila 2019-10-17 16:09:05 +03:00
  • 0e88d6c339 Marked some internal functions static jpekkila 2019-10-17 14:41:44 +03:00
  • 7390d53f79 Added missing extern Cs to verification.h jpekkila 2019-10-17 14:41:13 +03:00
  • 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 jpekkila 2019-10-17 14:40:53 +03:00
  • bb9e65a741 AC_DEFAULT_CONFIG now propagated to projects that link to astaroth utils jpekkila 2019-10-17 13:05:17 +03:00
  • 859195eda4 exampleproject no longer compiled with astaroth utils jpekkila 2019-10-17 13:04:39 +03:00
  • 65a2d47ef7 Made grid.cu (multi-node) to compile without errors. Not used though. jpekkila 2019-10-17 13:03:42 +03:00
  • ef94ab5b96 A small update to ctest jpekkila 2019-10-17 13:02:41 +03:00
  • 4fcf9d861f More undeprecated/deprecated fixes jpekkila 2019-10-15 19:46:57 +03:00
  • 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. jpekkila 2019-10-15 19:32:16 +03:00
  • 113be456d6 Undeprecated the wrong function in commit b693c8a jpekkila 2019-10-15 18:11:07 +03:00
  • 1ca089c163 New cmake option: MPI_ENABLED. Enables MPI functions on the device layer jpekkila 2019-10-15 17:57:53 +03:00
  • 0d02faa5f5 Working base for gathering, distributing and communicating halos with MPI jpekkila 2019-10-15 17:39:26 +03:00
  • b11ef143eb Moved a debug print further to reduce clutter jpekkila 2019-10-15 17:38:29 +03:00
  • fd9dc7ca98 Added periodic boundconds to utils jpekkila 2019-10-15 17:37:57 +03:00
  • ff1ad37047 Some small improvements to the utils library jpekkila 2019-10-15 17:00:58 +03:00
  • 46ad9da8c8 Pulled some stuff from the mpi branch jpekkila 2019-10-15 17:00:44 +03:00
  • 4ae9c74d9d Added a function for randomizing vertex buffers (useful for testing) jpekkila 2019-10-15 16:13:11 +03:00
  • 37171689c8 Formatting jpekkila 2019-10-15 16:12:44 +03:00
  • b693c8adb4 Undeprecated acDeviceLoadMesh and acDeviceStoreMesh, these are actually very nice to have jpekkila 2019-10-15 16:12:31 +03:00
  • 8d86ac6f9e Started preparing the MPI version for benchmarks and added a solve-independent version of the verification functions to the utils library jpekkila 2019-10-15 15:54:15 +03:00
  • 08188f3f5b is_valid is now consistently overloaded (parameter passed as a reference). Older CUDA compilers complained about this. jpekkila 2019-10-14 21:18:21 +03:00
  • b667735906 Removed debug prints from the preprocessing script jpekkila 2019-10-08 00:31:15 +03:00
  • 44a86f5e80 acc: Removed debug prints, old code. Also the scope of the declarations made inside a for statement is now properly tracked jpekkila 2019-10-08 00:20:57 +03:00
  • 08f155cbec Finetuning some error checks jpekkila 2019-10-07 20:40:32 +03:00
  • ea4438f331 Adapted the old example of helical forcing with profiles to conform with the revised syntax jpekkila 2019-10-07 19:43:25 +03:00
  • 0cc5bdaa08 Added support for ScalarArrays back jpekkila 2019-10-07 19:42:24 +03:00
  • 5d4f47c3d2 Added overloads for vector in-place addition and subtraction jpekkila 2019-10-07 19:40:54 +03:00
  • ba49e7e400 Replaced deprecated DCONST_INT calls with overloaded DCONST() jpekkila 2019-10-07 19:40:27 +03:00
  • 9c575f8059 Merge branch 'master' into acc_rewrite_20191002 jpekkila 2019-10-07 18:28:33 +03:00
  • ff12332f06 Clarified the syntax for real number literals. 1.0 is the same precision as AcReal, 1.0f is an explicit float and 1.0d is an explicit double. jpekkila 2019-10-07 18:24:32 +03:00
  • ffb139883f API_specification_and_user_manual.md edited online with Bitbucket jpekkila 2019-10-07 15:22:26 +00:00
  • 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 jpekkila 2019-10-07 17:39:27 +03:00
  • 3fe7b62d3e Removed the old accrevision directory jpekkila 2019-10-07 17:37:09 +03:00
  • 6560be7056 Moved the old mhd solver to mhd_solver_DEPRECATED and replaced it with the new stencil_kernel.ac file jpekkila 2019-10-07 17:36:23 +03:00
  • 8c1e603a98 On second thought, let's revert the changes in mhd_solver and use the file I already modified instead of doing the same changes twice jpekkila 2019-10-07 17:29:53 +03:00
  • 16c8b1e748 Autoformatting jpekkila 2019-10-07 17:17:58 +03:00
  • c8e0586b60 Renamed the old .sas and .sdh files to regular headers and added #pragma once. jpekkila 2019-10-07 17:17:26 +03:00
  • ee4ff730f6 Deprecated inv_dsx and friends from utils/config_loader.c since those are not defined in the case where the user does not include stdderiv.h jpekkila 2019-10-07 17:01:21 +03:00
  • 66cfcefb34 More error checks jpekkila 2019-10-07 17:00:23 +03:00
  • 48c6174319 Added error checks to stdderiv.h jpekkila 2019-10-07 16:59:58 +03:00
  • 7afab65806 Fixed the compilation script to use the correct name for the preprocessed file jpekkila 2019-10-07 16:39:49 +03:00
  • 0e1d1b9fb4 Some optimizations for DSL compilation. Also a new feature: Inplace addition and subtraction += and -= are now allowed jpekkila 2019-10-07 16:33:24 +03:00
  • f7c079be2a Removed everything unnecessary from integration.cuh. Now all derivatives etc are available in a standard library header (acc/stdlib/stdderiv.h) jpekkila 2019-10-07 15:47:33 +03:00
  • cd09a7d9e8 Update the module compilation script with the new syntax. Now the Astaroth DSL compiler creates the files instead of having to pipe stdout to some file with a bash script jpekkila 2019-10-07 15:46:05 +03:00
  • 6ed3b7978d Updated the name of the generated header jpekkila 2019-10-07 15:44:21 +03:00
  • d8d0032972 Updated CMakeLists.txt with the correct dependencies jpekkila 2019-10-07 15:43:46 +03:00
  • d97f5b59ba Rewrote the Astaroth DSL compiler. More information and cleanup in the next commits. jpekkila 2019-10-07 15:43:20 +03:00
  • 6665d30983 Merge branch 'acc_rewrite_20191002' of https://bitbucket.org/jpekkila/astaroth into acc_rewrite_20191002 jpekkila 2019-10-03 02:36:04 +03:00
  • a651420e8d WIP changes jpekkila 2019-10-03 02:35:48 +03:00
  • a02fa349ce Commented out a grammar rule that was ambiguous jpekkila 2019-10-03 01:52:56 +03:00
  • b0162bdea0 Added DSL versions of the basic derivative operations (placeholder) jpekkila 2019-10-02 21:09:36 +03:00
  • cc3c2eb926 Added WIP stuff for the Astaroth DSL compiler rewrite. Once this branch is finished only a single source file will be needed (file ending .ac). This revision is needed to decouple absolutely all implementation-specific stuff (f.ex. AC_dsx) from the core library and make life easier for everyone. The plan is to provide a standard library header written in the DSL containing the derivative operations instead of hardcoding them in the CUDA implementation. jpekkila 2019-10-02 21:03:59 +03:00
  • 15cc71895d Merged in io_improvement_20190924 (pull request #11) Miikka Väisälä 2019-10-02 13:12:25 +00:00
  • f8e82d41af Can now set the endtime for simulation, instead of step number. Miikka Vaisala 2019-10-02 15:09:26 +08:00
  • 79fe634a84 Tested and works. Now it is possible to continue the simulatiom with a specific file number. Miikka Vaisala 2019-10-02 14:30:13 +08:00
  • 0dbbcd22d5 Tested and works. We can now continue simulation from the chose snapshot number. Miikka Vaisala 2019-10-02 14:09:47 +08:00
  • 1b0e9803b0 Compiles and runs again. Miikka Vaisala 2019-10-02 13:52:38 +08:00
  • 54d89f7a46 In principle should read a specifield old run. Miikka Vaisala 2019-10-02 11:37:51 +08:00
  • d5b6f3b48e Drafted read_mesh() to read existing binary data with at a specific step number. Miikka Vaisala 2019-10-02 11:16:30 +08:00
  • cbbfd941f8 Merge branch 'master' into io_improvement_20190924 Miikka Vaisala 2019-10-02 10:47:51 +08:00
  • 7d76250f70 Updated stencil_process.sps with the revised syntax for real literals jpekkila 2019-10-01 21:20:28 +03:00
  • a0037d1a44 Modified the syntax of writing real-valued literals with the DSL. Casts are not needed any more: f.ex. 1.0 is implicitly cast to AcReal. The syntax is now more consistent: reals must be explicitly written as a.b, where a and b are some integers. IMPORTANT: Previously the shorthands a. and .b were allowed, not anymore. Using those shorthands will result in a compilation error jpekkila 2019-10-01 21:14:33 +03:00
  • b4a6ddb074 Preprocessing writes the intermediate output to *.preprocessed files. This makes debugging various DSL syntax errors much easier since the line number in the error corresponds to the line numbers in these files. jpekkila 2019-10-01 21:08:38 +03:00
  • d4eaee7d47 First pass of the Astaroth API specification complete jpekkila 2019-10-01 18:27:37 +03:00
  • 9a16c79ce6 Renamed all references to uniforms to f.ex. loadScalarConstant -> loadScalarUniform (for consistency with the DSL) jpekkila 2019-10-01 17:12:20 +03:00
  • 98631a4e40 API specification formatting jpekkila 2019-10-01 16:33:42 +03:00
  • 20c2069231 Made the utility library more consistent with the core library jpekkila 2019-10-01 15:45:56 +03:00
  • 19b16eecc8 Added an example for creating arbitrary projects, see acc/test_solver and src/exampleproject. Note: make sure that dt is calculated adequately and that all parameters are defined properly (see src/exampleproject/simulation.cc) jpekkila 2019-10-01 15:33:26 +03:00
  • 5a45fe11a8 Added the utility library itself (linked with target astaroth_utils) jpekkila 2019-10-01 15:23:39 +03:00
  • adee6b0097 Added the new utility library as a build option jpekkila 2019-10-01 15:22:25 +03:00
  • 2c8c49ee24 Removed or updated some old .gitignore files jpekkila 2019-09-24 17:50:41 +03:00
  • e4eea7db83 Added support for Volta GPUs jpekkila 2019-09-24 17:19:45 +03:00
  • 62fa95ca0d The issue on Puhti was that it was missing a static flex library which would have provided the function yywrap. Fixed by removing the static library dependency and adding option noyywrap to the lexer generator file jpekkila 2019-09-24 17:19:19 +03:00
  • 72af2cf31d acc is now built with cmake instead of the old build script. This was mainly done to fix compilation on Puhti where I had problems linking flex even though it is available. As an added bonus the code is now safer to build since all dependencies are now rigorously tracked by cmake and make, and f.ex. change in the compiler now forces also the whole library to be rebuilt (which is the behaviour we want) jpekkila 2019-09-24 16:57:19 +03:00
  • a91da8388c Better code style in some of the acc source files jpekkila 2019-09-24 15:50:20 +03:00
  • d7bd92ed1b Data read and written now with respect to actual AcReal properties. This will save space in the future. Miikka Vaisala 2019-09-24 16:54:04 +08:00
  • d2e13d0139 Determine endianness. Miikka Vaisala 2019-09-24 12:52:52 +08:00
  • 88c3cdf0a5 README.md edited online with Bitbucket Miikka Väisälä 2019-09-24 03:11:09 +00:00
  • fb34efdbb3 New running instructions. Miikka Vaisala 2019-09-24 11:08:10 +08:00
  • cab64029df Merged in config_selection_as_runtime_option_20190918 (pull request #9) jpekkila 2019-09-24 03:01:46 +00:00
  • bf34ec006a Merge branch 'master' into config_selection_as_runtime_option_20190918 jpekkila 2019-09-23 17:35:11 +03:00
  • 4dfd4a1012 Changed from strncmp to strdup to work around warnings jpekkila 2019-09-23 17:25:03 +03:00
  • cccc11798a Better mesh_info.list Miikka Vaisala 2019-09-23 17:53:19 +08:00
  • 5cc2d613be Changed realpath to readlink -f for better combatibility in different systems. Miikka Vaisala 2019-09-23 15:35:09 +08:00
  • c85e0597c5 Merge branch 'master' of https://bitbucket.org/jpekkila/astaroth jpekkila 2019-09-19 17:55:12 +03:00
  • b9bc0899c7 Replaced a .png with .svg jpekkila 2019-09-19 17:55:00 +03:00
  • 638b4e500c Fixed an image link in the specs jpekkila 2019-09-19 17:54:25 +03:00
  • 6232176fa7 More about the DSL jpekkila 2019-09-19 17:49:13 +03:00
  • 2c118d15ea Started the DSL section of the API and DSL specification jpekkila 2019-09-19 16:56:50 +03:00
  • 750996c11d Added an image of the stencil pipeline and stages jpekkila 2019-09-19 16:54:43 +03:00
  • 1c14ec6e16 Updated Bitbucket pipelines jpekkila 2019-09-19 07:41:48 +00:00
  • 24f46324e0 Deprecated the old style of selecting a config file (was a compile-time parameter). The config file is now a runtime parameter and can be changed without recompilation. Usage: ./ac_run -s <path/to/config/file/relative/to/ac_run/path>. config/astaroth.conf is selected by default if the custom path is not supplied to ac_run. jpekkila 2019-09-18 19:22:15 +03:00
  • 3bb6ca1712 The Astaroth Code Compiler (acc) is now built with cmake. Additionally, make is now used to generate the CUDA headers from DSL sources. The headers are also properly regenerated whenever a DSL file has been changed. With this commit, the DSL is now seamlessly integrated to the library and we no longer need complicated scripts to figure out the correct files. The current workflow for using custom DSL sources is to pass the DSL module directory to cmake, f.ex. cmake -DDSL_MODULE_DIR=/acc/mhd_solver. Note that the path must be absolute or then given relative to the CMakeLists.txt directory. f.ex cd build && cmake -DDSL_MODULE_DIR=../acc/mhd_solver does not work. CMake then takes all DSL files in that directory and handles the rest. jpekkila 2019-09-18 17:28:29 +03:00
  • bce3e4de03 Made warnings about unused device functions go away jpekkila 2019-09-18 16:58:04 +03:00
  • eefd60983a 3rd party dependencies do not have to be fetched manually any more, cmake make will do that automatically if needed jpekkila 2019-09-18 09:06:03 +03:00
  • 4b6ce26f8a Merged in sink_20190723 (pull request #8) Miikka Väisälä 2019-09-17 15:14:34 +00:00