Software Quality Assurance for the Development of JASMIN Infrastructure

Software Quality Assurance for the Development of JASMIN Infrastructure

Software Quality Assurance for the Development of JASMIN Infrastructure Cao Xiaolin, Zhang Aiqing and Liu Qingkai Institute of Applied Physics and Computational Mathematics, No. 2, Fenghao East Road, Haidian District, Beijing, China Keywords: Parallel Program, JASMIN Infrastructure, Software Quality Assurance, Software Development Process. Abstract: JASMIN is a parallel software infrastructure oriented to accelerate the development of parallel programs for large scale simulations of complex applications on supercomputer. Tens of application programs have been reconstructed or developed on JASMIN. With the rising effort needed to develop and maintain JASMIN, it is very crucial to fulfil software quality assurance. Compared with open source or commercial software development, there are four challenges including parallel computing, higher technical risks etc in the development of JASMIN. A Four-phases-twelve-nodes process are presented and widely used for a seriers new software modules development. These modules meet the requirements arising from application programs and improve performance for adapting new supercomputer. 1 INTRODUCTION and so on. Many of these programs can efficiently use thousands of processors on TianHe-1A The complexity of application systems and that of supercomputer (Yang, 2011). supercomputer architectures are providing a great JASMIN has been developed by a parallel challenge for parallel programming in the field of compuing team including more than ten members scientific computing. J Adaptive Structured Meshes since 2004. JASMIN is written in four languages applications Infrastructure (JASMIN) is a parallel C++, C, Fortran 90, and Fortran 77. It has three software infrastructure oriented to simplify the layers architecture with hundreds of classes. There development of parallel software for multi-physics are six hundred thousand lines of code in JASMIN peta-scale simulations on multi-block or adaptive V3.0 in 2013. With the rising effort needed to structured meshes (Mo, 2010). JASMIN develop and maintain JASMIN, it is very crucial to infrastructure is intrinsically different to traditional Software Quality Assurance (SQA). libraries because it provides data structures, SQA is necessary to do so in a systematic and communication algorithms, load balancing strategies quantifiable way(Aiftimiei, 2012). The application and parallel programming interfaces to shield the of such an approach is combined in the term details of parallel computing from the users. Based Software Engineering, the application of the on JASMIN, a user can easily develop parallel engineering approach to enhance the development programs for complex computers. process as well as the quality of the resulting Tens of large scale application programs have software (Lichter, 2010). Since there is no technique been reconstructed or developed on JASMIN. It is of software engineering which can be applied well to portable for personal computers, high performance tackle all problems, these techniques have to be clusters, and massively parallel processing adapted to specific domains and kinds of software. computers. On JASMIN, after the program is There are for example special architectures like rewritten on a personal computer, it can successfully Enterprise Java Beans for database applications. run on parallel machines where JASMIN is installed. OpenFOAM (2013) does make use of particular These programs are suitable for different numerical design processes or software project management simulations arising from multi-material techniques to enhance the development process. hydrodynamics, radiation hydrodynamics, neutron This paper shows that JASMIN software projects transport, hydrodynamics instability, laser plasma in particular face challenges beyond those regularity interactions, materials science, climate forecasting, faced in common commercial software. These Xiaolin C., Aiqing Z. and Qingkai L.. 439 Software Quality Assurance for the Development of JASMIN Infrastructure. DOI: 10.5220/0004991504390444 In Proceedings of the 9th International Conference on Software Engineering and Applications (ICSOFT-EA-2014), pages 439-444 ISBN: 978-989-758-036-9 Copyright c 2014 SCITEPRESS (Science and Technology Publications, Lda.) ICSOFT-EA2014-9thInternationalConferenceonSoftwareEngineeringandApplications challenges need to be addressed in the software complex applications on parallel computers. The architecture and software development process. A basic ideas described as following: Four-phases-twelve-nodes process for the . Hides parallel programming using millons of development of new software module in JASMIN is cores and the hierarchy of parallel computers. described. It has been proved that the software . Integrates the efficient implementations of development process is very useful to enhance the parallel fast numerical algorithms. quality of JASMIN. Provides efficient data structures and solver libraries. Supports software engineering for code 2 OVERVIEW OF JASMIN extensibility. 2.1 Design Objectives 2.2 Software Architecture Figure 1 depicts the three layers architecture of The programming challenges mainly arise from two JASMIN. The bottom layer mainly consists of types of increasing complexity. The first is the modules for high performance computing for computer architecture. The memory wall is still the SAMR meshes.In this layer, modules are grouped key bottleneck for realistic performance; the into three sub-layers. The base sub-layer, Toolbox, increasing number of cores in each CPU increases contains the essential C++ classes for parameter the seriousness of this bottleneck. The data input, memory management, restarting, and input/ structures should be matched to a cached-based output interfaces with the HDF5. The second sub- memory hierarchy. However, aggregation layer contains two modules, Patch Hierarchy and techniques are indispensable for the construction of Patch Data, for data structures and one module, computers. More and more cores are integrated into Communications, for communication and load each CPU, and more and more CPUs are clustered balancing strategies. The top sub-layer, Mesh into each computing node, and hundreds or adaptivity, contains the components for the local thousands of nodes are interconnected. Parallel mesh refinement or coarsening. algorithms should have sufficient parallelism to utilize so many cores. The design of such data structures and parallel algorithms are too professional for the application users. The second complexity is the application system. Large scale simulations are mainly used to study the characteristics of complex systems. With the increasing of computer capabilities, the complexity of the application system should also increase simultaneously. However, the increasing complexity brings many new problems. Firstly, the fast parallel algorithms are usually required for the solution of large scale discrete systems. Though many such algorithms have been studied, they are seldom mature enough for realistic applications. Secondly, the dynamic variations of physical characteristics often lead to serious load imbalance, challenging the Figure 1: Software architecture of JASMIN. parallel efficiency across thousands of processors. Thirdly, complex systems are often coupled with The middle layer of JASMIN contains the many small systems and such tight coupling often modules for the numerical algorithms shared by leads to irregular communication issues. The fast many applications including computational parallel algorithms, load balancing strategies and geometry, fast solvers, mathematical operations on irregular communications together increase the matrix and vectors, time integration schemes, difficulty of programming for such systems. toolkits, and so on. JASMIN infrastructures(MO, 2009) are designed The top layer is a virtual layer consisting of C++ toward solving such challenges. The main objective interfaces for parallel programming. On the top of of JASMIN is to accelerate the development of this layer, users can write serial numerical parallel program for large scale simulations of subroutines for physical models, parameters, discrete 440 SoftwareQualityAssurancefortheDevelopmentofJASMINInfrastructure stencils, special algorithms, and so on; these 3 SOFTWARE QUALITY subroutines constitute the application program. MANAGEMENT 2.3 Structure Meshes Supported 3.1 Challenges Figure 2 depicts the user interfaces for applications Scientific software projects (Chhabra, 2010; programs. The left lists the main classes and strategy Jalender, 2012) can be distinguished by classes used by the application programs. The right characteristics that clearly separate them from other lists the main modules which should be implemented development projects like open source(Franch, 2013) by the user. The left side of the figure represents or commercial software development processes. For JASMIN interfaces for parallel programming, whilst JASMIN infrastructure, there has fundamental the right hand side shows the user application features described as follows: program. On the left, the class . Parallel Computing. Parallel programs based on algs::HierarchyTimeIntegrator <DIM> represents JASMIN are developed for multiple cores which the time integration on the patch hierarchy. It should go up to massive parallelism in peta-scale be called by the user main program. In JASMIN, this supercomputer. Since these codes are both, more class depends on the time integration strategy class complex to implement as well as more

View Full Text

Details

  • File Type
    pdf
  • Upload Time
    -
  • Content Languages
    English
  • Upload User
    Anonymous/Not logged-in
  • File Pages
    6 Page
  • File Size
    -

Download

Channel Download Status
Express Download Enable

Copyright

We respect the copyrights and intellectual property rights of all users. All uploaded documents are either original works of the uploader or authorized works of the rightful owners.

  • Not to be reproduced or distributed without explicit permission.
  • Not used for commercial purposes outside of approved use cases.
  • Not used to infringe on the rights of the original creators.
  • If you believe any content infringes your copyright, please contact us immediately.

Support

For help with questions, suggestions, or problems, please contact us