Commit Graph

63 Commits

Author SHA1 Message Date
Carl Pearson
fc03675d61 add gaussian explosion code 2021-03-24 16:45:05 -06:00
jpekkila
5df695b4b1 Merge branch 'master' into host-layer-renaming-2020-11-24 2020-11-24 22:00:30 +02:00
jpekkila
b6bb53a75c Missed some renamings 2020-11-24 21:39:44 +02:00
jpekkila
bcacc357d3 Now all host functions start with acHost to avoid confusion on whether the function operates on host or device memory 2020-11-24 21:32:43 +02:00
jpekkila
850394760a Made strong scaling benchmark the default (was weak for some reason) 2020-11-23 12:19:16 +02:00
Miikka Vaisala
11eddabbd6 Merge branch 'master' into alt_bcond_2020_09 2020-11-23 15:47:46 +08:00
Miikka Vaisala
288693fab5 Flexible boundary conditions called from simulation.cc 2020-11-20 16:31:13 +08:00
Miikka Vaisala
e3eb782213 Sorry for the compilation problem. Corrected. 2020-11-20 11:11:54 +08:00
Miikka Vaisala
a463fd492f Synched simulation.cc with existing work. 2020-11-19 14:31:10 +08:00
jpekkila
d48a478254 Removed duplicate genbenchmarkscripts 2020-11-02 16:39:01 +02:00
jpekkila
ae0d4de23c The root host mesh is no longer allocated during benchmarking as this caused out-of-memory errors in weak scaling tests 2020-10-29 16:33:41 +02:00
jpekkila
c1f2a6c340 Setup for benchmarks 2020-10-28 12:55:32 +02:00
jpekkila
6d2be634d7 Simulation.cc sets LBFIELD (1) only if BFIELDX has been defined in the DSL 2020-09-14 13:27:56 +03:00
Miikka Vaisala
7f8e6f90e0 Changed default swithces. 2020-09-14 14:58:10 +08:00
Miikka Vaisala
e9e247c526 NOW COMPILES. Improvements to timestepping. 2020-09-11 17:03:10 +08:00
Miikka Vaisala
b815b62aa7 Enhanced simulation cc. Now magnetic fields diagnostics invoked if needed.
Also more exit condition so that the simulation will terminate if nan happens or timestep becomes too short.
2020-09-11 14:59:32 +08:00
jpekkila
b7e7853b10 Added an error message if trying to load device constants without MPI 2020-08-24 19:41:53 +03:00
jpekkila
cec9a23dc0 Added a stripped down MPI version of standalone: standalone_mpi. In fact, it's more like a pure simulation module since I've dropped real-time rendering and other old parts that do not work with MPI without heavy modifications. The most important functionalities in addition to simulation have already been adapted to work with MPI (samples/benchmark and samples/mpi) so there's no need to re-create them in standalone_mpi. The current version of standalone_mpi is able to run a basic simulation and I get an agreement with non-mpi and mpi versions after 100 timesteps. There's also draft that's a direct adaptation of what's currently in standalone/simulation.cc (it should be 100% equivalent), but it's currently commented out as I haven't done extensive tests with it. 2020-08-24 19:03:03 +03:00
jpekkila
d966afe830 Added VERBOSE CMake option and made various prints optional to clean the output. VERBOSE is by off by default, pass cmake -DVERBOSE=ON to re-enable various non-critical warning and status prints (important warnings are still visible regardless of the flag). 2020-08-21 21:19:42 +03:00
jpekkila
764e4dda69 Streamlined verification 2020-08-21 20:11:25 +03:00
jpekkila
56273433fe Fixed inconsistency in the acGridLoad parameter order 2020-08-21 14:40:11 +03:00
jpekkila
b0cfceab98 Merged with master 2020-08-19 16:16:06 +03:00
jpekkila
46cfa9cd37 Now using MPI C bindings instead of the (deprecated?) C++ bindings due to compilation issues on some machines (error: cast between incompatible function types, ompi_mpi_cxx_op_intercept) 2020-08-19 15:50:16 +03:00
jpekkila
e051d72091 Moved standalone from src to samples 2020-08-19 13:35:49 +03:00
jpekkila
7f7b0b89ea Fetched improvements to benchmarks from the mpi-paper-benchmarks branch 2020-08-19 12:03:15 +03:00
jpekkila
fca615defb Removed an old unused file 2020-07-29 20:01:11 +03:00
jpekkila
003c202e8c Pulled useful changes from the benchmark branch. GPUDirect RDMA (unpinned) is now the default for MPI communication. 2020-07-29 16:39:24 +03:00
jpekkila
c44c3d02b4 Added a sample for testing the Fortran interface 2020-06-25 06:35:13 +03:00
jpekkila
fab620eb0d Reordered reduction autotests and made it so that the exact same mesh is used for both the model and candidates instead of the unclean integrated one 2020-06-24 16:34:50 +03:00
jpekkila
ff1a601f85 Merged mpi-to-master-merge-candidate-2020-06-01 here 2020-06-24 16:08:14 +03:00
jpekkila
0d1c5b3911 Autoformatted 2020-06-24 15:56:30 +03:00
jpekkila
f04e347c45 Cleanup before merging to the master merge candidate branch 2020-06-24 15:13:15 +03:00
Oskar Lappi
0030db01f3 Automatic calculation of nodes based on processes 2020-06-10 16:51:35 +03:00
Oskar Lappi
c7f23eb50c Added partition argument to mpibench script 2020-06-09 14:07:37 +03:00
jpekkila
9840b817d0 Added the (hopefully final) basic test case used for the benchmarks 2020-06-07 21:59:33 +03:00
Oskar Lappi
53b48bb8ce MPI_Allreduce -> MPI_Reduce for MPI reductions + benchmark batch script
Slightly ugly because this changes the benchmark behaviour slightly
However we now have a way to run batch benchmarks from one script, no need to generate new ones
2020-06-06 22:56:05 +03:00
Oskar Lappi
eb05e02793 Added vector reductions to mpi reduction benchmarks 2020-06-06 19:25:30 +03:00
Oskar Lappi
666f01a23d Benchmarking program for scalar mpi reductions, and nonbatch script for running benchmarks
- New program mpi_reduce_bench
      - runs testcases defined in source
      - writes all benchmark results to a csv file, tags the testcase and benchmark run
      - takes optional argument for benchmark tag, default benchmark tag is a timestamp
    - New script mpibench.sh
      - runs the mpi_reduce_bench with defined parameters:
        - number of tasks
        - number of nodes
        - the benchmark tag for mpi_reduce_bench, default tag is the current git HEAD short hash
2020-06-05 19:48:40 +03:00
jpekkila
17a4f31451 Added the latest setup used for benchmarks 2020-06-04 20:47:03 +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
176ceae313 Fixed various compilation warnings 2020-05-30 20:23:53 +03:00
jpekkila
ec59cdb973 Some formatting and unimportant changes to samples 2020-05-26 18:57:46 +03:00
jpekkila
9cd5909f5a BWtest calculates now aggregate bandwidths per process instead of assuming that all neighbor communication can be done in parallel (Within a node one can have parallel P2P connections to all neighbors and we have an insane total bandwidth, but this is not the case with network, we seem to have only one bidirectional socket) 2020-04-09 20:28:04 +03:00
jpekkila
d4a84fb887 Added a PCIe bandwidth test 2020-04-09 20:04:54 +03:00
jpekkila
d6e74ee270 Added missing files 2020-04-09 19:24:55 +03:00
jpekkila
fb41741d74 Improvements to samples 2020-04-07 17:58:47 +03:00
jpekkila
cc9d3f1b9c Found a workaround that gives good inter and intra-node performance. HPC-X MPI implementation does not know how to do p2p comm with pinned arrays (should be 80 GiB/s, measured 10 GiB/s) and internode comm is super slow without pinned arrays (should be 40 GiB/s, measured < 1 GiB/s). Made a proof of concept communicator that pins arrays that are send or received from another node. 2020-04-05 20:15:32 +03:00
jpekkila
88e53dfa21 Added a little program for testing the bandwidths of different MPI comm styles on n nodes and processes 2020-04-05 17:09:57 +03:00