DL_POLY

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.

Más información

Página principal de DL_POLY.

Manual de DL_POLY (pdf).

Manual de la interfaz gráfica de DL_POLY (pdf).