513.soma_t (SOMA Offers Monte-Carlo Acceleration)
Submitted by Ludwig Schneider for the SOMA collaboration and prepared by Guido Juckeland and Jeffrey Kelling.
Physics / Polymeric Systems
SOMA is a software package, which offers High Performance Computing Monte-Carlo simulations of the "Single Chain in Mean Field" model for soft coarse grained polymers.
The paper for this model is: Daoulas, Kostas Ch. and Müller, Marcus , J. Chem.Phys.2006, 125,18
MPI functions MPI_Isend, MPI_Irecv, along with a variety of variations of MPI_Bcast and MPI_Allreduce are used. The input grid is partitioned into subgrids, choosing an optimal configuration for the requested number of ranks.
A SPEChpc sample input file with comments explaining the different parameters is included below. The only difference between the three data sets, test, train and ref, is in the number of simulated polymers and the number of simulated time steps.
-r 42 [initial seed for the random number generator] -t 200 [number of simulated time steps] --npoly=14000000 [number of simulated polymers] --gen-state-file [output the state of the simulation into a file for correctnes verification]
The following output is emitted to stdout to follow progress of the code and for debugging purposes
All 24 ranks use fixed seed 42. timesteps="200" rng-seed="42" npoly="14000000" gen-state-file system is system info not available with C std 199901. GIT version of SOMA is benchmark version based on tag 0.5.0 gitlab.com/InnocentBug/SOMA compiled on Jun 17 2019 12:07:53. MPI version: Open MPI v4.0.1, package: Open MPI schmaik@tauruslogin4.taurus.hrsk.tu-dresden.de Distribution, ident: 4.0.1, repo rev: v4.0.1, Mar 26, 2019 3.1 INFO: At t= 0 particle_type test test passed INFO: At t= 0 area51 violation test passed INFO: At t= 0 area51 exact test passed Running for 35 [s] | TPS 0.265766 | steps-to-go: 198 | ETA: Tue Jun 18 11:55:01 2019 Running for 49 [s] | TPS 0.112398 | steps-to-go: 197 | ETA: Tue Jun 18 12:12:02 2019 Running for 63 [s] | TPS 0.0872277 | steps-to-go: 196 | ETA: Tue Jun 18 12:20:30 2019 Running for 77 [s] | TPS 0.0784876 | steps-to-go: 195 | ETA: Tue Jun 18 12:24:42 2019 Running for 91 [s] | TPS 0.0747191 | steps-to-go: 194 | ETA: Tue Jun 18 12:26:48 2019 Running for 105 [s] | TPS 0.0729575 | steps-to-go: 193 | ETA: Tue Jun 18 12:27:51 2019 Running for 119 [s] | TPS 0.0720669 | steps-to-go: 192 | ETA: Tue Jun 18 12:28:24 2019 Running for 134 [s] | TPS 0.0716433 | steps-to-go: 191 | ETA: Tue Jun 18 12:28:40 2019 Running for 148 [s] | TPS 0.0714849 | steps-to-go: 190 | ETA: Tue Jun 18 12:28:46 2019 Running for 162 [s] | TPS 0.0713562 | steps-to-go: 189 | ETA: Tue Jun 18 12:28:51 2019 Running for 176 [s] | TPS 0.0713378 | steps-to-go: 188 | ETA: Tue Jun 18 12:28:52 2019 ... Running for 2819 [s] | TPS 0.0710227 | steps-to-go: 0 | ETA: Tue Jun 18 12:29:00 2019 INFO: At t= 200 area51 violation test passed INFO: At t= 200 area51 exact test passed State file generated State file generated State file generated State file generated State file generated State file generated State file generated State file generated State file generated State file generated State file generated State file generated State file generated State file generated State file generated State file generated State file generated State file generated State file generated State file generated State file generated State file generated State file generated State file generated Rank: 10 polymers 583333 Rank: 18 polymers 583333 Rank: 4 polymers 583334 Rank: 2 polymers 583334 Rank: 6 polymers 583334 Rank: 8 polymers 583333 Rank: 12 polymers 583333 Rank: 14 polymers 583333 Rank: 5 polymers 583334 Rank: 11 polymers 583333 Rank: 7 polymers 583334 Rank: 17 polymers 583333 Rank: 1 polymers 583334 Rank: 9 polymers 583333 Rank: 23 polymers 583333 Rank: 3 polymers 583334 Rank: 19 polymers 583333 Rank: 15 polymers 583333 Rank: 21 polymers 583333 Rank: 16 polymers 583333 Rank: 20 polymers 583333 Rank: 0 polymers 583334 Rank: 22 polymers 583333 Rank: 13 polymers 583333
The code also writes a file state*.txt - the file name contains the parameters with which the application was called - which is used to compare correctness. A sample output is:
Rg: 0.171553 0.057182 0.057189 0.057182 ba: 0.005331 0.005331 0.005331 -0.000000 0.000000 0.000000 msd: 0.055934 0.055926 0.055927 0.167788 0.011642 0.011633 0.011637 0.034911 BE: 1332934222.475488
C
Last updated: $Date$