Utilisation Hoomd

La version de 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});
ressources/ressources/hoomd.txt · Dernière modification: 2019/07/12 17:50 par equemene