Información general
Versión 4.02 del completo programa de dinámica molecular para macromoléculas, polímeros, sistema iónicos, disoluciones y otros sistemas moleculares desarrollado en el Laboratorio Daresbury. Se ha instalado la versión 4.02 (2.2 en Pendulo). Existe también DL_POLY_CLASSIC que por el momento no se desarrolla.
El programa se ha compilado con soporte para GPGPUs.
Cómo mandar
El programa está instalado para todas las arquitecturas, en Arina y en Péndulo (dl_poly_2.2). Para ejecutar el programa incluir en los scripts:
/software/bin/DL_POLY/DL_POLY.Z
El programa se ejecutará en las GPGPUs si entra en dichos nodos. También se puede seleccionar este tipo de nodos con la etiqueta gpu
del [intlink id=»244″ type=»post»] sistema de colas[/intlink].
También se ha instalado la interfaz gráfica. Para ejecutarla:
/software/bin/DL_POLY/gui
Se han instalado una serie de utilidades que vienen incluidas y cuyas fuentes están en el directorio /software/bin/DL_POLY/
.
Benchmark
Presentamos los datos de tres pequeños benchmark realizados con dl_ploly_4.02 en los que se mide su paralelización así como su eficiencia sobre GPGPUs.
System | 1 cores | 4 cores | 8 cores | 16 cores | 32 cores | 64 cores |
Itanium 1.6 GHz | 1500 | 419 | 248 | 149 | 92 | 61 |
Opteron | 1230 | 503 | 264 | 166 | 74 | |
Xeon 2.27 GHz | 807 | 227 | 126 | 67 | 37 | 25 |
Como ya observamos en este primer test el rendimiento en los nodos xeon es superior y para trabajos largos se recomienda su uso. Por otro lado también se observa que escala muy bien al aumentar el número de procesadores. En los siguientes benchmark además medimos el rendimiento de al correr sobre las GPGPUs.
System | 1 cores | 2 cores | 4 cores | 8 cores | 16 cores | 32 cores |
Itanium 1.6 GHz | 2137 | 303 | 165 | 93 | 47 | |
Opteron | 1592 | 482 | 177 | 134 | 55 | |
Xeon 2.27 GHz | 848 | 180 | 92 | 48 | 28 | |
1 GPGPU | 125 | 114 | 104 | 102 | ||
2 GPGPU | 77 | 72 | 69 | |||
4 GPGPU | 53 | 50 | ||||
8 GPGPU | 37 |
System | 1 cores | 2 cores | 4 cores | 8 cores | 16 cores | 32 cores | 64 cores |
Xeon 2.27 GHz | 2918 | 774 | 411 | 223 | 122 | 71 | |
1 GPGPU | 362 | 333 | 338 | 337 | |||
2 GPGPU | 240 | 222 | 220 | ||||
4 GPGPU | 145 | 142 | |||||
8 GPGPU | 97 |
Como se observa la GPGPU acelera el cálculo. El usar más cores apenas incrementa la velocidad cuando se usan GPGPUs. Doblar el número de GPGPUS sólo consigue que la velocidad se multiplique por 1.5 por lo que al final correr en paralelo en muchos cores resulta más eficiente. Tomemos como ejemplo el último benchmark. Cada nodo tiene 2 GPGPUs y 8 cores. Usando 8 cores se tarda 411 s. y usando las GPGPUs podemos bajar hasta los 220 s. Usando 2 nodos, 4 GPGPUs vs 16 cores aun son más rápidas las GPGPUs. Pero con 32 cores el cálculo tarda 71 s mientras que usando las 8 GPGPUs disponibles en los 4 nodos tardamos 97 s. Podemos concluir que para un PC o en nuestro cluster para un nodo la tarjeta gráfica puede acelerar significativamente el cálculo, pero para cálculos masivamente paralelos la paralelización sobre CPUs es más efectiva.
DL_POLY está diseñado para sistemas grandes e incluso el uso de miles de cores. Según la documentación de DL_POLY:
The DL_POLY_4 parallel performance and efficiency are considered very-good-to-excellent as long as (i) all CPU cores are loaded with no less than 500 particles each and (ii) the major linked cells algorithm has no dimension less than 4.