Commit Graph

261 Commits

Author SHA1 Message Date
jpekkila b73c2675e8 Added the optimized implementation of acNodeIntegrate where boundconds are done before integration instead of after 2019-08-05 20:10:13 +03:00
jpekkila 8df49370c8 Cleanup 2019-08-05 19:08:05 +03:00
jpekkila b21d2040da Added a test for building an MPI project. Building for the MPI and C API tests is now also disabled by default. 2019-08-05 18:26:12 +03:00
jpekkila b1176a0c06 Added a copyright text to ctest 2019-08-05 18:24:55 +03:00
jpekkila fa6e1116cb The interface revision now actually works. The issue was incorrect order of src and dst indices when storing the mesh. 2019-08-05 17:26:05 +03:00
jpekkila 5232d987c1 Added acStoreWithOffset to the revised interface 2019-08-05 16:18:22 +03:00
jpekkila 6dfd03664d Still does not work. I'm starting to think that instead of this one huge revision, we should modify the existing interface step-by-step. 2019-08-02 15:31:24 +03:00
jpekkila 5f2378e91b Now compiles (does not work though) 2019-08-02 15:15:18 +03:00
jpekkila 567ad61465 Multinode MPI implementation should be done later in its own branch. The focus of this branch is to revise the node and device layers. Commented out references to the Grid layer. 2019-08-02 13:54:54 +03:00
jpekkila 2b6bf10ae6 Dummy implementation of the Grid interface 2019-08-01 18:37:36 +03:00
jpekkila 328b809efe Added the revised node interface 2019-08-01 14:04:11 +03:00
jpekkila 4594d73022 Merge branch 'cmakelist_rewrite_and_C_API_conformity_07-26' into node_device_interface_revision_07-23 2019-07-31 20:13:19 +03:00
jpekkila 92376588ba Merge branch 'master' into cmakelist_rewrite_and_C_API_conformity_07-26 2019-07-31 20:12:22 +03:00
jpekkila fb0610c1ba Intermediate changes to the revised node interface 2019-07-31 20:04:39 +03:00
jpekkila 0a5d025172 Formatting 2019-07-31 19:08:16 +03:00
jpekkila 9b7f4277fc Fixed errors in device.cu 2019-07-31 19:07:26 +03:00
jpekkila 49026bd26b Revised device interface done 2019-07-31 18:46:41 +03:00
jpekkila 5be775dbff Various intermediate changes 2019-07-31 17:48:48 +03:00
jpekkila 6b55fce54a Merge branch 'c_standalone_compilation_test_07-23' into node_device_interface_revision_07-23 2019-07-30 14:36:17 +03:00
jpekkila b7c5274f45 Merge branch 'master' into c_standalone_compilation_test_07-23 2019-07-30 14:35:46 +03:00
jpekkila efd9d54fef Stashing WIP changes (interface revision) s.t. I can continue work on a different machine 2019-07-30 14:34:44 +03:00
jpekkila 1ceb6739ae Merge branch 'master' into node_device_interface_revision_07-23 2019-07-30 14:31:33 +03:00
jpekkila 62100b1140 Merge branch 'master' of https://bitbucket.org/jpekkila/astaroth 2019-07-30 14:28:25 +03:00
jpekkila 69deef66fe Added sum reduction. NOTE: Scalar sum does not pass the automated test but vector sum does. I couldn't see anything wrong with the code itself and I strongly suspect that the failures are caused by loss of precision due to summing a huge amount of numbers of different magnitudes. However I'm not yet completely sure. Something like the Kahan summation algorithm might be useful if the errors are really caused by fp arithmetic. 2019-07-30 14:28:18 +03:00
jpekkila fdc1e7333c Added macros for getting int3 and AcReal3 device constants from within kernels (and DSL). 2019-07-30 09:10:06 +00:00
jpekkila d614a03653 Made CMake to use the default compiler on system PATH. If the generic compiler names (cc, c++) point to some old version, then cmake would otherwise use those instead of the latest available compiler. 2019-07-29 16:07:31 +03:00
jpekkila a3359b0d04 CONFIG_PATH is now supplied by ac_mkbuilddir. While using would be a bit more idiomatic, ASTAROTH_CONF_PATH is probably safer since ac_mkbuilddir.sh does the copying and knows for sure what the correct path is. 2019-07-29 15:55:27 +03:00
jpekkila 9796d5e981 The previous commit to ac_mkbuilddir.sh was not enough. Added a line that makes the script to stop if any of the commands fail to avoid cluttering the base astaroth directory. In my case the issue was permission denied when trying to create a project directory in /MYSCRATCH (system root directory) instead of MYSCRATCH (astaroth/MYSCRATCH) 2019-07-29 15:35:51 +03:00
jpekkila 7b5a02bf0f The previous commit to ac_mkbuilddir.sh was not enough. Added a line that makes the script to stop if any of the commands fail to avoid cluttering the base astaroth directory. In my case the issue was permission denied when trying to create a project directory in /MYSCRATCH (system root directory) instead of MYSCRATCH (astaroth/MYSCRATCH) 2019-07-29 15:35:17 +03:00
jpekkila abe4dfb4fe ac_mkbuilddir.sh did not stop if the directory specified by the user did not exist. This lead to messing up the base astaroth directory with temporary cmake files. Added -p flag to mkdir to create parent directories if necessary to avoid this 2019-07-29 15:22:44 +03:00
jpekkila 5801144336 ac_mkbuilddir.sh did not stop if the directory specified by the user did not exist. This lead to messing up the base astaroth directory with temporary cmake files. Added -p flag to mkdir to create parent directories if necessary to avoid this 2019-07-29 15:21:15 +03:00
jpekkila 7c256d3bb3 Added a comment about a redundant variable 2019-07-26 15:13:19 +03:00
jpekkila c9fafe41e5 Tidied the CMakeLists, moved stuff to more logical places and added comments. Also tested that ALTER_CONF=ON still works 2019-07-26 15:12:55 +03:00
jpekkila 5044228967 The text editor I use to edit stuff remotely is a complete piece of &^$%$, does not synchronize the files correctly. This commit fixes the issues introduced in the last commit 2019-07-26 14:22:22 +03:00
jpekkila b90d261e89 Removed an unnecessary include from the root CMakeLists.txt 2019-07-26 14:18:11 +03:00
jpekkila 818893a0ea Fixed stray comma in CUDA_ARCH_FLAGS 2019-07-26 14:10:17 +03:00
jpekkila 26316a4d15 The standalone library is now compiled in parallel with the core library. Slightly faster. 2019-07-23 21:26:58 +03:00
jpekkila be44354b33 Astaroth does not require any additional libraries to be included, which is good. Previously required CUDA and C/C++ math libraries. 2019-07-23 21:03:42 +03:00
jpekkila f0d1fba55c The pure C test works again. 2019-07-23 21:00:00 +03:00
jpekkila f322bc8b37 Rewrote all CMakeLists. Now much cleaner and there's a clear separation during compilation between the core and standalone modules. 2019-07-23 20:50:37 +03:00
jpekkila b65454d523 Stashed some testing files used to make sure that the library can also be used from pure C projects (better compatibility). These changes will never go to master as-is. 2019-07-23 18:24:47 +03:00
jpekkila 0282f45077 Forgot extern C 2019-07-23 16:11:17 +03:00
jpekkila e5172e2a9a Moved more stuff out of astaroth.h to astaroth_defines.h. I'm not particularly sure what's the best way to arrange the include files. These changes are just for readability so it's very safe to move things around though. 2019-07-23 16:06:54 +03:00
jpekkila c98e730397 Added extern C to the include headers 2019-07-23 15:02:54 +03:00
jpekkila c0774bc3b8 Added overloads for getting and setting various parameters. However, the compiler mangles the names which is not good for a cross-platform library so the functions are commented out for now. Sadly _Generic, which would solve everything, from C11 is not available in C++. 2019-07-23 14:56:41 +03:00
jpekkila 97d5b2e04a Formatting 2019-07-23 14:39:36 +03:00
jpekkila 323d4e3b31 Replaced all calls to AC_VTXBUF_IDX to acVertexBufferIdx etc in all files 2019-07-23 14:37:28 +03:00
jpekkila 27f4d1e4ff Added actual functions for getting size of the vertex buffers etc. The previously used macros are now deprecated. Type safety is the major benefit of using functions instead of definitions. 2019-07-23 13:44:43 +03:00
jpekkila fee03b7149 Moved some device limits used only during auto-optimization from astaroth.h to device.cu 2019-07-22 19:54:46 +03:00
jpekkila 85883dbc38 NUM_INT_PARAM_TYPES is now NUM_INT_PARAMS etc, replaced these throughout the project 2019-07-22 19:53:45 +03:00