====== Utilisation Hoomd ====== La version de [[http://glotzerlab.engin.umich.edu/hoomd-blue/|Hoomd]] installée est la 2.6.0 Deux versions ont été compilées : * celle pour des calculs en simple précision, FP32, (les outils ''HPMC'' sont exclus) * celle pour des calculs en double précision, FP64, complète. ===== Pour l'utiliser ===== * En commande en ligne, dans un terminal : * ''module load hoomd/2.6.0-FP32'' pour utiliser Hoomd en simple précision * ''module load hoomd/2.6.0-FP64'' pour utiliser Hoomd en double précision ===== Exemple d'utilisation ===== Cet ensemble de commandes permet l'execution d'un des exemples de //benchmarks// de ''HOOMD'' # chargement du module permettant l'exploitation du logiciel module load hoomd/2.6.0-FP64 # creation du dossier dans un espace temporaire mkdir -p /local/$USER && cd /local/$USER # recuperation de l'ensemble des benckmarks par GIT git clone https://github.com/joaander/hoomd-benchmarks.git # passage dans un des dossiers de benckmark cd hoomd-benchmarks/microsphere # execution du benckmark python3 bmark.py La sortie exécutée sur une machine équipée d'une GTX 780 (une carte relativement ancienne) est : HOOMD-blue 2.6.0 CUDA (9.1) DOUBLE HPMC_MIXED SSE SSE2 Compiled: 07/12/2019 Copyright (c) 2009-2019 The Regents of the University of Michigan. ----- You are using HOOMD-blue. Please cite the following: * J A Anderson, C D Lorenz, and A Travesset. "General purpose molecular dynamics simulations fully implemented on graphics processing units", Journal of Computational Physics 227 (2008) 5342--5359 * J Glaser, T D Nguyen, J A Anderson, P Liu, F Spiga, J A Millan, D C Morse, and S C Glotzer. "Strong scaling of general-purpose molecular dynamics simulations on GPUs", Computer Physics Communications 192 (2015) 97--107 ----- notice(2): Notice: GPU id 1 is not available for computation because it's compute capability is not high enough notice(2): This build of hoomd was compiled for a minimum capability of of 3.5 but the GPU is only 3.0 HOOMD-blue is running on the following GPU(s): [0] GeForce GTX 780 12 SM_3.5 @ 0.901 GHz, 3022 MiB DRAM bmark.py:016 | system = init.read_gsd(filename=os.path.join(d,'init.gsd')) notice(2): Group "all" created containing 1428364 particles bmark.py:018 | harmonic = md.bond.harmonic(name="tether") bmark.py:019 | harmonic.bond_coeff.set('tether', k=4., r0=0.) bmark.py:021 | nl = md.nlist.cell() bmark.py:022 | dpd = md.pair.dpd(nlist = nl, r_cut=1.0, kT=1., seed=1) ----- You are using DPD. Please cite the following: * C L Phillips, J A Anderson, and S C Glotzer. "Pseudo-random number generation for Brownian Dynamics and Dissipative Particle Dynamics simulations on GPU devices", Journal of Computational Physics 230 (2011) 7191--7201 ----- bmark.py:024 | dpd.pair_coeff.set(system.particles.types, system.particles.types, A=A, gamma= 1.0) bmark.py:025 | dpd.pair_coeff.set('glycerol', 'polymer', A=2*A, gamma= 1.0) bmark.py:026 | dpd.pair_coeff.set('hydroxyl', 'polymer', A=2*A, gamma= 1.0) bmark.py:027 | dpd.pair_coeff.set('hydroxyl', 'core', A=2*A, gamma= 1.0) bmark.py:028 | dpd.pair_coeff.set('hydroxyl', 'glycerol', A=A/2., gamma= 1.0) bmark.py:029 | dpd.pair_coeff.set('hydroxyl', 'hydroxyl', A=A/2., gamma= 1.0) bmark.py:030 | md.integrate.mode_standard(dt=0.01) bmark.py:031 | md.integrate.nve(group=group.all()) bmark.py:031 | md.integrate.nve(group=group.all()) bmark.py:033 | nl.reset_exclusions(exclusions = ['bond', 'body']) notice(2): -- Neighborlist exclusion statistics -- : notice(2): Particles with 0 exclusions : 1000000 notice(2): Particles with 1 exclusions : 10432 notice(2): Particles with 2 exclusions : 417280 notice(2): Particles with 16 exclusions : 652 notice(2): Neighbors included by diameter : no notice(2): Neighbors excluded when in the same body: no bmark.py:034 | nl.set_params(r_buff=0.35, check_period=2) bmark.py:038 | run(10000) ** starting run ** Time 00:00:12 | Step 20087 / 30000 | TPS 8.6576 | ETA 00:19:05 Time 00:00:22 | Step 20208 / 30000 | TPS 11.9515 | ETA 00:13:39 Time 00:00:32 | Step 20340 / 30000 | TPS 13.1698 | ETA 00:12:13 Time 00:00:42 | Step 20461 / 30000 | TPS 12.0668 | ETA 00:13:10 Time 00:00:52 | Step 20584 / 30000 | TPS 12.2681 | ETA 00:12:47 Time 00:01:02 | Step 20705 / 30000 | TPS 12.0506 | ETA 00:12:51 Time 00:01:12 | Step 20821 / 30000 | TPS 11.5262 | ETA 00:13:16 Time 00:01:22 | Step 20933 / 30000 | TPS 11.0785 | ETA 00:13:38 Time 00:01:32 | Step 21057 / 30000 | TPS 12.3853 | ETA 00:12:02 Time 00:01:42 | Step 21182 / 30000 | TPS 12.4549 | ETA 00:11:47 Time 00:01:52 | Step 21305 / 30000 | TPS 12.1527 | ETA 00:11:55 Time 00:02:03 | Step 21433 / 30000 | TPS 12.6534 | ETA 00:11:17 Time 00:02:13 | Step 21557 / 30000 | TPS 12.3448 | ETA 00:11:23 Time 00:02:23 | Step 21675 / 30000 | TPS 11.6808 | ETA 00:11:52 Time 00:02:33 | Step 21795 / 30000 | TPS 11.8401 | ETA 00:11:32 Time 00:02:43 | Step 21913 / 30000 | TPS 11.6582 | ETA 00:11:33 Time 00:02:53 | Step 22036 / 30000 | TPS 12.2585 | ETA 00:10:49 Time 00:03:03 | Step 22159 / 30000 | TPS 12.1688 | ETA 00:10:44 Time 00:03:13 | Step 22273 / 30000 | TPS 11.3407 | ETA 00:11:21 Time 00:03:23 | Step 22382 / 30000 | TPS 10.7981 | ETA 00:11:45 Time 00:03:33 | Step 22490 / 30000 | TPS 10.7574 | ETA 00:11:38 Time 00:03:43 | Step 22595 / 30000 | TPS 10.4942 | ETA 00:11:45 Time 00:03:53 | Step 22704 / 30000 | TPS 10.7573 | ETA 00:11:18 Time 00:04:04 | Step 22813 / 30000 | TPS 10.7357 | ETA 00:11:09 Time 00:04:14 | Step 22925 / 30000 | TPS 11.0336 | ETA 00:10:41 Time 00:04:24 | Step 23037 / 30000 | TPS 11.0566 | ETA 00:10:29 Time 00:04:34 | Step 23149 / 30000 | TPS 11.0623 | ETA 00:10:19 Time 00:04:44 | Step 23263 / 30000 | TPS 11.389 | ETA 00:09:51 Time 00:04:54 | Step 23374 / 30000 | TPS 11.0891 | ETA 00:09:57 Time 00:05:04 | Step 23484 / 30000 | TPS 10.95 | ETA 00:09:55 Time 00:05:14 | Step 23599 / 30000 | TPS 11.4622 | ETA 00:09:18 Time 00:05:24 | Step 23711 / 30000 | TPS 11.1758 | ETA 00:09:22 Time 00:05:34 | Step 23836 / 30000 | TPS 12.4148 | ETA 00:08:16 Time 00:05:44 | Step 23978 / 30000 | TPS 14.0757 | ETA 00:07:07 Time 00:05:54 | Step 24118 / 30000 | TPS 13.9819 | ETA 00:07:00 Time 00:06:04 | Step 24259 / 30000 | TPS 14.0758 | ETA 00:06:47 Time 00:06:14 | Step 24401 / 30000 | TPS 14.1366 | ETA 00:06:36 Time 00:06:24 | Step 24545 / 30000 | TPS 14.2167 | ETA 00:06:23 Time 00:06:35 | Step 24687 / 30000 | TPS 14.0931 | ETA 00:06:16 Time 00:06:45 | Step 24829 / 30000 | TPS 14.0411 | ETA 00:06:08 Time 00:06:55 | Step 24969 / 30000 | TPS 13.9563 | ETA 00:06:00 Time 00:07:05 | Step 25112 / 30000 | TPS 14.2127 | ETA 00:05:43 Time 00:07:15 | Step 25250 / 30000 | TPS 13.6839 | ETA 00:05:47 Time 00:07:25 | Step 25389 / 30000 | TPS 13.8633 | ETA 00:05:32 Time 00:07:35 | Step 25528 / 30000 | TPS 13.8195 | ETA 00:05:23 Time 00:07:45 | Step 25671 / 30000 | TPS 14.2016 | ETA 00:05:04 Time 00:07:55 | Step 25811 / 30000 | TPS 13.9533 | ETA 00:05:00 Time 00:08:05 | Step 25954 / 30000 | TPS 14.2758 | ETA 00:04:43 Time 00:08:15 | Step 26095 / 30000 | TPS 13.9971 | ETA 00:04:38 Time 00:08:25 | Step 26238 / 30000 | TPS 14.1391 | ETA 00:04:26 Time 00:08:35 | Step 26379 / 30000 | TPS 14.0259 | ETA 00:04:18 Time 00:08:45 | Step 26522 / 30000 | TPS 14.2178 | ETA 00:04:04 Time 00:08:55 | Step 26660 / 30000 | TPS 13.7057 | ETA 00:04:03 Time 00:09:05 | Step 26804 / 30000 | TPS 14.3207 | ETA 00:03:43 Time 00:09:15 | Step 26946 / 30000 | TPS 14.1341 | ETA 00:03:36 Time 00:09:26 | Step 27085 / 30000 | TPS 13.8153 | ETA 00:03:30 Time 00:09:36 | Step 27227 / 30000 | TPS 14.1656 | ETA 00:03:15 Time 00:09:46 | Step 27366 / 30000 | TPS 13.7888 | ETA 00:03:11 Time 00:09:56 | Step 27507 / 30000 | TPS 14.0391 | ETA 00:02:57 Time 00:10:06 | Step 27648 / 30000 | TPS 13.9304 | ETA 00:02:48 Time 00:10:16 | Step 27791 / 30000 | TPS 14.2767 | ETA 00:02:34 Time 00:10:26 | Step 27928 / 30000 | TPS 13.6466 | ETA 00:02:31 Time 00:10:36 | Step 28070 / 30000 | TPS 14.1904 | ETA 00:02:16 Time 00:10:46 | Step 28210 / 30000 | TPS 13.9845 | ETA 00:02:07 Time 00:10:56 | Step 28353 / 30000 | TPS 14.1502 | ETA 00:01:56 Time 00:11:06 | Step 28494 / 30000 | TPS 14.0047 | ETA 00:01:47 Time 00:11:16 | Step 28635 / 30000 | TPS 14.0597 | ETA 00:01:37 Time 00:11:26 | Step 28773 / 30000 | TPS 13.7972 | ETA 00:01:28 Time 00:11:36 | Step 28914 / 30000 | TPS 14.0043 | ETA 00:01:17 Time 00:11:46 | Step 29055 / 30000 | TPS 14.0696 | ETA 00:01:07 Time 00:11:56 | Step 29195 / 30000 | TPS 13.8935 | ETA 00:00:57 Time 00:12:06 | Step 29336 / 30000 | TPS 13.9687 | ETA 00:00:47 Time 00:12:16 | Step 29476 / 30000 | TPS 13.9598 | ETA 00:00:37 Time 00:12:26 | Step 29618 / 30000 | TPS 14.049 | ETA 00:00:27 Time 00:12:37 | Step 29757 / 30000 | TPS 13.7718 | ETA 00:00:17 Time 00:12:47 | Step 29901 / 30000 | TPS 14.297 | ETA 00:00:06 Time 00:12:54 | Step 30000 / 30000 | TPS 13.9359 | ETA 00:00:00 Average TPS: 12.9538 --------- -- Neighborlist stats: 2599 normal updates / 34 forced updates / 0 dangerous updates n_neigh_min: 8 / n_neigh_max: 36 / n_neigh_avg: 21.2323 shortest rebuild period: 3 -- Cell list stats: Dimension: 64, 64, 64 n_min : 1 / n_max: 14 / n_avg: 5.44878 ** run complete ** benchmark.py:035 | hoomd.run(steps, limit_hours=limit_hours); ** starting run ** Time 00:13:04 | Step 30137 / 80000 | TPS 13.6623 | ETA 01:00:49 notice(2): Ending run at time step 30278 as 0.00555556 hours have passed Time 00:13:14 | Step 30278 / 80000 | TPS 14.0483 | ETA 00:58:59 Average TPS: 13.8553 --------- -- Neighborlist stats: 75 normal updates / 1 forced updates / 0 dangerous updates n_neigh_min: 8 / n_neigh_max: 36 / n_neigh_avg: 21.2208 shortest rebuild period: 3 -- Cell list stats: Dimension: 64, 64, 64 n_min : 1 / n_max: 14 / n_avg: 5.44878 ** run complete ** benchmark.py:035 | hoomd.run(steps, limit_hours=limit_hours); ** starting run ** Time 00:13:24 | Step 30417 / 80278 | TPS 13.8014 | ETA 01:00:12 notice(2): Ending run at time step 30558 as 0.00555556 hours have passed Time 00:13:34 | Step 30558 / 80278 | TPS 14.113 | ETA 00:58:42 Average TPS: 13.9566 --------- -- Neighborlist stats: 73 normal updates / 2 forced updates / 0 dangerous updates n_neigh_min: 9 / n_neigh_max: 35 / n_neigh_avg: 21.2263 shortest rebuild period: 3 -- Cell list stats: Dimension: 64, 64, 64 n_min : 0 / n_max: 14 / n_avg: 5.44878 ** run complete ** benchmark.py:035 | hoomd.run(steps, limit_hours=limit_hours); ** starting run ** Time 00:13:44 | Step 30698 / 80558 | TPS 13.9234 | ETA 00:59:41 notice(2): Ending run at time step 30837 as 0.00555556 hours have passed Time 00:13:54 | Step 30837 / 80558 | TPS 13.8157 | ETA 00:59:58 Average TPS: 13.8695 --------- -- Neighborlist stats: 74 normal updates / 2 forced updates / 0 dangerous updates n_neigh_min: 8 / n_neigh_max: 35 / n_neigh_avg: 21.2222 shortest rebuild period: 3 -- Cell list stats: Dimension: 64, 64, 64 n_min : 0 / n_max: 14 / n_avg: 5.44878 ** run complete ** benchmark.py:035 | hoomd.run(steps, limit_hours=limit_hours); ** starting run ** Time 00:14:04 | Step 30975 / 80837 | TPS 13.6708 | ETA 01:00:47 notice(2): Ending run at time step 31119 as 0.00555556 hours have passed Time 00:14:14 | Step 31119 / 80837 | TPS 14.4202 | ETA 00:57:27 Average TPS: 14.0435 --------- -- Neighborlist stats: 72 normal updates / 2 forced updates / 0 dangerous updates n_neigh_min: 9 / n_neigh_max: 36 / n_neigh_avg: 21.2511 shortest rebuild period: 3 -- Cell list stats: Dimension: 64, 64, 64 n_min : 1 / n_max: 13 / n_avg: 5.44878 ** run complete ** Hours to complete 10e6 steps: 199.39225245711478 bmark.py:049 | meta.dump_metadata(filename = workspace+"/metadata.json", user = {'mps': ptps, 'tps': tps});