Professional Documents
Culture Documents
Autor: Tutor:
ii
Diseo de un Simulador de Dinmica Molecular basado en CORBA Fco. Javier Aliseda Casado David Expsito Singh
EL TRIBUNAL
Javier Fernndez Muoz Laura Prada Camacho Jos Luis Lpez Cuadrado
Realizado el acto de defensa y lectura del Proyecto Fin de Carrera el da 10 de Febrero de 2011 en Legans, en la Escuela Politcnica Superior de la Universidad Carlos III de Madrid, acuerda otorgarle la CALIFICACIN de
VOCAL
SECRETARIO
PRESIDENTE
iii
iv
Agradecimientos
Quiero mostrar mis agradecimientos, en primer lugar, a mi tutor David, por ofrecerme la posibilidad de desarrollar este interesante proyecto, su constante ayuda y colaboracin, y su paciencia en la espera de su conclusin. En segundo lugar, agradecer a Oscar y Jaime, su colaboracin en la realizacin de los experimentos necesarios para la evaluacin del rendimiento sobre el cluster del laboratorio de informtica. Tambin quiere recordar y agradecer a todos mis compaeros y profesores, su apoyo durante todos estos aos de carrera, en ocasiones difciles, pero que sin duda, reconozco me han servido para ampliar en gran medida mis conocimientos, y no solo a nivel terico sino tambin a un nivel prctico y cercano a la realidad profesional. Por ltimo, agradecer a mi mujer Victoria, y a toda mi familia y amigos, por su apoyo en estos aos de estudio que finalmente concluyen con este proyecto.
vi
Resumen
La dinmica molecular es una tcnica para la simulacin por ordenador de la interaccin entre tomos y molculas durante un perodo de tiempo. Estas simulaciones conllevan un alto consumo de recursos, tanto de memoria como de capacidad de procesamiento. Es por tanto una situacin ideal para la utilizacin de entornos HPC (High-performance computing). Actualmente, GROMACS es una de las aplicaciones ms utilizadas por universidades y centros de investigacin para este tipo de simulaciones. Permite realizar simulaciones tanto en secuencial como en paralelo, sobre equipos multiprocesador o redes locales de ordenadores con la misma arquitectura utilizando MPI. Dada la amplia utilizacin de esta aplicacin hemos considerado interesante poder ejecutar estas simulaciones sobre maquinas con distintas arquitecturas y distribuidas en redes de rea extensa, permitiendo as la ejecucin en arquitecturas heterogneas y distintos sistemas operativos. Para conseguirlo, hemos comenzado este proyecto con el diseo e implementacin de una librera de comunicaciones en CORBA, estndar de la OMG para la interconexin de objetos distribuidos con una amplia difusin en la actualidad. Posteriormente, hemos utilizado esta librera para reemplazar las funciones de comunicaciones de GROMACS y conseguir as generar una nueva versin interoperable. Completado el desarrollo, se ha procedido a la evaluacin del rendimiento de esta nueva versin de GROMACS, con numerosos experimentos con distintos datos de entrada (simulaciones de la molcula Speptide y el virus Hepatitis C) y sobre distintas plataformas (equipo local multinucleo y cluster con 16 nodos). Fruto de la evaluacin de esta nueva versin, la principal conclusin de este proyecto es que, en el marco de las plataformas empleadas y para las simulaciones consideradas, la implementacin basada en CORBA no resulta viable dado que introduce una importante sobrecarga en las comunicaciones, la cual limita el rendimiento y escalabilidad de la implementacin paralela de GROMACS.
vii
viii
Abstract
Molecular dynamics is a technique for computer simulation of interaction between atoms and molecules in a period of time. These simulations involve a high consumption of resources, both memory and CPU. Therefore, these applications are specially suited for HPC (High-performance computing) environments. Currently, GROMACS is one of the most used applications by universities and research centers for these of simulations. Simulations can be executed in sequential or parallel. Parallel executions use MPI for performing the data distribution. Communications are a critical issue in the overall program performance. One important limitation of MPI is that the compute nodes used by the program have to have the same architecture, i.e., they execute the same binary file. Given the wide use of this application, we have considered interesting to enable these simulations on machines with different architectures and distributed over wide area networks, allowing them to run on heterogeneus architectures and/or operative systems. To achieve it, we started this project with the design and implementation of a CORBAbased communications library, the OMG standard for distributed objects interface widely distributed at the present. Subsequently, we have used this library for replacing the MPI communications functions inside GROMACS by CORBA functions in order to generate a new interoperable version. Once the development finished, we proceed to evaluate the performance of this new version of GROMACS. We performed many experiments using different input data (simulations of the Speptide molecule and Hepatitis C virus) and we tested if over differents platforms (local machine with a multi-core processor and a computer cluster with 16 nodes). As result of the evaluation of this new version, the main conclusion of this project is that, within the framework of the platforms used and the simulations considered, the CORBAbased implementation is not feasible because it introduces a significant overhead in communications, which limits the performance and scalability of the parallel implementation of GROMACS.
ix
ndice general
1. INTRODUCCIN Y OBJETIVOS ......................................................................................... 1 1.1. Introduccin a la Dinmica Molecular ..................................................................... 2 1.2. Objetivos .................................................................................................................. 4 1.3. Fases del desarrollo .................................................................................................. 5 1.4. Medios empleados .................................................................................................... 6 1.5. Estructura de la memoria ......................................................................................... 7 2. GROMACS .................................................................................................................... 9 2.1. Introduccin a la Dinmica Molecular ................................................................... 10 2.2. Caractersticas de GROMAS ................................................................................. 13 2.3. Instalacin de GROMACS ..................................................................................... 15 2.4. Generacin de ficheros para la simulacin ............................................................ 17 2.5. Ejecucin de simulaciones ..................................................................................... 20 2.6. Profiling y flujo de ejecucin ................................................................................. 21 2.7. Instalacin y ejecucin de GROMACS en paralelo (MPI) .................................... 24 2.8. Optimizacin para la ejecucin de GROMACS en paralelo .................................. 26 3. IMPLEMENTACIN GROMACS CON SOPORTE DE INTEROPERABILIDAD. ................. 29 3.1. Requisitos UML ..................................................................................................... 30 3.2. Arquitectura del sistema ......................................................................................... 32 3.3. Implementacin de funciones bsicas de comunicacin ........................................ 34
3.3.1 Interfase CORBANetwork ............................................................................................ 35 3.3.2 Estados de las comunicaciones .................................................................................... 36 3.3.3 Rutina de inicializacin ............................................................................................... 37 3.3.4 Rutinas de comunicacin/intercambio de datos .......................................................... 39 3.3.5 Rutinas de recopilacin de datos ................................................................................. 46
4.4. Comparativa MPICH vs ORBit 2........................................................................... 85 5. CONCLUSIONES Y TRABAJOS FUTUROS ........................................................................ 87 5.1. Conclusiones .......................................................................................................... 88 5.2. Trabajos futuros...................................................................................................... 89 6. PRESUPUESTO ............................................................................................................... 91 6.1. Introduccin ........................................................................................................... 92 6.2. Estimacin de tiempos ........................................................................................... 93 6.3. Presupuesto............................................................................................................. 95 6.4. Oferta ...................................................................................................................... 97 7. GLOSARIO ..................................................................................................................... 99 8. REFERENCIAS ............................................................................................................. 101 9. ANEXO I. MANUAL DE USUARIO ................................................................................ 103 Instalacin ................................................................................................................... 104 Generacin ficheros simulacin .................................................................................. 106 Ejecucin en equipo local ........................................................................................... 107 Ejecucin en cluster Kasukabe .................................................................................... 108
ndice de figuras
Figura 1: Ejemplo de simulacin del ADN ....................................................................... 10 Figura 2: Simulacin molcula Speptide .......................................................................... 63 Figura 3: Speptide. Tiempos en local con 1 proceso ........................................................ 66 Figura 4: Speptide. Tiempos en local con 2 procesos ....................................................... 67 Figura 5: Speptide. Tiempos en local 2 procesos. Normalizado ....................................... 67 Figura 6: Speptide. Tiempos en local con 16 procesos ..................................................... 68 Figura 7: Speptide. Tiempos en local con 16 nodos. Normalizado .................................. 68 Figura 8: Speptide. Tiempos en cluster usando 1 nodo .................................................... 69 Figura 9: Speptide. Tiempos en cluster usando 2 nodos ................................................... 70 Figura 10: Speptide. Tiempos en cluster usando 2 nodos. Normalizado .......................... 70 Figura 11: Speptide. Tiempos en cluster usando 16 nodos ............................................... 71 Figura 12: Speptide. Tiempos en cluster usando 16 nodos. Normalizado ........................ 71 Figura 13: Speptide. Comparativa de tiempos .................................................................. 72 Figura 14: Speptide. Comparativa de rendimiento en operaciones por segundo. ............. 73 Figura 15: Speptide. Comparativa consumo memoria RAM ............................................ 74 Figura 16: Simulacin molcula Hepatitis C .................................................................... 76 Figura 17: Hepatitis C. Tiempos en local con 1 proceso .................................................. 77 Figura 18: Hepatitis C. Tiempos en local con 2 procesos ................................................. 77 Figura 19: Hepatitis C. Tiempos en local con 2 procesos. Normalizado .......................... 78 Figura 20: Hepatitis C. Tiempos en local con 16 procesos ............................................... 78 Figura 21: Hepatitis C. Tiempos en local con 16 procesos. Normalizado ........................ 79 Figura 22: Hepatitis C. Tiempos en cluster con 1 nodo .................................................... 80 Figura 23: Hepatitis C. Tiempos en cluster con 2 nodos .................................................. 80 Figura 24: Hepatitis C. Tiempos en cluster con 2 nodos. Normalizado ........................... 81 Figura 25: Hepatitis C. Tiempos en cluster con 16 nodos ................................................ 81 Figura 26: Hepatitis C. Tiempos en cluster con 16 nodos. Normalizado ......................... 82 Figura 27: Hepatitis C. Comparativa de tiempos .............................................................. 83 Figura 28: Rendimiento MPICH vs ORBit ....................................................................... 86
ndice de diagramas
Diagrama Diagrama Diagrama Diagrama Diagrama Diagrama Diagrama Diagrama Diagrama Diagrama Diagrama Diagrama Diagrama Diagrama Diagrama Diagrama 1: Esquema de preparacin ficheros simulacin GROMACS ........................ 17 2: Flujo de ejecucin simulacin GROMACS ................................................ 23 3: Casos de uso ................................................................................................ 31 4: Arquitectura del sistema .............................................................................. 33 5: Estados de las comunicaciones.................................................................... 36 6: Actividad CORBA_Init ............................................................................... 38 7: Actividad CORBANetwork_Inicialize........................................................ 39 8: Actividad CORBA_Send ............................................................................ 40 9: Actividad CORBANetwork_SET ............................................................... 41 10: Actividad CORBA_Recv .......................................................................... 43 11: Actividad CORBANetwork_GET ............................................................. 44 12: Actividad CORBA_Sendrecv.................................................................... 46 13: Actividad CORBA_Allreduce ................................................................... 48 14: Actividad CORBANetwork_Barrier ......................................................... 49 15: Cluster Kasukabe ....................................................................................... 60 16: Proyecto. Diagrama de Gantt .................................................................... 94
ndice de tablas
Tabla 1: Estados de las comunicaciones ........................................................................... 37 Tabla 2: Parmetros de configuracin............................................................................... 50 Tabla 3: Pmetros trabajos gestor de colas ....................................................................... 59 Tabla 4: Comandos gestor de colas ................................................................................... 60 Tabla 5: Colas del gestor Kasukabe .................................................................................. 60 Tabla 6: Cmputo de tiempos en GROMACS .................................................................. 65 Tabla 7: Proyecto. Estimacin de tiempos ........................................................................ 93
III
Captulo 1
Introduccin y objetivos
III
III
Estos mecanismos de interoperabilidad conllevan un software adicional (middleware) que se encarga de envolver (wrapper) las llamadas a objetos remotos gestionando las comunicaciones y conversiones de datos entre las distintas mquinas o procesadores. La principal ventaja, por tanto de CORBA, es la flexibilidad de su interfaz y su interoperabilidad entre distintas plataformas. En su contra, suele tener un peor rendimiento frente a otras tcnicas debido fundamentalmente al middleware que requiere para las comunicaciones. Entre los sistemas ms utilizados actualmente para simulaciones de dinmica molecular, se encuentra la aplicacin GROMACS (GROningen MAchine for Chemical Simulatios). GROMACS es una aplicacin de alto rendimiento que fue implementada originalmente en la Universidad de Groningen y que posteriormente ha sido re-implementada como cdigo abierto, por un amplio nmero de desarrolladores. Actualmente GROMAS permite realizar simulaciones utilizando MPI con un buen rendimiento en ejecuciones dentro de una misma mquina o en redes de ordenadores con la misma arquitectura. Dada la amplia utilizacin de esta aplicacin y las ventajas que tendra la posibilidad de ejecutar simulaciones en mltiples mquinas con distintas arquitecturas, nos hemos propuesto con este proyecto, la implementacin de una versin de GROMACS interoperable.
III
1.2. Objetivos
En la actualidad, el diseo de aplicaciones distribuidas se ve facilitado en gran medida por el empleo de sistemas basados en objetos distribuidos. En este contexto, una de las arquitecturas ms ampliamente difundidas es CORBA. El objetivo de este proyecto es evaluar las posibilidades del empleo de CORBA para la computacin de alto rendimiento, con el fin de conseguir reducir (mediante computacin paralela) el tiempo de ejecucin de una simulacin de dinmica molecular, y al mismo tiempo conseguir la interoperabilidad entre plataformas heterogneas. La aplicacin objetivo para esta evaluacin es GROMACS, la cual es ampliamente utilizada en entornos de HPC debido al gran nmero de recurso consumidos. Como primer paso del proyecto, se ha investigado la posibilidad de que ya existiese alguna implementacin de GROMACS con ejecucin en paralelo utilizando CORBA, o la existencia de otros simuladores de dinmica molecular con esta posibilidad, y no se ha encontrado ninguna referencia. Por lo tanto, con este proyecto pretendemos: 1. Reemplazar el cdigo relacionado con las comunicaciones en MPI por una nueva versin en CORBA que nos ofrezca interoperabilidad entre plataformas heterogneas. 2. Evaluar el rendimiento de GROMACS en esta nueva implementacin de las comunicaciones. 3. Analizar las ventajas y/o inconvenientes de la implementacin con CORBA versus la versin actual en MPI.
III
III
Posteriormente, para completar las pruebas, hemos utilizado el cluster Kasukabe del laboratorio de informtica compuesto por 16 nodos con las siguientes caractersticas: Procesador: AMD Athlon XP 1700+ Frecuencia: 1.1 GHz RAM: 1.5 GB S.O.: Linux Debian Lenny 32 bits
III
Al final del proyecto se incluyen las referencias utilizadas y un glosario. Como anexo, se incluye el manual de usuario con instrucciones para la instalacin de GROMACS, y la generacin y ejecucin de las simulaciones realizadas en el proyecto.
III
III
Captulo 2
GROMACS
III
La modelizacin molecular pretende describir los sistemas qumicos complejos en trminos de un modelo atmico realista, con el objetivo de entender y predecir las propiedades macroscpicas basada en un conocimiento detallado a escala atmica. A menudo, el modelado molecular se utiliza para disear nuevos materiales, para los cuales, una prediccin precisa de sus propiedades fsicas es muy necesaria. Las propiedades fsicas macroscpicas se pueden distinguir en: a) Propiedades estticas en equilibrio, tales como la constante de unin entre un inhibidor y una enzima, la energa potencial media de un sistema, o la funcin de distribucin radial en un lquido. b) Propiedades dinmicas en desequilibrio, tales como la viscosidad de un lquido, los procesos de difusin en membranas, la dinmica de cambios de fase, las reacciones cinticas, o la dinmica de defectos en cristales. La eleccin de la tcnica depende de la cuestin a responder y de la viabilidad del mtodo para obtener resultados fiables en el estado actual de la tcnica. Idealmente, con ecuaciones dependientes del tiempo, se describen las propiedades de sistemas moleculares con alta exactitud, pero algo ms complejo que el estado en equilibrio de unos pocos tomos no puede ser manejado
III
en este nivel inicial. Por lo tanto, las aproximaciones son necesarias, cuanto mayor sea la complejidad de un sistema y mientras mayor sea el tiempo del perodo de los procesos a investigar, ms estrictos son los requisitos de las aproximaciones. En un determinado momento (alcanzado mucho antes de lo que uno quisiera) el enfoque ab-initio debe ser ampliado o reemplazado por un modelo emprico parametrizado. Cuando las simulaciones basadas en los principios fsicos atmicos fallan debido a la complejidad del sistema molecular, el modelado se basa enteramente en anlisis de similitud con estructuras conocidas y datos qumicos. Los mtodos QSAR (Quantitative Structure-Activity Relations) y muchas predicciones basadas en estructuras de protenas homologadas pertenecen a esta ltima categora de simulaciones. Las propiedades macroscpicas son siempre un promedio sobre un conjunto estadstico representativo (en equilibrio o en desequilibrio) de sistemas moleculares. Para el modelado molecular, esto tiene dos consecuencias importantes: El conocimiento sobre una estructura aislada, incluso si es una estructura con una energa global mnima, no es suficiente. Es necesario generar un conjunto representativo a una temperatura determinada, para poder calcular sus propiedades macroscpicas. Pero esto no es suficiente para calcular propiedades en equilibrio termodinmico basadas en energas libres, tales como equilibrios de fase, constantes de enlace, solubilidad, estabilidad relativa de conglomerados moleculares, etc. El clculo de energas libres y potenciales termodinmicos requiere extensiones especiales de las tcnicas de simulacin molecular. Aunque las simulaciones moleculares proporcionan en principio detalles atmicos de estructuras y sus movimientos, tales detalles no suelen ser relevantes para analizar las propiedades macroscpicas. Esto abre el camino a la simplificacin en la descripcin de las interacciones y obviar detalles irrelevantes. La ciencia de la mecnica esttica proporciona el marco terico para hacer estas simplificaciones. Existe una jerarqua de mtodos que van desde considerar los grupos de tomos como una unidad, describiendo el movimiento en un nmero reducido de colectivos coordenadas, un promedio superior a las molculas del disolvente con un potencial de fuerza media combinada con la dinmica estocstica, a la dinmica meseoscpica que describe densidades en lugar de tomos y flujos como respuesta a los gradientes termodinmicos en lugar de velocidades o aceleraciones como respuesta a las fuerzas.
Para la generacin de un conjunto representativo en equilibrio, hay dos mtodos disponibles: a) Simulaciones de Monte Carlo b) Simulaciones de Dinmica Molecular (DM). Para la generacin de conjuntos en desequilibrio y para el anlisis de eventos dinmicos, slo el segundo mtodo es apropiado. Mientras que las simulaciones de Monte Carlo son ms simples que la DM (porque no requieren el clculo de fuerzas), no ofrecen estadsticas significativamente mejores que la DM en una cantidad determinada de tiempo de computadora. Por lo tanto la DM es la tcnica ms universal. Si la configuracin de partida est muy lejos del equilibrio, las fuerzas pueden ser excesivamente
11
III
grandes, y la simulacin DM puede fallar. En estos casos, una fuerte minimizacin de energa es necesaria. Otra razn para llevar a cabo una minimizacin de energa, es la eliminacin de toda la energa cintica del sistema: si varias instantneas de simulaciones dinmicas han de compararse, la minimizacin de energas reduce el ruido trmico y las energas potencias en las estructuras, de modo que se puedan comparar mejor.
III
13
III
No hay lenguaje de scripting - todos los programas utilizan una interfaz sencilla con opciones de lnea de comandos para archivos de entrada y de salida. Siempre se puede obtener ayuda sobre las opciones mediante el uso de la opcin -h. A medida que la simulacin se lleva a cabo, GROMACS continuamente va informando del punto en que se encuentra la simulacin y de la fecha y hora en que espera terminar. Los archivos de entrada de trayectorias son independientes de hardware y por lo tanto pueden ser ledos por cualquier versin de GROMACS, incluso si fue compilado utilizando una precisin diferente de coma flotante. Se pueden escribir las coordenadas utilizando la compresin con prdida, lo que proporciona una forma muy compacta de almacenamiento de datos de trayectoria. La exactitud puede ser seleccionada por el usuario. Dispone de una amplia seleccin de herramientas flexibles para el anlisis de la salida de la simulacin en pantalla (ngmx, xmgrace, g_energy, etc.) El paquete incluye un constructor de topologa completamente automatizado para las protenas, incluso las estructuras de multmeros. Bloques de construccin estn disponibles para los 20 residuos de aminocidos estndar, as como algunas modificada, el nucletido 4 y 4 deoxinucleotide reside, varios azcares y lpidos, y algunos grupos especiales como los hemos y varias molculas pequeas. GROMACS se puede ejecutar en paralelo, utilizando comunicacin estndar MPI.
Precisamente esta ltima caracterstica, la posibilidad de ejecucin en paralelo, es la que trataremos de extender con este proyecto.
III
15
III
III
Todos los comandos disponen de ayuda utilizando el parmetro -h. GROMACS puede utilizar como entrada ficheros .pdb del Protein DataBank (www.pdb.org), para luego convertirlos a su formato nativo .gro + .top con el comando "pdb2gmx". Este
17
III
comando toma el archivo .pdb y genera dos ficheros, un .gro con los tomos y sus coordenadas xy-z, y un .top con las masas atmicas, sus cargas y enlaces. Una vez que estos ficheros (.gro y .top) han sido creados, es necesario especificar la "caja" en la que alojar los tomos. Esto se hace ejecutando el comando "editconf". Este comando coger el fichero .gro y lo modificar aadiendo en la ltima lnea las dimensiones de la caja que se le habrn indicado por parmetros. Ahora que las dimensiones de la caja se han especificado, es posible agregar ms de una de las molculas del fichero .pdb y rellenar el resto de la caja con molculas disolventes. Ambas acciones son realizadas con el comando "genbox". Este comando modificar el fichero .gro y .top para que contengan todos los tomos que han sido agregados en este paso. En algunas circunstancias, puede ser necesario introducir iones en la solucin, ya sea para neutralizar la carga total en el sistema, o para eliminar interacciones electrostticas entre las molculas disueltas, o para ambas cosas. Estos iones se agregan al sistema mediante la utilidad "genion". Una vez preparada la solucin, hay tres tipos de simulaciones. Las tres son ejecutadas de la misma manera: primero se ejecuta el comando "grompp" y a continuacin el comando "mdrun". El comando "mdrun" es el motor de GROMACS, y el responsable del verdadero desplazamiento de los tomos conforme a las leyes de la fsica (parametrizadas en el fichero de dinmica molecular .mdp). El comando "grompp" toma los ficheros .gro, .top y .mdp y genera un fichero .tpr que es la entrada del comando "mdrun". Como salida del comando "mdrun" obtenemos un fichero binario .trr de gran tamao, que contiene el estado del sistema a intervalos de tiempo regulares y tambin un fichero .gro que contiene el estado final de la solucin. Este fichero .gro puede utilizarse para la simulacin. Hay tres tipos de simulaciones, aunque las dos primeras son opcionales, y realmente su funcin es la preparacin de la solucin para la simulacin tercera, la completa. La primera simulacin tiene como objetivo la minimizacin de energas (Energy Minimization EM) en la solucin. Lo nico que hace es "empujar" los tomos de las molculas disueltas hasta que las longitudes de sus enlaces y sus ngulos se encuentren en su configuracin de mnima energa potencial (ignorando por completo los tomos de otros elementos de la solucin). Hacer esto es una buena manera de comprobar que los enlaces son estables (la molcula podra romperse si no lo fueran), y acelera las simulaciones posteriores. En algunas soluciones son necesarios varios pasos de minimizacin de energa (EM), con lo cual ser necesario ejecutar varias veces el ciclo grompp -> mdrun. La segunda simulacin tiene por objetivo la fijacin de la posicin del soluto dentro de la disolucin. Esto fija las molculas de soluto en una posicin, y permite que el disolvente y los iones se "relajen" a su alrededor en posiciones de mnima energa potencial. Con ello se consigue que el disolvente llene la caja de manera uniforme y no se formen vacos al inicio de la simulacin completa.
III
La tercera simulacin es la completa (full Molecular Dynamics o MD) y en ella se realizan los clculos completos de la dinmica molecular de la solucin en un periodo largo de tiempo (las simulaciones anteriores necesitan mucho menos tiempo en comparacin). Esta simulacin es la que ms tiempo de proceso necesita y es la ms indicada para la realizacin en paralelo. Como resultado de la simulacin se obtienen ficheros .xtc, .trr y .edr que son utilizados para el anlisis de la simulacin con utilidades como "ngmx" o "xmgrace", entre otras. Un esquema completo de todas estas etapas y sus opciones se encuentra en el documento "GROMACS_MD_Flowchart.pdf" incluido como referencia. Para las simulaciones realizadas con este proyecto, los pasos se concretan en el manual de usuario incluido como apndice del proyecto "Generacin ficheros simulacin".
19
III
Esta llamada se realizara sobre el directorio donde se ubiquen los ficheros de la simulacin.
III
21
III
Esta utilidad nos va a proporcionar datos como los que se muestran a continuacin (extracto de los primeros registros obtenidos de la simulacin secuencial de la molcula Speptide en el equipo local):
Flat profile: Each sample counts as 0.01 seconds. % cumulative self time seconds seconds calls 40.24 17.78 17.78 13.69 23.83 6.05 501 4.91 26.00 2.17 4.47 27.98 1.98 5003 3.32 29.44 1.47 1806746 3.10 30.81 1.37 5001 2.78 32.04 1.23 5002 2.65 33.21 1.17 2.44 34.29 1.08 2.21 35.27 0.97 29767850 2.06 36.17 0.91 1.65 36.91 0.73 5001 1.20 37.44 0.53 48711373 1.09 37.91 0.48 5001 1.04 38.38 0.46 1.00 38.81 0.44 7733508 0.91 39.22 0.40 5003 0.88 39.60 0.39 1580316 0.72 39.92 0.32 5001 0.70 40.23 0.31 10006 0.61 40.51 0.27 5002 0.61 40.77 0.27 5001 0.60 41.04 0.27 9267813 0.48 41.25 0.21 5001 0.45 41.45 0.20 6036207 0.43 41.64 0.19 9267813 0.41 41.82 0.18 5001 0.38 41.99 0.17 940188 0.36 42.15 0.16 932862 0.28 42.27 0.12 13707741 0.27 42.40 0.12 5001 0.26 42.51 0.12 7471494 0.25 42.62 0.11 7916583 0.20 42.71 0.09 2325465 0.18 42.79 0.08 1378723 0.18 42.87 0.08 10002 self s/call 0.01 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 total s/call 0.02 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
name nb_kernel112_ia32_sse ns5_core nb_kernel100_ia32_sse csettle put_in_list do_update_md calc_ke_part nb_kernel010_ia32_sse nb_kernel110_ia32_sse invsqrt nb_kernel111_ia32_sse lo_fcv add_j_to_nblist calc_vcm_grp nb_kernel101_ia32_sse get_dx_dd do_lincs nb_kernel330 unshift_x lincs_matrix_expand shift_self calc_mu new_i_nblist do_nonbonded14 invsqrt close_i_nblist g96angles do_dih_fup setexcl rvec_dec do_stopcm_grp rvec_sub rvec_inc cos_angle mk_grey clear_rvecs
III
De esta forma podemos obtener informacin detallada sobre las rutinas que ejecuta GROMACS durante la simulacin, y que se detallan en el siguiente diagrama que describe el flujo de ejecucin de una simulacin:
Este diagrama, as como el procedimiento para hacer un profiling de GROMACS est extrado del trabajo "Benchmarks!" de mi tutor, David Expsito Singh, cuya referencia se incluye al final del proyecto.
23
III
III
25
III
III
En este proyecto, vamos a re-implementar estas rutinas de forma que, en lugar de utilizar el interfaz MPI para la comunicacin entre procesos, utilicen una nueva librera implementada especficamente para la utilizacin de CORBA.
27
III
III
Diseo de un Simulador de Dinmica Molecular basado en CORBA. Implementacin GROMACS con soporte de interoperabilidad.
Captulo 3
Implementacin GROMACS con soporte de interoperabilidad.
29
III
Diseo de un Simulador de Dinmica Molecular basado en CORBA. Implementacin GROMACS con soporte de interoperabilidad.
III
Diseo de un Simulador de Dinmica Molecular basado en CORBA. Implementacin GROMACS con soporte de interoperabilidad.
Por lo tanto, los requisitos se han obtenido analizando dichos ficheros y se detallan en el siguiente diagrama de casos de uso:
CORBANetwork
Init uses CORBA_Init Send uses
uses Isend
CORBA_Send
Recv
uses CORBA_Recv
uses Irecv
GROMACS Sendrecv
uses CORBA_Sendrecv
Barrier
uses CORBA_Barrier
Finalize
Como se puede observar, el nuevo sistema implementa todas las rutinas de comunicaciones MPI que se utilizan en el GROMACS y que necesitan una re-implementacin en CORBA. Para los casos ms complejos, se han creado funciones especficas que luego son usadas por varios casos de uso.
31
III
Diseo de un Simulador de Dinmica Molecular basado en CORBA. Implementacin GROMACS con soporte de interoperabilidad.
III
Diseo de un Simulador de Dinmica Molecular basado en CORBA. Implementacin GROMACS con soporte de interoperabilidad.
GROMACS network.c
CORBANetwork
CORBA
SISTEMA OPERATIVO
33
III
Diseo de un Simulador de Dinmica Molecular basado en CORBA. Implementacin GROMACS con soporte de interoperabilidad.
Estas rutinas se implementa en el fichero "corbanetworkpfc.c" y definidas en "corbanetworkpfc.h" y realizan las misma funcin que sus homnimas en MPI. No obstante, durante la ejecucin de estas funciones, en lugar de hacer llamadas a procedimientos de envo/recepcin por MPI, se instancia un objeto CORBANetwork de la librera que se ejecutar en segundo plano, y que llevar a cabo la misma funcin. Para ello, en cada nodo el objeto CORBANetwork mantendr una mquina de estados que delimita las distintas situaciones en que puede estar una comunicacin entre nodos.
III
Diseo de un Simulador de Dinmica Molecular basado en CORBA. Implementacin GROMACS con soporte de interoperabilidad.
Como se observa, se definen en primer lugar los buffers en funcin del tipo de datos a manejar. Estos buffers son punteros y no reservan memoria hasta que no se vaya a realizar un envo/recepcin. Por otra parte, dispone de un mtodo de inicializacin (inicialize), mtodos de envo (set) y recepcin (get) en funcin del tipo de datos, un mtodo para implementar una barrera (barrier) y otro para reduccin (allreduce). Estos mtodos sern explicados en posteriores apartados.
35
III
Diseo de un Simulador de Dinmica Molecular basado en CORBA. Implementacin GROMACS con soporte de interoperabilidad.
El resto de funciones MPI no se utilizan en GROMACS, o son reemplazables por una conjuncin de las anteriores, como MPI_sendrecv. En futuros proyectos se podra ampliar esta interfase con el resto de funciones MPI.
NOT READY
CORBANetwork_INITIALIZE
CORBANetwork_SET (escritura)
READING
WRITING
CORBANetwork_GET (lectura)
COMPLETE
Cada nodo dispondr de un buffer para cada uno de los nodos intervinientes en la comunicacin, aunque no se reservar memoria para su uso hasta el momento en que sea necesaria. De igual manera, contar con un flag indicativo del estado del buffer correspondiente a cada nodo.
III
Diseo de un Simulador de Dinmica Molecular basado en CORBA. Implementacin GROMACS con soporte de interoperabilidad.
DESCRIPCIN
El nodo no est inicializado y por tanto no est preparado ni para enviar (SET) ni para recibir (GET) en ninguno de sus buffers. El nodo est inicializado y el buffer del nodo correspondiente est disponible (est vaco o se acaba de completar un GET). El buffer del nodo correspondiente est siendo escrito por en emisor (se est ejecutando un SET). El buffer del nodo correspondiente est siendo ledo por el receptor (se est ejecutando un GET). La escritura del buffer correspondiente se ha completado (SET completado).
READY
WRITING
READING
COMPLETE
Como parmetros recibe: - num_nodes: Nmero de nodos lanzados en la ejecucin. - my_rank: Identificador del nodo que ejecuta la funcin.
37
III
Diseo de un Simulador de Dinmica Molecular basado en CORBA. Implementacin GROMACS con soporte de interoperabilidad.
Se capturan las seales de interrupcin y apagado, para devolver la memoria de los buffers cuando se finalize o interrumpa la ejecucin
III
Diseo de un Simulador de Dinmica Molecular basado en CORBA. Implementacin GROMACS con soporte de interoperabilidad.
El mtodo CORBANetwork_INITIALIZE de la librera CORBANetwork realiza la inicializacin de propiedades y buffers siguiendo el esquema:
39
III
Diseo de un Simulador de Dinmica Molecular basado en CORBA. Implementacin GROMACS con soporte de interoperabilidad.
Como parmetros recibe: - nodeId: - buf: - count: - datatype: - dest: Identificador del nodo que ejecuta la funcin. Apuntador al buffer en memoria con los datos a enviar. Nmero de datos a enviar. Tipo de datos a enviar. Identificador del nodo destinatario de los datos.
Para minimizar los cambios en el cdigo de GROMACS, el parmetro datatype admite los valores definidos por MPI_Datatype dentro del fichero "mpi.h". Si no se dispone de este fichero, tambin estn definidos los tipos dentro de la propia librera. Dado que GROMACS no utiliza todos los tipos de datos disponibles en MPI, la librera desarrollada para este proyecto solo implementa el envo de los siguientes tipos de datos: - MPI_BYTE - MPI_INT - MPI_FLOAT - MPI_DOUBLE El esquema de esta funcin se describe con el siguiente diagrama de actividad:
Trazar el envio
III
Diseo de un Simulador de Dinmica Molecular basado en CORBA. Implementacin GROMACS con soporte de interoperabilidad.
41
III
Diseo de un Simulador de Dinmica Molecular basado en CORBA. Implementacin GROMACS con soporte de interoperabilidad.
Todas las funciones de recepcin se han englobado en la funcin CORBA_Recv que recibe por parmetros los valores necesarios para realizar el envo.
int CORBA_Recv (int nodeId, void *buf, int count, int datatype, int dest)
Como parmetros recibe: - nodeId: - buf: - count: - datatype: - dest: Identificador del nodo que ejecuta la funcin. Apuntador al buffer en memoria donde almacenar los datos a recibir. Nmero de datos a recibir. Tipo de datos a recibir. Identificador del nodo emisor de los datos.
Como el caso anterior, el parmetro datatype admite los valores definidos por MPI_Datatype dentro del fichero "mpi.h", y los tipos de datos implementados son los siguientes: - MPI_BYTE - MPI_INT - MPI_FLOAT - MPI_DOUBLE
III
Diseo de un Simulador de Dinmica Molecular basado en CORBA. Implementacin GROMACS con soporte de interoperabilidad.
Trazar la recepcin
43
III
Diseo de un Simulador de Dinmica Molecular basado en CORBA. Implementacin GROMACS con soporte de interoperabilidad.
III
Diseo de un Simulador de Dinmica Molecular basado en CORBA. Implementacin GROMACS con soporte de interoperabilidad.
Por ltimo la funcin CORBA_Sendrecv realiza una secuencia de envo y posterior recepcin entre dos nodos:
int CORBA_Sendrecv ( int nodeId, void *bufsend, int countsend, int datatypesend, int destsend, void *bufrecv, int countrecv, int datatyperecv, int destrecv)
Como parmetros recibe: - nodeId: Identificador del nodo que ejecuta la funcin. - bufsend: Apuntador al buffer en memoria con los datos a enviar. - countsend: Nmero de datos a enviar. - datatypesend: Tipo de datos a enviar. - destsend: Identificador del nodo destinatario de los datos. - bufrecv: Apuntador al buffer en memoria donde recibir los datos. - countrecv: Nmero de datos a recibir - datatyperecv: Tipo de datos a recibir. - destrecv: Identificador del nodo receptor de los datos. Como en casos anteriores, el parmetro datatype admite los valores definidos por MPI_Datatype dentro del fichero "mpi.h", y los tipos de datos implementados son los siguientes: - MPI_BYTE - MPI_INT - MPI_FLOAT - MPI_DOUBLE
45
III
Diseo de un Simulador de Dinmica Molecular basado en CORBA. Implementacin GROMACS con soporte de interoperabilidad.
Con estas tres funciones, implementadas para los tipos de datos byte, int, float y double, se han cubierto todas las necesidades de intercambio de datos en GROMACS.
Como parmetros recibe: - nodeId: Identificador del nodo que ejecuta la funcin. - numNodes: Nmero de nodos que intervienen en la comunicacin. - inbuf: Apuntador al buffer en memoria donde albergar los datos recibidos. - outbuf: Apuntador al buffer en memoria donde albergar los datos calculados. - count: Nmero de datos a manejar. - datatype: Tipo de datos a manejar. - op: Operacin a realizar.
III
Diseo de un Simulador de Dinmica Molecular basado en CORBA. Implementacin GROMACS con soporte de interoperabilidad.
Como en las rutinas anteriores, para minimizar los cambios en el cdigo de GROMACS, el parmetro datatype admite los valores definidos por MPI_Datatype dentro del fichero "mpi.h", y el parmetro op admite los valores definidos por MPI_Op en el mismo fichero. Si no se dispone de este fichero, tambin estn definidos los tipos dentro de la propia librera. Dado que GROMACS no utiliza todos los tipos de datos disponibles, la librera desarrollada para este proyecto solo implementa el envo de los siguientes tipos de datos: - MPI_INT - MPI_FLOAT - MPI_DOUBLE Por otra parte, y por el mismo motivo, la nica operacin implementada ha sido MPI_SUM.
47
III
Diseo de un Simulador de Dinmica Molecular basado en CORBA. Implementacin GROMACS con soporte de interoperabilidad.
Llamar a CORBA_Send para enviar al nodo root los datos del buffer de entrada
NO LLamar a CORBA_Recv para recibir del nodo root el resultado del clculo
LLamar a CORBANetwork_Barrier para esperar que todos los buffer de recepcin estn en estado COMPLETE
Como se observa, se reutilizan las funciones CORBA_Send y CORBA_Recv para las transmisiones de datos, mientras que el mtodo CORBANetwork_Allreduce solo realiza la operacin correspondiente. En nuestro caso, la suma de los buffers dejando el resultado en el del nodo root.
III
Diseo de un Simulador de Dinmica Molecular basado en CORBA. Implementacin GROMACS con soporte de interoperabilidad.
Un mtodo importante en esta funcin es el mtodo CORBANetwork_Barrier, que realiza una espera para que todos los nodos hijos hayan enviado los datos al root. Su funcionamiento es el siguiente:
Consultar el estado de los buffers de cada nodo y calcular cuantos NO estn COMPLETE
49
III
Diseo de un Simulador de Dinmica Molecular basado en CORBA. Implementacin GROMACS con soporte de interoperabilidad.
DESCRIPCIN
Si est definida, imprime trazas en todas las funciones GROMACS de comunicaciones. Si est definida, imprime trazas en todas las funciones CORBA para MPI Si est definida y activadas las trazas CORBA para MPI, imprime tambin el contenido de los buffers Nmero mximo de nodos permitidos optimizar el consumo de memoria. Tiempo mnimo de espera arranque (milisegundos) Tiempo mximo de espera arranque (milisegundos) a que un para
#define TRAZASCORBAMPI
#define TRAZASCORBAMPIBUFFERS
#define MAX_NUMNODES 32
nodo
que
un
nodo
Intervalo de espera para un nuevo intento (milisegundos) Tiempo a dormir (milisegundos) en procesos de espera
#define SLEEP_TIME 1
Seal a lanzar cuando se complete una lectura o escritura de un buffer. No usar la seal SIGUSR1 porque la captura GROMACS.
III
Diseo de un Simulador de Dinmica Molecular basado en CORBA. Implementacin GROMACS con soporte de interoperabilidad.
51
III
Diseo de un Simulador de Dinmica Molecular basado en CORBA. Implementacin GROMACS con soporte de interoperabilidad.
y en el nodo emisor cuando se completa la recepcin y por tanto el buffer ya est disponible para futuras comunicaciones (CORBANetwork_GET):
// Lectura completada => estado = READY: CORBA_free (servant->bufferFloat[idSender]); servant->bufferState[idSender] = STATE_READY; // Lanzamos seal ACK para despertar a posibles procesos en espera: kill(getpid(),SIGACK);
III
Diseo de un Simulador de Dinmica Molecular basado en CORBA. Implementacin GROMACS con soporte de interoperabilidad.
La seal utilizada como ACK es parametrizable, en nuestra implementacin se ha utilizado SIGUSR2, que no es una seal no utilizada por el sistema operativo ni por GROMACS. Inicialmente utilizamos la seal SIGUSR1 pero se tuvo de descartar porque esta seal ya era utilizada durante las simulaciones en la versin original de GROMACS.
53
III
Diseo de un Simulador de Dinmica Molecular basado en CORBA. Implementacin GROMACS con soporte de interoperabilidad.
III
Captulo 4
Estudio comparativo de rendimiento
55
III
4.1. Introduccin
Para realizar un estudio comparativo del rendimiento de GROMACS utilizando la nueva librera sobre CORBA frente a la actual implementacin sobre MPI, hemos utilizado dos plataformas: A) Equipo local con doble ncleo: - Procesador: Core Duo T5200 (doble ncleo) - Frecuencia: 1.6 GHz - RAM: 2.0 GB - S.O: Linux Ubuntu 9.04 32 bits, kernel 2.6.28-19 B) Cluster Kasukabe del laboratorio de informtica: - 16 nodos con las siguientes caractersticas: Procesador: AMD Athlon XP 1700+ Frecuencia: 1.1 GHz RAM: 1.5 GB S.O.: Linux Debian Lenny 32 bits, kernel 2.6.26-1-686
- Nodos interconectados en una red de rea local con las siguientes caractersticas: Interfase de red: Ethernet de 1 Gbps Switch de 24 bocas a 1 Gbps Procesador: Pentium III Dual Frecuencia: 1.0 GHz RAM: 2.0 GB S.O.: Linux Debian Lenny 32 bits, kernel 2.6.26-1-686
III
57
III
cd $PBS_O_WORKDIR echo "Contenido de $PBS_NODEFILE: " cat $PBS_NODEFILE rm *.log rm *.ref mpirun.mpich -np 2 -machinefile $PBS_NODEFILE /datos_nfs/pfc_aliseda/gromacs/bin/mdrun -v -s pr -e pr -o pr -c /datos_nfs/pfc_aliseda/speptide/after_pr -g /datos_nfs/pfc_aliseda/speptide/prlog > /datos_nfs/pfc_aliseda/speptide/misalida2 exit
III
DESCRIPCIN
Nombre del trabajo. del fichero. Por defecto es el nombre
Cola de trabajos a utilizar. Localizacin del fichero salida estndar (stdout). que contendr la
#PBS -e error2
la
#PBS -l nodes=2
Nmero de nodos que necesitamos. Si los nodos tuvieran dos procesadores (p.e.) se indicara con "nodes=2:ppn=2". Tiempo mximo de ejecucin que requiere trabajo. Pasado ese tiempo el trabajo eliminado automticamente de la cola. el es
#PBS -l walltime=00:35:00
59
III
DESCRIPCIN
Lanza el trabajo del script que se indica. Muestra el lanzados. estado actual de los trabajos
CARACTERSTICAS
Nodos disponibles: solo 1. Max. walltime: 5 min.
normal
long
Las mquinas que componen el cluster estn conectadas en red local y estn gestionadas por el gestor de trabajos (kasukabe.lab.inf.uc3m.es), segn el diagrama siguiente:
III
El equipo kasukabe es el nico equipo que est accesible para los usuarios a travs de ssh para poder lanzar trabajos y monitorizar su ejecucin.
61
III
III
63
III
Los pasos utilizados para la preparacin de la simulacin son los siguientes: 1) pdb2gmx -f speptide.pdb -p speptide.top -o speptide.gro 2) editconf -f speptide -o -d 0.5 -c 3) genbox -cp out -cs -p speptide -o b4em 4) make_ndx -f b4em [usar opcin q] [usar opcin 0]
5) grompp -v -f em -c b4em -o em -p speptide 6) mdrun -v -s em -o em -c after_em -g emlog 7) grompp -f pr -o pr -c after_em -r after_em -p speptide Una vez preparados los ficheros, para ejecutar la simulacin completa de forma secuencial, hemos ejecutado el siguiente comando: mdrun -v -s pr -e pr -o pr -c after_pr -g prlog Y para ejecutarlo en paralelo, con MPI y 2 procesos: mpirun -np 2 mdrun -v -s pr -e pr -o pr -c after_pr -g prlog
III
Computing: Nodes Number G-Cycles Seconds % ----------------------------------------------------------------------Comm. coord. 2 5001 9.216 8.3 6.5 Neighbor search 2 501 12.183 11.0 8.6 Force 2 5001 82.720 74.8 58.4 Wait + Comm. F 2 5001 20.971 19.0 14.8 Write traj. 2 101 0.425 0.4 0.3 Update 2 5001 2.580 2.3 1.8 Constraints 2 5001 5.131 4.6 3.6 Comm. energies 2 5001 4.354 3.9 3.1 Rest 2 4.018 3.6 2.8 ----------------------------------------------------------------------Total 2 141.597 128.0 100.0 ----------------------------------------------------------------------M E G A - F L O P S A C C O U N T I N G
Parallel run - timing based on wallclock. RF=Reaction-Field FE=Free Energy SCFE=Soft-Core/Free Energy T=Tabulated W3=SPC/TIP3p W4=TIP4p (single or pairs) NF=No Forces Computing: M-Number M-Flops % Flops ----------------------------------------------------------------------LJ 36.523707 1205.282 1.5 Coulomb 114.152884 3082.128 3.8 Coulomb [W3] 6.851060 548.085 0.7 Coulomb + LJ 42.578120 1617.969 2.0 Coulomb + LJ [W3] 19.723669 1794.854 2.2 Coulomb + LJ [W3-W3] 266.406701 65269.642 81.3 Outer nonbonded loop 72.190002 721.900 0.9 1,4 nonbonded interactions 1.580316 142.228 0.2 NS-Pairs 102.532798 2153.189 2.7 Reset In Box 0.466431 1.399 0.0 Shift-X 27.415482 164.493 0.2 CG-CoM 1.373241 4.120 0.0 Sum Forces 13.707741 13.708 0.0 Angles 1.385277 232.727 0.3 Propers 0.510102 116.813 0.1 Impropers 0.430086 89.458 0.1 Pos. Restr. 0.730146 36.507 0.0 Virial 13.977795 251.600 0.3 Update 13.707741 424.940 0.5 Stop-CM 13.707741 137.077 0.2 Calc-Ekin 13.710482 370.183 0.5 Lincs 0.960576 57.635 0.1 Lincs-Mat 16.629972 66.520 0.1 Constraint-V 14.678802 117.430 0.1 Constraint-Vir 13.718226 329.237 0.4 Settle 4.252550 1373.574 1.7 ----------------------------------------------------------------------Total 80322.698 100.0 ----------------------------------------------------------------------Time: Performance: NODE (s) 64.000 Real (s) 64.000 1:04 (Mnbf/s) (GFlops) 7.597 1.255 (%) 100.0 (ns/day) 13.500 (hour/ns) 1.778
65
III
Segundos
30,00 20,00 10,00 0,00 Comm. coord. 0,00 0,00 0,00 Neighbor search 5,90 5,90 5,90 Wait + Constrain Comm. Write traj. Update Comm. F ts energies 0,00 0,00 0,00 0,10 0,20 0,20 1,00 1,00 1,00 2,70 2,70 2,70 0,00 0,00 0,00
Total time Real time 40,00 40,00 40,00 40,00 40,00 40,00
Como se observa, el tiempo de ejecucin es el mismo en las tres implementaciones, porque realmente no se realiza ninguna de las tareas que implican comunicaciones: - Comm. coord: Comunicacin de coordenadas. - Wait + Comm. F.: Espera y comunicacin de fuerzas. - Comm. energies: Comunicacin de energas.
III
Segundos
250,00 200,00 150,00 100,00 50,00 0,00 Comm. coord. 2,80 47,70 17,10 Neighbor search 6,80 17,70 8,20 Force 29,90 73,00 32,70 Wait + Write traj. Comm. F 8,10 60,50 20,10 0,10 1,70 0,50 Update 1,10 2,20 1,20 Constrain Comm. ts energies 2,80 5,70 3,00 1,30 96,20 5,00 Rest 1,20 5,30 2,20 Total time Real time 54,00 310,00 90,00 27,00 155,00 45,00
Si normalizamos los valores anteriores con respecto a MPI obtenemos la siguiente grfica:
Local (2 Procesos) - Speptide - Time Accounting
80,00 70,00 60,00 50,00 40,00 30,00 20,00 10,00 0,00 Comm. coord. 17,04 6,11 Neighbor search 2,60 1,21 Force 2,44 1,09 Wait + Write traj. Comm. F 7,47 2,48 17,00 5,00 Update 2,00 1,09 Constrain Comm. ts energies 2,04 1,07 74,00 3,85 Rest 4,42 1,83 Total time Real time 5,74 1,67 5,74 1,67 CORBA v1 CORBA v2
CORBA v1 CORBA v2
En este caso se observa que el tiempo destinado a las comunicaciones es importante, pero a pesar de ello, en el caso de MPI el tiempo real de la simulacin disminuye a 27, pero en el caso de CORBA aumenta a 155 para la v1 y a 45 para la v2. Se confirma un incremento significativo de tiempos, aunque tambin se observa una gran mejora entre la versin CORBA v2 frente a la v1.
67
III
Segundos
Wait + Constrain Comm. Write traj. Update Comm. F ts energies 449,70 5932,30 1884,40 11,70 212,50 60,60 1,40 2,90 1,70 3,50 7,00 4,00 232,80 3745,30 813,70
MPI
Si normalizamos los valores anteriores con respecto a MPI obtenemos la siguiente grfica:
Local (16 Procesos) - Speptide - Time Accounting
20,00
10,00
5,00
0,00
Wait + Constrain Comm. Write traj. Update Comm. F ts energies 13,19 4,19 18,16 5,18 2,07 1,21 2,00 1,14 16,09 3,50
CORBA v1 CORBA v2
En ese caso observamos, que aunque usemos muchos nodos, al tratarse de un solo equipo (aunque con dos ncleos), los tiempos se incrementan respecto a MPI. Se confirma que la incluso con la versin CORBA v2 los tiempos son ms de 4 veces superiores a los de MPI.
III
Segundos
60,00 40,00 20,00 0,00 Comm. coord. 0,00 0,00 0,00 Neighbor search 10,50 10,60 10,60 Wait + Write traj. Comm. F 0,00 0,00 0,00 0,20 0,20 0,20 Constrain Comm. ts energies 4,30 4,40 4,30 0,00 0,00 0,00
Total time Real time 90,10 92,00 91,00 90,00 92,00 91,00
Como se puede observar, el tiempo de ejecucin es prcticamente el mismo en las tres implementaciones, porque realmente no se realiza ninguna tarea de comunicaciones, pero se observa que los tiempos han aumentado frente a la simulacin en el equipo local. Esto es debido a que las mquinas del cluster son menos potentes.
69
III
Segundos
150,00 100,00 50,00 0,00 Comm. coord. 8,30 36,60 33,00 Neighbor search 11,00 12,50 12,00 Wait + Write traj. Comm. F 19,00 45,10 43,60 0,40 1,10 1,00 Constrain Comm. ts energies 4,60 4,60 4,50 3,90 14,20 13,60
Total time Real time 128,00 204,00 194,00 64,00 102,00 97,00
Si normalizamos los valores anteriores con respecto a MPI obtenemos la siguiente grfica:
Cluster (2 Nodos) - Speptide - Time Accounting
5,00 4,00 3,00 2,00 1,00 0,00 CORBA v1 CORBA v2
CORBA v1 CORBA v2
En este caso se observa que el tiempo destinado a las comunicaciones es importante, pero a pesar de ello, en el caso de MPI el tiempo real de la simulacin disminuye a 64, pero en el caso de CORBA aumenta a 102 para la v1 y a 97 para la v2. Se aprecia que la tiempo total (Real time) de la versin CORBA es aproximadamente una vez y media la de MPI. La versin CORBA v2 mejora los tiempos, pero sobre esta plataforma (cluster Kasukabe) la mejora no es tan significativa como en el equipo local.
III
Segundos
5000,00 4000,00 3000,00 2000,00 1000,00 0,00 Comm. coord. 131,90 Neighbor search 22,60 359,70 356,30 Force 80,90 104,30 88,80 Wait + Constrain Comm. Write traj. Update Comm. F ts energies 195,60 2304,90 2137,70 6,40 81,10 81,50 4,10 4,60 4,10 6,40 7,50 6,50 92,20 1198,50 1140,40 Rest 20,00 345,10 334,10 Total time Real time 560,00 6400,00 6032,00 35,00 400,00 377,00
MPI
Si normalizamos los valores anteriores con respecto a MPI obtenemos la siguiente grfica:
Cluster (16 Nodos) - Speptide - Time Accounting
20,00
10,00
5,00
0,00
Wait + Constrain Comm. Write traj. Update Comm. F ts energies 11,78 10,93 12,67 12,73 1,12 1,00 1,17 1,02 13,00 12,37
CORBA v1 CORBA v2
En ese caso observamos que usando muchos nodos en cluster, el tiempo real disminuye para la versin MPI a 35 segundos, pero los tiempos de la versin CORBA son ms de 10 veces superiores a los de MPI. Este aumento de tiempos de la versin CORBA es superior que en las pruebas en el equipo local, esto responde a que ahora los nodos se deben reconocer en un entorno de red local y hacer la transmisin de datos a travs de la LAN, mientras que en local se haca dentro del mismo equipo.
71
III
1.000
800
MPI Local CORBA v1 Local 600 CORBA v2 Local MPI Cluster CORBA v1 Cluster CORBA v2 Cluster 400
200
0 MPI Local CORBA v1 Local CORBA v2 Local MPI Cluster CORBA v1 Cluster CORBA v2 Cluster
1 40 40 40 90 92 91
2 27 155 45 64 102 97
Se puede concluir, que la ejecucin de MPI en local disminuye el tiempo para 2 y 4 nodos, pero aumenta a partir de 8. La ejecucin MPI en cluster supone una disminucin del tiempo, incluso con 16 nodos, pero el porcentaje de reduccin disminuye conforme aumenta el nmero de nodos. Por ltimo, la implementacin CORBA no consigue disminuir los tiempos en ningn caso. No obstante, la versin CORBA v2 consigue mejorar los tiempos significativamente frente a la v1.
III
GFlops
2.000 1.500 1.000 500 0 Local - MPI Local - CORBA v2 Cluster - MPI Cluster - CORBA v2
De estos datos se extraen las siguientes conclusiones: La versin CORBA v2, en ambas plataformas, reduce el nmero de operaciones por segundo conforme aumenta el nmero de nodos, debido a que realiza el mismo trabajo pero emplea ms tiempo en comunicaciones. En el cluster, la versin MPI aumenta progresivamente el nmero de operaciones por segundo conforme aumenta el nmero de nodos. En el equipo local, la versin MPI, al contar con doble ncleo, con 2 procesos aumenta el nmero de operaciones, pero a partir de 2 disminuye.
73
III
KBytes
25.000 20.000 15.000 10.000 5.000 0 Local - MPI Local - CORBA v2 Speptide - local - 1 proceso 10.420 18.796 Experimento Speptide - local - 2 procesos 18.672 41.966
Como se observa en la grfica, la versin CORBA v2 de GROMACS, tanto en la simulacin en secuencial (con un solo proceso), como en paralelo (con dos procesos), consume casi 2 veces la memoria de la versin MPI. Esto es debido a que durante el inicio de la simulacin, la versin CORBA v2 debe cargar el middleware de ORBit2 y crear un nuevo objeto de la librera CORBANetwork que se ejecuta en un nuevo hilo independiente, con lo cual se produce un aumento en el consumo de memoria. Este resultado es extensible a los experimentos realizados en cluster, y por lo tanto, la suma de la memoria RAM consumida con la versin CORBA v2 por cada uno de los nodos implicados en el experimento ser en conjunto superior a versin MPI.
III
75
III
http://www.rcsb.org/pdb/explore/jmol.do?structureId=1R7E):
Los pasos utilizados para la generacin de la simulacin han sido los mismos que para la Speptide, salvo el primero, para el cual se ha utilizado la siguiente variacin: 1) pdb2gmx -ignh -f speptide.pdb -p speptide.top -o speptide.gro Hay que notar que se ha renombrado el virus de 17RE.pdb a speptide.pdb para reutilizar los script ya desarrollados para el estudio anterior.
III
A continuacin vamos a comparar los datos de rendimiento ms significativos entre las simulaciones con MPI y las simulaciones con CORBA. En esta ocasin descartamos la implementacin CORBA v1 y nos centramos en los datos de rendimiento ms significativos entre las simulaciones con MPI y las simulaciones con CORBA v2. En primer lugar analizamos la ejecucin en un solo proceso:
Local (1 Proceso) - HepatitisC - Time Accounting
70,00 60,00 50,00
Segundos
40,00 30,00 20,00 10,00 0,00 Comm. coord. 0,00 0,00 Neighbor search 8,30 8,30 Wait + Constrain Comm. Write traj. Update Comm. F ts energies 0,00 0,00 0,20 0,50 1,50 1,50 4,10 4,10 0,00 0,00
MPI CORBA v2
MPI CORBA v2
Como se observa, el tiempo de ejecucin es el mismo en las tres implementaciones, porque realmente no se realiza ninguna comunicacin, pero ha aumentado a 59 segundos, frente a los 40 que tardaba la simulacin de Speptide. En la simulacin con dos procesos obtuvimos:
Local (2 Procesos) - HepatitisC - Time Accounting
160,00 140,00 120,00
Segundos
100,00 80,00 60,00 40,00 20,00 0,00 Comm. coord. 1,90 25,10 Neighbor search 9,00 11,60 Force 45,10 49,80 Wait + Write traj. Comm. F 6,80 29,60 0,20 0,70 Update 1,60 1,70 Constrain Comm. ts energies 4,30 4,70 1,30 7,60 Rest 1,70 3,20 Total time Real time 72,00 134,00 36,00 67,00
MPI CORBA v2
MPI CORBA v2
77
III
Si normalizamos los valores anteriores con respecto a MPI obtenemos la siguiente grfica:
Local (2 Procesos) - HepatitisC - Time Accounting
14,00
12,00 10,00 8,00 CORBA v2 6,00 4,00 2,00 0,00 Comm. coord. 13,21 Neighbor search 1,29 Wait + Write traj. Comm. F 4,35 3,50 Constrain Comm. ts energies 1,09 5,85
Force 1,10
Update 1,06
Rest 1,88
CORBA v2
En este caso se observa que el tiempo destinado a las comunicaciones es importante, pero a pesar de ello, en el caso de MPI el tiempo real de la simulacin disminuye a 36, pero en el caso de CORBA aumenta a 67. Proporcionalmente, el tiempo real de la versin CORBA v2 es 1,86 veces superior al de MPI.
Segundos
4000,00 3000,00 2000,00 1000,00 0,00 Comm. coord. 416,90 Neighbor search 99,80 290,60 Wait + Constrain Comm. Write traj. Update Comm. F ts energies 548,70 2362,80 16,60 73,40 2,10 2,30 5,20 5,60 266,60 921,10
MPI CORBA v2
MPI
CORBA v2 2233,10
Si normalizamos los valores anteriores con respecto a MPI obtenemos la siguiente grfica:
III
6,00 5,00 4,00 CORBA v2 3,00 2,00 1,00 0,00 Comm. coord. 5,36 Neighbor search 2,91 Wait + Constrain Comm. Write traj. Update Comm. F ts energies 4,31 4,42 1,10 1,08 3,45
Force 1,41
Rest 6,30
CORBA v2
En ese caso observamos, que aunque usemos muchos nodos, al tratase de un solo equipo (aunque con dos ncleos), los tiempos aumentan para la versin MPI y en el caso de CORBA son mucho mayores que los de MPI. Proporcionalmente, el tiempo real de la versin CORBA v2 es 4,29 veces superior al de MPI. Se comprueba, por tanto, que al tratarse de solo equipo, el aumentar el nmero de procesos va en perjuicio del tiempo total de la simulacin, debido a la sobrecarga que supone la comunicacin entre los mismos.
79
III
Segundos
80,00 60,00 40,00 20,00 0,00 Comm. coord. 0,00 0,00 Neighbor search 15,40 15,20 Wait + Write traj. Comm. F 0,00 0,00 0,30 0,40 Constrain Comm. ts energies 6,50 6,60 0,00 0,00
MPI CORBA v2
MPI CORBA v2
Como se puede observar, el tiempo de ejecucin es prcticamente el mismo en las dos implementaciones, porque realmente no se realiza ninguna comunicacin, pero se observa que los tiempos han aumentado frente a la simulacin en el equipo local (133 segundos, frente a 59 en local). Esto es debido a que las mquinas del cluster son menos potentes. En la simulacin con dos nodos obtuvimos:
Cluster (2 Nodos) - HepatitisC - Time Accounting
300,00 250,00
Segundos
200,00 150,00 100,00 50,00 0,00 Comm. coord. 11,80 46,40 Neighbor search 15,90 17,00 Wait + Write traj. Comm. F 19,10 57,70 0,60 1,40 Constrain Comm. ts energies 6,80 6,70 4,70 15,70 MPI CORBA v2
MPI CORBA v2
Si normalizamos los valores anteriores con respecto a MPI obtenemos la siguiente grfica:
III
4,00 3,50 3,00 2,50 2,00 1,50 1,00 0,50 0,00 Comm. coord. 3,93 Neighbor search 1,07 Force 1,03 Wait + Write traj. Comm. F 3,02 2,33 Update 1,00 Constrain Comm. ts energies 0,99 3,34 Rest 1,59 Total time Real time 1,53 1,53 CORBA v2
CORBA v2
En este caso se observa que el tiempo destinado a las comunicaciones es importante, pero a pesar de ello, en el caso de MPI el tiempo real de la simulacin disminuye a 87, y en el caso de CORBA se mantiene en 133 segundos. Proporcionalmente el tiempo real en la versin CORBA v2 es 1,53 veces superior al de MPI. Si seguimos ampliando nodos, en el caso de 16 obtenemos los siguientes datos:
Cluster (16 Nodos) - HepatitisC - Time Accounting
3500,00 3000,00 2500,00
Segundos
2000,00 1500,00 1000,00 500,00 0,00 Comm. coord. 171,20 786,80 Neighbor search 31,70 117,90 Wait + Constrain Comm. Write traj. Update Comm. F ts energies 301,00 1097,50 9,00 30,90 5,40 5,40 8,70 9,10 126,10 916,70
MPI CORBA v2
MPI CORBA v2
Si normalizamos los valores anteriores con respecto a MPI obtenemos la siguiente grfica:
81
III
7,00 6,00 5,00 4,00 3,00 2,00 1,00 0,00 Comm. coord. 4,60 Neighbor search 3,72 Wait + Constrain Comm. Write traj. Update Comm. F ts energies 3,65 3,43 1,00 1,05 7,27 CORBA v2
Force 1,08
Rest 4,60
CORBA v2
En ese caso observamos, que usando muchos nodos, al tratase de un cluster el tiempo real disminuye para la versin MPI a 50. Los tiempos de la versin CORBA aumentan, pero en menor medida que en la molcula Speptide, debido al mayor tamao de la molcula Hepatitis C. Con la molcula Speptide la versin CORBA v2 aumentaba el tiempo real en 10,77, mientras que con la molcula Hepatitis C aumenta en 4,02.
III
1 59 59 133 133
2 36 67 87 133
8 86 199 53 147
16 91 390 50 201
Se puede concluir, que la ejecucin de MPI en local disminuye el tiempo para 2 y 4 nodos, pero aumenta a partir de 8. La ejecucin MPI en cluster supone una disminucin del tiempo, incluso con 16 nodos, pero el porcentaje de reduccin disminuye conforma aumenta el nmero de nodos. Por ltimo, la implementacin CORBA no consigue disminuir los tiempos en ningn caso, pero, mientras que con la molcula Speptide se llegaban a multiplicar por 10 los tiempos frente a MPI, en la molcula Hepatitis C (de mayor tamao) los tiempos se multiplican como mucho por 4 frente a la versin MPI.
83
III
III
El tipo sequence representa el buffer y los mtodos set y get seran equivalentes al MPI_Send y MPI_Recv. El objeto servidor arranca y guarda su IIOR en disco, y posteriormente se inicia un cliente que realiza 100 veces la secuencia set + get sobre el buffer del servidor. Este simple ejemplo demuestra que la versin CORBA conlleva una sobrecarga en las comunicaciones que podran ser la causa del aumento de tiempos de la versin CORBA sobre la MPI.
85
III
Segundos
Se evidencia por tanto una sobrecarga considerable en la implementacin ORBit de CORBA frente a MPICH, probablemente debida al middleware (ORB) necesario para el reconocimiento de objetos remotos y la ejecucin de mtodos con grandes cargas de comunicaciones entre objetos.
III
Captulo 5
Conclusiones y trabajos futuros
87
III
5.1. Conclusiones
Una vez concluido el proyecto, si analizamos los resultados con respecto a los objetivos marcados al comienzo, podemos sacar las siguientes conclusiones: 1. Se ha cumplido el primer objetivo del proyecto que consista en reemplazar las llamadas a la librera de MPI por invocaciones CORBA. El proceso ha consistido en utilizar el middleware ORBit 2, una implementacin de la especificacin CORBA 2.4 en lenguaje C, para sustituir las llamadas a funciones MPI de GROMACS por funciones implementadas en una nueva librera desarrollada para este proyecto y que se apoya en este middleware. 2. Se ha cumplido el segundo objetivo marcado: la evaluacin del rendimiento de GROMACS bajo CORBA. Se han empleado dos plataformas, un equipo local con procesador de doble ncleo y un cluster (Kasukabe) del laboratorio de informtica de esta universidad, y se han considerado diferentes datos de entrada (simulaciones de la molcula Speptide y de la Hepatitis C), nmero de procesadores (entre 1 y 16), y dos implementaciones de la librera CORBANetwork (versin inicial v1, y versin optimizada v2). 3. Se ha cumplido el tercer objetivo marcado: el estudio de la adecuacin de la implementacin de GROMACS en CORBA para entornos de HPC (High-performance computing). La principal conclusin de este proyecto es que, en el marco de las arquitecturas y conjuntos de datos considerados, la implementacin basada en CORBA no resulta viable dado que introduce una importante sobrecarga en las comunicaciones, la cual limita el rendimiento y escalabilidad de la implementacin paralela del GROMACS.
III
89
III
III
Captulo 6
Presupuesto
91
III
6.1. Introduccin
En este apartado, realizamos una estimacin de tiempos y una valoracin del coste econmico del proyecto, simulando que se tratase de una iniciativa empresarial. En funcin de estos costes se realiza un presupuesto en consecuencia con los mismos que es incrementado en un 30% con el fin de obtener beneficios. Este porcentaje de beneficio sera revisable en funcin de las condiciones del mercado en el momento de presentar la oferta, y de la conveniencia o no de rebajar la oferta para fomentar posibles contrataciones futuras.
III
93
III
III
6.3. Presupuesto
UNIVERSIDAD CARLOS III DE MADRID
Escuela Politcnica Superior
PRESUPUESTO DEL PROYECTO 1.- Autor: 2.- Departamento: 3.- Descripcin del Proyecto: - Duracin (meses) - Tasa de costes Indirectos: 4.- Presupuesto total: Fco. Javier Aliseda Casado Informtica. rea de Arquitectura y Tecnologa de Computadores. Diseo de un Simulador de Dinmica Molecular basado en CORBA 6 IVA (20%) 41.536
N.I.F.
6 2
Hombres/mes 8 Total 1 Hombre mes = 131,25 horas. Mximo anual de dedicacin de 12 hombres mes (1575 horas)oras Mximo anual para PDI de la Universidad Carlos III de Madrid de 8,8 hombres mes (1.155 horas)
a)
Dedicacin (meses) 6 6 2
95
III
A = n de meses desde la fecha de facturacin en que el equipo es utilizado B = periodo de depreciacin (60 meses) C = coste del equipo (sin IVA) D = % del uso que se dedica al proyecto (habitualmente 100%) 5.3 SUBCONTRATACIN DE TAREAS Coste imputable 600,00 300,00 Total 5.4 OTROS COSTES DIRECTOS DEL PROYECTOe) Costes imputable 120,00 240,00 60,00 Total
e)
900,00
420,00
Este captulo de gastos incluye todos los gastos no contemplados en los conceptos anteriores, por ejemplo: fungibles, viajes y dietas, otros, 6.- Resumen de costes Presupuesto Costes Totales 24.745 560 900 420 5.325 31.951
Presupuesto Costes Totales Personal Amortizacin Subcontratacin de tareas Costes de funcionamiento Costes Indirectos Total
III
6.4. Oferta
Proyecto: Diseo de un Simulador de Dinmica Molecular basado en CORBA El presupuesto total de este proyecto asciende a la cantidad de CUARENTA Y UN MIL, QUINIENTOS TREINTA Y SEIS euros. Importe total del presupuesto: Condiciones de la oferta: A) El periodo de validez del presupuesto ser de 30 das naturales desde la entrega del mismo. B) La duracin estimada ser de 6 meses, suponiendo una disponibilidad completa del personal y disponibilidad total del equipamiento necesario. C) Los pagos se fraccionar en los siguientes hitos: - 10% en el momento de la aceptacin del presupuesto. - 35% a la entrega del anlisis del sistema. - 35% a la entrega del cdigo fuente. - 20% al cierre el proyecto. Los pagos se realizarn preferiblemente por transferencia bancaria. D) Una vez realizadas las pruebas de aceptacin y cerrada la entrega el proyecto, el sistema tendr una garanta de 90 das naturales. Esta garanta cubrir exclusivamente el mantenimiento correctivo del sistema. En caso de necesidad de mejoras o ampliaciones, se debern tramitar con una nueva solicitud de servicio. 41.536 (IVA incluido)
97
III
III
Glosario
American Standard Code for Information Interchange Common Object Request Broker Adapter High-performance computing Molecular Dynamics Message Passing Interface Object Management Group Quantitative Structure-Activity Relations
99
III
III
Referencias
Internet:
Sitio del proyecto GROMACS: http://www.gromacs.org/ Desarrollo de aplicaciones distribuidas. Asignatura de la UC3M coordinada por David Expsito Singh (tutor de este proyecto): http://www.arcos.inf.uc3m.es/~dad/dokuwiki/doku.php Sitio sobre CORBA del OMG: http://www.corba.org Sitio del proyecto ORBit2 (implementacin de CORBA usada en este proyecto): http://projects.gnome.org/ORBit2/ Sitio del proyecto MPI (usado actualmente por GROMACS): http://www.mcs.anl.gov/research/projects/mpi/ Pginas sobre GROMACS en el Pittsburgh Supercomputing Center: http://www.psc.edu/general/software/packages/gromacs/online/getting_started.html Pginas sobre Nanotecnologa creada por el NSF (US National Science Foundation): https://nanohub.org/tools/biomolelab/wiki Portal de recursos para el estudio de macromolculas biolgicas: http://www.rcsb.org/pdb/home/home.do
101
III
Documentos:
Benchmarks! David Expsito Singh (tutor de este proyecto) Presentacion_benchmarks.ppt Manual de GROMACS: gromacs4_manual.pdf Diagrama de flujo para realizar simulaciones de dinmica molecular con GROMACS: GROMACS_MD_Flowchart.pdf Documentacin sobre ORBit2: orbit.pdf
Libros:
M.L. Liu Computacin Distribuida. Fundamentos y Aplicaciones. Pearson Educacin, S.A. Madrid 2004 Jorge E. Prez Martnez Programacin Concurrente Editorial Rueda, S.L. Madrid 1990 M. Waite, S. Prata y D. Martin Programacin en C. Introduccin y conceptos avanzados. Ediciones Anaya Multimedia, S.A. Madrid 1991
III
ANEXOS
Anexo I. Manual de Usuario
103
III
Instalacin
En el CD incluido con el proyecto se incluye el software requerido para su instalacin en equipos compatibles i386 y sistema operativo Linux. Los pasos a realizar seran: 1) Instalacin de la librera FFTW, requerida por GROMACS para clculos de la transformada de Fourier: Crear la carpeta: /home/<username>/fftw Descargar y descomprimir el paquete con los fuentes de FFTW-3.1.2 (incluido en la carpeta "software" del CD) Ejecutar:
./configure --prefix=/home/<username>/fftw --enable-float --enable-threads make make install export CPPFLAGS=-I/home/<username>/fftw/include export LDFLAGS=-L/home/<username>/fftw/lib
III
4) Instalacin de GROMACS con soporte de interoperabilidad CORBA: Crear la carpeta: /home/<username>/gromacs Descargar y descomprimir el paquete con los fuentes de GROMACS (incluido en la carpeta "desarrollo" del CD) Adaptar el script "compila-gromacs" de la carpeta "desarrollo" del CD a la estructura de directorios del equipo de instalacin y proceder a su ejecucin:
#!/bin/sh cd /home/javier/pfc/gromacs export CPPFLAGS="-I/usr/local/include -I/home/javier/pfc/fftw/include -DORBIT2=1 -pthread -I/usr/include/orbit-2.0 -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include -I/home/javier/pfc/corbanetwork" export LDFLAGS="-L/home/javier/pfc/corbanetwork -L/home/fortran/localinstall/lib -L/home/javier/pfc/fftw/lib -Bdynamic -lcorbanetworkpfc -Bstatic -pthread -lORBitCosNaming-2 -lORBit-2 -lgthread-2.0 -lrt -lgobject-2.0 -lglib-2.0" ./configure --enable-mpi --prefix=/home/javier/pfc/gromacs --enable-float --enable-threads --enable-sse make make install export PATH="/home/javier/pfc/gromacs/bin:$PATH" export LD_LIBRARY_PATH="/home/javier/pfc/corbanetwork"
105
III
III
107
III
cd $PBS_O_WORKDIR echo "Contenido de $PBS_NODEFILE: " cat $PBS_NODEFILE rm *.ref rm *.log rm *# mpirun.mpich -np 16 -machinefile $PBS_NODEFILE /datos_nfs/pfc_aliseda/gromacs/bin/mdrun -v -s pr -e pr -o pr -c /datos_nfs/pfc_aliseda/speptide/after_pr -g /datos_nfs/pfc_aliseda/speptide/prlog > /datos_nfs/pfc_aliseda/speptide/misalida16 exit
Para encolar el trabajo en el gestor de colas ejecutaramos el comando: qsub lanzador16.qsub Para comprobar el estado de los trabajos utilizaremos el comando: qstat -a