{"id":2031,"date":"2010-09-21T13:05:01","date_gmt":"2010-09-21T11:05:01","guid":{"rendered":"http:\/\/www.ehu.es\/sgi\/Arina\/?p=2031"},"modified":"2011-08-24T10:57:23","modified_gmt":"2011-08-24T08:57:23","slug":"dl_poly","status":"publish","type":"post","link":"https:\/\/www.ehu.eus\/sgi\/software-de-calculo\/dl_poly","title":{"rendered":"DL_POLY"},"content":{"rendered":"<h2>Informaci\u00f3n general<\/h2>\n<p>Versi\u00f3n 4.02 del completo programa de din\u00e1mica molecular para  macromol\u00e9culas, pol\u00edmeros, sistema i\u00f3nicos, disoluciones y otros  sistemas moleculares desarrollado en el Laboratorio Daresbury. Se ha instalado la versi\u00f3n 4.02 (2.2 en Pendulo). Existe tambi\u00e9n DL_POLY_CLASSIC que por el momento no se desarrolla.<\/p>\n<p>&nbsp;<\/p>\n<p>El programa se ha compilado con soporte para GPGPUs.<\/p>\n<h2>C\u00f3mo mandar<\/h2>\n<p>El programa est\u00e1 instalado para todas las arquitecturas, en Arina y en P\u00e9ndulo (dl_poly_2.2). Para ejecutar el programa incluir en los scripts:<\/p>\n<pre>\/software\/bin\/DL_POLY\/DL_POLY.Z<\/pre>\n<p>El programa se ejecutar\u00e1 en las GPGPUs si entra en dichos nodos. Tambi\u00e9n se puede seleccionar este tipo de nodos con la etiqueta <code>gpu<\/code> del [intlink id=\u00bb244&#8243; type=\u00bbpost\u00bb] sistema de colas[\/intlink].<\/p>\n<p>Tambi\u00e9n se ha instalado la interfaz gr\u00e1fica. Para ejecutarla:<\/p>\n<pre>\/software\/bin\/DL_POLY\/gui<\/pre>\n<p>Se han instalado una serie de utilidades que vienen incluidas y cuyas fuentes est\u00e1n en el directorio <code>\/software\/bin\/DL_POLY\/<\/code>.<\/p>\n<h2><strong>Benchmark<\/strong><\/h2>\n<p>Presentamos los datos de tres peque\u00f1os benchmark realizados con dl_ploly_4.02 en los que se mide su paralelizaci\u00f3n as\u00ed como su eficiencia sobre GPGPUs.<\/p>\n<table border=\"1\" cellpadding=\"3\">\n<tbody>\n<tr>\n<td align=\"LEFT\"><strong>System<\/strong><\/td>\n<td align=\"RIGHT\"><strong>1 cores<\/strong><\/td>\n<td align=\"RIGHT\"><strong>4 cores<\/strong><\/td>\n<td align=\"RIGHT\"><strong>8 cores<\/strong><\/td>\n<td align=\"RIGHT\"><strong>16 cores<\/strong><\/td>\n<td align=\"RIGHT\"><strong>32 cores<\/strong><\/td>\n<td align=\"RIGHT\"><strong>64 cores<\/strong><\/td>\n<\/tr>\n<tr>\n<td align=\"LEFT\">Itanium 1.6 GHz<\/td>\n<td align=\"RIGHT\">1500<\/td>\n<td align=\"RIGHT\">419<\/td>\n<td align=\"RIGHT\">248<\/td>\n<td align=\"RIGHT\">149<\/td>\n<td align=\"RIGHT\">92<\/td>\n<td align=\"RIGHT\">61<\/td>\n<\/tr>\n<tr>\n<td align=\"LEFT\">Opteron<\/td>\n<td align=\"RIGHT\">1230<\/td>\n<td align=\"RIGHT\">503<\/td>\n<td align=\"RIGHT\">264<\/td>\n<td align=\"RIGHT\">166<\/td>\n<td align=\"RIGHT\">74<\/td>\n<td align=\"RIGHT\"><\/td>\n<\/tr>\n<tr>\n<td align=\"LEFT\">Xeon 2.27 GHz<\/td>\n<td align=\"RIGHT\">807<\/td>\n<td align=\"RIGHT\">227<\/td>\n<td align=\"RIGHT\">126<\/td>\n<td align=\"RIGHT\">67<\/td>\n<td align=\"RIGHT\">37<\/td>\n<td align=\"RIGHT\">25<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>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\u00e9n se observa que escala muy bien al aumentar el n\u00famero de procesadores. En los siguientes benchmark adem\u00e1s medimos el rendimiento de al correr sobre las GPGPUs.<\/p>\n<table border=\"1\" cellpadding=\"3\">\n<tbody>\n<tr>\n<td align=\"LEFT\"><strong>System<\/strong><\/td>\n<td align=\"RIGHT\"><strong>1 cores<\/strong><\/td>\n<td align=\"RIGHT\"><strong>2 cores<\/strong><\/td>\n<td align=\"RIGHT\"><strong>4 cores<\/strong><\/td>\n<td align=\"RIGHT\"><strong>8 cores<\/strong><\/td>\n<td align=\"RIGHT\"><strong>16 cores<\/strong><\/td>\n<td align=\"RIGHT\"><strong>32 cores<\/strong><\/td>\n<\/tr>\n<tr>\n<td align=\"LEFT\">Itanium 1.6 GHz<\/td>\n<td align=\"RIGHT\">2137<\/td>\n<td align=\"RIGHT\"><\/td>\n<td align=\"RIGHT\">303<\/td>\n<td align=\"RIGHT\">165<\/td>\n<td align=\"RIGHT\">93<\/td>\n<td align=\"RIGHT\">47<\/td>\n<\/tr>\n<tr>\n<td align=\"LEFT\">Opteron<\/td>\n<td align=\"RIGHT\">1592<\/td>\n<td align=\"RIGHT\"><\/td>\n<td align=\"RIGHT\">482<\/td>\n<td align=\"RIGHT\">177<\/td>\n<td align=\"RIGHT\">134<\/td>\n<td align=\"RIGHT\">55<\/td>\n<\/tr>\n<tr>\n<td align=\"LEFT\">Xeon 2.27 GHz<\/td>\n<td align=\"RIGHT\">848<\/td>\n<td align=\"RIGHT\"><\/td>\n<td align=\"RIGHT\">180<\/td>\n<td align=\"RIGHT\">92<\/td>\n<td align=\"RIGHT\">48<\/td>\n<td align=\"RIGHT\">28<\/td>\n<\/tr>\n<tr>\n<td align=\"LEFT\">1 GPGPU<\/td>\n<td align=\"RIGHT\">125<\/td>\n<td align=\"RIGHT\">114<\/td>\n<td align=\"RIGHT\">104<\/td>\n<td align=\"RIGHT\">102<\/td>\n<td align=\"RIGHT\"><\/td>\n<td align=\"RIGHT\"><\/td>\n<\/tr>\n<tr>\n<td align=\"LEFT\">2 GPGPU<\/td>\n<td align=\"RIGHT\"><\/td>\n<td align=\"RIGHT\">77<\/td>\n<td align=\"RIGHT\">72<\/td>\n<td align=\"RIGHT\">69<\/td>\n<td align=\"RIGHT\"><\/td>\n<td align=\"RIGHT\"><\/td>\n<\/tr>\n<tr>\n<td align=\"LEFT\">4 GPGPU<\/td>\n<td align=\"RIGHT\"><\/td>\n<td align=\"RIGHT\"><\/td>\n<td align=\"RIGHT\">53<\/td>\n<td align=\"RIGHT\">50<\/td>\n<td align=\"RIGHT\"><\/td>\n<td align=\"RIGHT\"><\/td>\n<\/tr>\n<tr>\n<td align=\"LEFT\">8 GPGPU<\/td>\n<td align=\"RIGHT\"><\/td>\n<td align=\"RIGHT\"><\/td>\n<td align=\"RIGHT\"><\/td>\n<td align=\"RIGHT\">37<\/td>\n<td align=\"RIGHT\"><\/td>\n<td align=\"RIGHT\"><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<table border=\"1\" cellpadding=\"3\">\n<tbody>\n<tr>\n<td align=\"LEFT\"><strong>System<\/strong><\/td>\n<td align=\"RIGHT\"><strong>1 cores<\/strong><\/td>\n<td align=\"RIGHT\"><strong>2 cores<\/strong><\/td>\n<td align=\"RIGHT\"><strong>4 cores<\/strong><\/td>\n<td align=\"RIGHT\"><strong>8 cores<\/strong><\/td>\n<td align=\"RIGHT\"><strong>16 cores<\/strong><\/td>\n<td align=\"RIGHT\"><strong>32 cores<\/strong><\/td>\n<td align=\"RIGHT\"><strong>64 cores<\/strong><\/td>\n<\/tr>\n<tr>\n<td align=\"LEFT\">Xeon 2.27 GHz<\/td>\n<td align=\"RIGHT\">2918<\/td>\n<td align=\"RIGHT\"><\/td>\n<td align=\"RIGHT\">774<\/td>\n<td align=\"RIGHT\">411<\/td>\n<td align=\"RIGHT\">223<\/td>\n<td align=\"RIGHT\">122<\/td>\n<td align=\"RIGHT\">71<\/td>\n<\/tr>\n<tr>\n<td align=\"LEFT\">1 GPGPU<\/td>\n<td align=\"RIGHT\">362<\/td>\n<td align=\"RIGHT\">333<\/td>\n<td align=\"RIGHT\">338<\/td>\n<td align=\"RIGHT\">337<\/td>\n<td align=\"RIGHT\"><\/td>\n<td align=\"RIGHT\"><\/td>\n<td align=\"RIGHT\"><\/td>\n<\/tr>\n<tr>\n<td align=\"LEFT\">2 GPGPU<\/td>\n<td align=\"RIGHT\"><\/td>\n<td align=\"RIGHT\">240<\/td>\n<td align=\"RIGHT\">222<\/td>\n<td align=\"RIGHT\">220<\/td>\n<td align=\"RIGHT\"><\/td>\n<td align=\"RIGHT\"><\/td>\n<td align=\"RIGHT\"><\/td>\n<\/tr>\n<tr>\n<td align=\"LEFT\">4 GPGPU<\/td>\n<td align=\"RIGHT\"><\/td>\n<td align=\"RIGHT\"><\/td>\n<td align=\"RIGHT\">145<\/td>\n<td align=\"RIGHT\">142<\/td>\n<td align=\"RIGHT\"><\/td>\n<td align=\"RIGHT\"><\/td>\n<td align=\"RIGHT\"><\/td>\n<\/tr>\n<tr>\n<td align=\"LEFT\">8 GPGPU<\/td>\n<td align=\"RIGHT\"><\/td>\n<td align=\"RIGHT\"><\/td>\n<td align=\"RIGHT\"><\/td>\n<td align=\"RIGHT\">97<\/td>\n<td align=\"RIGHT\"><\/td>\n<td align=\"RIGHT\"><\/td>\n<td align=\"RIGHT\"><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>&nbsp;<\/p>\n<p>Como se observa la GPGPU acelera el c\u00e1lculo. El usar m\u00e1s cores apenas incrementa la velocidad cuando se usan GPGPUs. Doblar el n\u00famero de GPGPUS s\u00f3lo consigue que la velocidad se multiplique por 1.5 por lo que al final correr en paralelo en muchos cores resulta m\u00e1s eficiente. Tomemos como ejemplo el \u00faltimo 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\u00e1s r\u00e1pidas las GPGPUs. Pero con 32 cores el c\u00e1lculo 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\u00e1fica puede acelerar significativamente el c\u00e1lculo, pero para c\u00e1lculos masivamente paralelos la paralelizaci\u00f3n sobre CPUs es m\u00e1s efectiva.<\/p>\n<p>DL_POLY est\u00e1 dise\u00f1ado para sistemas grandes e incluso el uso de miles de cores. Seg\u00fan la documentaci\u00f3n de DL_POLY:<\/p>\n<p><em>The DL_POLY_4 parallel performance and efficiency are considered very-good-to-excellent as long as (i) all CPU cores are loaded<\/em><em> with no less than 500 particles each and (ii) the major linked cells algorithm has no dimension less than 4.<\/em><\/p>\n<h2>M\u00e1s informaci\u00f3n<\/h2>\n<p><a href=\"http:\/\/www.cse.scitech.ac.uk\/ccg\/software\/DL_POLY\/\" target=\"_blank\">P\u00e1gina principal de DL_POLY<\/a>.<\/p>\n<p><a href=\"http:\/\/www.ehu.es\/sgi\/ARCHIVOS\/dlpoly_man.pdf\" target=\"_blank\">Manual de DL_POLY (pdf)<\/a>.<\/p>\n<p><a href=\"http:\/\/www.ehu.es\/sgi\/ARCHIVOS\/dlpoly_gui_man.pdf\" target=\"_blank\">Manual de la interfaz gr\u00e1fica de DL_POLY (pdf)<\/a>.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Informaci\u00f3n general Versi\u00f3n 4.02 del completo programa de din\u00e1mica molecular para macromol\u00e9culas, pol\u00edmeros, sistema i\u00f3nicos, disoluciones y otros sistemas moleculares desarrollado en el Laboratorio Daresbury. Se ha instalado la versi\u00f3n 4.02 (2.2 en Pendulo). Existe tambi\u00e9n DL_POLY_CLASSIC que por el momento no se desarrolla. &nbsp; El programa se ha compilado con soporte para GPGPUs. C\u00f3mo &hellip; <a href=\"https:\/\/www.ehu.eus\/sgi\/software-de-calculo\/dl_poly\" class=\"more-link\">Seguir leyendo <span class=\"screen-reader-text\">DL_POLY<\/span> <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_links_to":"","_links_to_target":""},"categories":[142,3],"tags":[],"_links":{"self":[{"href":"https:\/\/www.ehu.eus\/sgi\/wp-json\/wp\/v2\/posts\/2031"}],"collection":[{"href":"https:\/\/www.ehu.eus\/sgi\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.ehu.eus\/sgi\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.ehu.eus\/sgi\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.ehu.eus\/sgi\/wp-json\/wp\/v2\/comments?post=2031"}],"version-history":[{"count":24,"href":"https:\/\/www.ehu.eus\/sgi\/wp-json\/wp\/v2\/posts\/2031\/revisions"}],"predecessor-version":[{"id":2039,"href":"https:\/\/www.ehu.eus\/sgi\/wp-json\/wp\/v2\/posts\/2031\/revisions\/2039"}],"wp:attachment":[{"href":"https:\/\/www.ehu.eus\/sgi\/wp-json\/wp\/v2\/media?parent=2031"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.ehu.eus\/sgi\/wp-json\/wp\/v2\/categories?post=2031"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.ehu.eus\/sgi\/wp-json\/wp\/v2\/tags?post=2031"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}