The Use of Java in Large Scientific Applications in HPC Environments
Total Page:16
File Type:pdf, Size:1020Kb
The use of Java in large scientific applications in HPC environments Aidan Fries ADVERTIMENT. La consulta d’aquesta tesi queda condicionada a l’acceptació de les següents condicions d'ús: La difusió d’aquesta tesi per mitjà del servei TDX (www.tdx.cat) ha estat autoritzada pels titulars dels drets de propietat intel·lectual únicament per a usos privats emmarcats en activitats d’investigació i docència. No s’autoritza la seva reproducció amb finalitats de lucre ni la seva difusió i posada a disposició des d’un lloc aliè al servei TDX. No s’autoritza la presentació del seu contingut en una finestra o marc aliè a TDX (framing). Aquesta reserva de drets afecta tant al resum de presentació de la tesi com als seus continguts. En la utilització o cita de parts de la tesi és obligat indicar el nom de la persona autora. ADVERTENCIA. La consulta de esta tesis queda condicionada a la aceptación de las siguientes condiciones de uso: La difusión de esta tesis por medio del servicio TDR (www.tdx.cat) ha sido autorizada por los titulares de los derechos de propiedad intelectual únicamente para usos privados enmarcados en actividades de investigación y docencia. No se autoriza su reproducción con finalidades de lucro ni su difusión y puesta a disposición desde un sitio ajeno al servicio TDR. No se autoriza la presentación de su contenido en una ventana o marco ajeno a TDR (framing). Esta reserva de derechos afecta tanto al resumen de presentación de la tesis como a sus contenidos. En la utilización o cita de partes de la tesis es obligado indicar el nombre de la persona autora. WARNING. On having consulted this thesis you’re accepting the following use conditions: Spreading this thesis by the TDX (www.tdx.cat) service has been authorized by the titular of the intellectual property rights only for private uses placed in investigation and teaching activities. Reproduction with lucrative aims is not authorized neither its spreading and availability from a site foreign to the TDX service. Introducing its content in a window or frame foreign to the TDX service is not authorized (framing). This rights affect to the presentation summary of the thesis as well as to its contents. In the using or citation of parts of the thesis it’s obliged to indicate the name of the author. Universitat de Barcelona Departament d'Astronomia i Meteorologia The use of Java in large scientific applications in HPC environments Mem`oriapresentada per Aidan Fries per optar al grau de Doctor per la Universitat de Barcelona Barcelona, novembre de 2012 Programa de doctorat en F´ısica The use of Java in large scientific applications in HPC environments Mem`oriapresentada per Aidan Fries per optar al grau de Doctor per la Universitat de Barcelona Barcelona, novembre de 2012 Directors de la tesi: Dr. Jordi Portell Dr. Ra¨ulSirvent Tutor: Dr. Xavier Luri Acknowledgements Firstly, and most importantly, I would like to acknowledge the help and advise that I received from my two advisors | Jordi Portell and Ra¨ulSirvent. Jordi, thank you so much for all your help and encouragement during my PhD. You have much responsibility on your shoulders, but I have never seen you in a bad mood, you always had good advice and knew the best way forward. Ra¨ul, thanks for your help and advice, it was a great benefit for me to get some guidance and input from outside of the Gaia team. You both always made time for me, and I will be forever in your debt. Jordi T., thanks for giving me the opportunity to work on this thesis. Thanks to everyone in the Gaia team at the UB (past and present). It is a fantastic group of people | hard working, dedicated to the success of the Gaia mission, and very welcoming. Javier \el crack" Casta~neda, you helped me get to know Barcelona, and you always had time to explain Gaia software to me. Marysia, we started on our PhD journeys at the same time, and it has been a pleasure to have shared some experiences with you, thanks for helping me along at times, congratulations on your achievements, and I wish you every happiness in the future. Lola, thanks for your help, and for putting up with my talent for losing boarding passes. Yago, thanks for sharing your experience and ideas. Cesca, thanks for being so nice, and eager to help. Dani, thanks for fixing every problem that Miranda and I experienced over the years! I would also like to mention Xavier, Edward, Merc`e,Eva, Raul B., Nadia, Marwan, Maria M., Carme, Josep Manel, Claus, Holgar, Teresa, Oscar, and all of the other members of the Gaia family at the UB. Thanks to Lennart Lindegren, and everyone else who was involved with the ELSA programme, for all your efforts. I benefited a lot from this programme. I would like to mention the ELSA fellows: Berry, Daniel, Michael, Ummi, Alex, Paola, Maya, Dagmara, Ester, Thibaut, Tenay, Luca and Mih´aly. It was a pleasure getting to know you all. Thanks to everyone working within DPAC on the Gaia data reduction. It has been an honour and a privilege to have been involved with this project, and I wish it every success in the future. Thanks to everyone working at the BSC and at CESCA for the facilities and support that they provided. Thanks to Guillermo and Roberto, at the University of A Coru~nafor their collaboration, support and advise on Java-based high-performance data communication. Thanks to everyone in the department of Astronomy and Meteorology, and the members of cafedam who have helped me or offered words of encouragement, including JR, Gaby, Jordi. I would like to mention Ben and Julia, Sean and Mallika. I wish you lots of happiness in the future. I will always remember our runs up Montju¨ıc,and the view from the top. Anna, dankon pro via apogo kaj konsolo. Vi estas tre speciala persono, vi ^ciamestos en mia koro, vi faras min volas esti bona persono. Flugi vian freak flago alta kaj fiera. And finally, thanks to my Mum and Dad. Thanks to you, I have had many opportunities in my life, which you didn't have. The hard part was being away from you. v Acknowledgement of funding support The author was supported as an Early Stage Researcher in the Marie Curie Research Training Network of \European Leadership in Space Astrometry" (ELSA) MRTN-CT-2006-033481. This work was also supported by the MICINN (Spanish Ministry of Science and Innovation) - FEDER through grant AYA2009-14648-C02-01 and CONSOLIDER CSD2007-00050. vi Resumen A pesar de que Java es un lenguaje de programaci´onmuy utilizado, su uso entre las comu- nidades cient´ıficay de Computaci´onde Altas Prestaciones (High-Performance Computing o HPC) sigue siendo relativamente bajo. Uno de los factores que ha contribuido a su limitada adopci´ones la percepci´onde que ofrece menos rendimiento que los lenguajes utilizados tradi- cionalmente en HPC, tales como C y Fortran. Esta percepci´onest´abasada, principalmente, en el rendimiento de las primeras versiones de la Java Virtual Machine (JVM). Adem´as,existe una falta de conocimiento por parte de esas comunidades de las herramientas y librer´ıasdisponibles para ayudar al desarrollo y la ejecuci´onde aplicaciones Java en entornos HPC. En esta tesis investigamos la opci´onde utilizar Java para desarrollar aplicaciones cient´ıficasdestinadas a ser ejecutadas en entornos HPC. El tratamiento de datos para la misi´on astrom´etricaespacial Gaia es un claro ejemplo de un gran proyecto software desarrollado en Java para su ejecuci´onen entornos HPC. La ejecuci´on eficiente de este tratamiento de datos ha sido una de las principales motivaciones de esta tesis. A pesar de que en diversas ocasiones discutimos cosas espec´ıficasde este proyecto, la gran mayor´ıade esta tesis es de aplicaci´ongeneral, siendo pues considerada como una investigaci´on de la utilizaci´onde Java en HPC de forma general (enfocado a la computaci´oncient´ıfica). El rendimiento del software es siempre importante en entornos HPC, hasta el punto que suele ser la principal preocupaci´oncuando se elige un lenguaje de desarrollo para las aplicaciones. En esta tesis, el rendimiento es uno de los criterios que utilizamos para comparar Java con otros lenguajes. Sin embargo, debe tambi´entenerse en cuenta que hay muchos otros factores que deben ser considerados al comparar lenguajes de desarrollo, en particular cuando el lenguaje a seleccionar es para grandes proyectos de software con fases de desarrollo y producci´onrel- ativamente largas. Estos factores incluyen la productividad de los programadores, el tiempo necesario para acabar el desarrollo, escalabilidad, facilidad de mantenimiento, portabilidad y robustez, entre otros. La Computaci´onde Altas Prestaciones o HPC es un campo en r´apidaevoluci´on en t´erminosde hardware, software, y en la magnitud de los problemas que se abordan. Los entornos HPC de memoria distribuida suelen ser los m´ascomunes, y normalmente est´anformados por muchos nodos de computaci´onconectados con una red de alto rendimiento. T´ıpicamente todos los nodos tienen acceso a un dispositivo de almacenamiento compartido, adem´asde su propio almacenamiento local. Entre las tendencias m´assignificativas en HPC en los ´ultimos a~nos se encuentran el aumento del n´umerode n´ucleospor nodo de computaci´on,y el aumento del tama~nodel conjunto de datos que debe ser procesado. Uno de los desaf´ıos significativos en HPC consiste en garantizar que los datos estar´andisponibles en un nodo cuando un n´ucleo est´elisto para procesarlos, evitando tiempos muertos del n´ucleo y proporcionando as´ıun alto rendimiento.