|Title||Using High Performance Computing to Model Clay-Polymer Nanocomposites|
|Publication Type||Journal Article|
|Year of Publication||2015|
|Authors||Tinto, O, Castrillo, M, Serradel, K, Valls, OM, Cortes, A, Reyes, FDJ|
|Journal||Procedia Computer Science|
The current trend in supercomputer architectures is leading scientific applications to use parallel programing models such Message Passing Interface (MPI) to use computing resources properly. Understanding how these applications behave it is not straightforward and its crucial for achieving good performance and good efficiency of their codes. Here we present a real case of study of a cuttingedge scientific application. NEMO is a stateoftheart Ocean Global Circulation Model (OGCM) hundreds of users around the world. It is used for oceanographic research, operational oceanography, seasonal forecast and climate studies. In the framework of PRACE, the projects HiResClim and HiResClim II, related to High Resolution Climate projections, uses NEMO as a oceanic model and had conceded more than 38 million core hours in the 5th PRACE Regular Call for Proposals and 50 million core hours in the 7th PRACE Regular Call for Proposals, both in the Tier0 machine Marenostrum. That huge amount of computation time justifies the effort to analyze and optimize the application’s performance. Using the performance tools developed at Barcelona Supercomputing Center (BSC) it is possible to analyse the behaviour of the application . We studied different executions of the NEMO model and performed different analysis of the computational phases, analyzing how cpu and memory behaves, and also communication patterns. We also did strong and weak scaling tests to find bottlenecks constraining the scalability of the application. With this analysis, we could confirm some of the envisaged problems in previous performance analysis of the application and further see other problems not identified before. Using Paraver is both possible to see with high detail the internal behaviour of the application (we can see for example when, who and to where every message is sent) or to compute metrics to extract useful information (such parallel efficiency, load balance or many more). Dimemas allows us to simulate the behaviour of the application under different conditions. It could be useful to analyze the sensibility to network parameters, and for example it could be useful to analyze if one application could run properly in cloud computing. Other tools being developed at BSC and used in this work are Clustering and Folding. The clustering tool uses a data mining technique to identify regions of code with similar performance trends. This make possible to group together and study different iterations, using the folding tool, in order to get instantaneous performance metrics inside the routines, finding areas of interest that have a poor hardware usage. To demonstrate the power of these tools we will show some success stories for NEMO using BSC tools, reporting how we identified specific bottlenecks, proposed some solutions and finally confirmed the impact of the changes.