3.4 Software engineering
3.4.1 Management and Support (M. Montagnac, J.-F. Boussuge, S. Champagneux)
CERFACS industrial partners require not only performance, reliability
and robustness of softwares but also high turnaround time response in
the software development process. Furthermore, CERFACS researchers
also ask for code simplicity and clearness as well as for a
highly-tunable and scalable code. As a consequence, software management and code
engineering are topics of the primary importance both in a research
and an industrial working environment.
Therefore, the aerodynamics group takes in charge a lot of such
activities mainly in the ONERA elsA software. This software is jointly
developed by ONERA and CERFACS but is deployed in many european
research and industrial partners. It comes along with procedures to
enhance productivity in a multi-user and multi-platform environment:
cvs management tools, software quality program, documentation, unitary
test cases, non regression and validation databases, training sessions.
Common works include checkings of new version compliance with the non
regression and validation databases, integration of new developments
in the cvs repository, contributions to debugging and to quality
reviews and the writing of user's and developer's guides and
theoretical manuals.
Portability tests, optimization and benchmarking actions are also
frequent activities to ensure the reliability and the efficiency of
the code on many different computer platforms, and to enable smooth
transitions whenever industrial partners renew their computing
facilities.
Finally, the installation at CERFACS by the team members of the industrial
environment delivered by Airbus leads to a real synergy between the two partners.
3.4.2 Code performance (J. Tournier, M. Montagnac)
The performance improvement of the elsA software has been an important objective. In the current project, a
reorganization of the memory management on the entire code was carried out. The results are exposed on Fig. 3.21. This figure presents the evolution of the CPU time (Y-coordinate) and the number of cells per direction (X-coordinate) for the study of isotropic blocks.
Figure 3.21: Evolutions of CPU time.
This modification of the code completely removes the peaks of CPU time for the two computers with the Dec Alpha
processor and the Opteron processor. On the other hand, the behavior is different away from the peaks. With the Dec Alpha
processor, a CPU time increase of 20% is noted between the elsA reference version (NO SWAP) and the elsa modified
version (SWAP). With the Opteron processor, an improvement of 5% to 30% is obtained.
This difference comes from the better memory management of DEC Alpha compiler in version NOSWAP than in version
SWAP. For example, vectorization cannot be carried out in version SWAP. This remark does not apply to the pgi compiler
on the Opteron machine.
A second test-case was studied on the S3Ch configuration (wing+pylon+nacelle). On this case, the DEC Alpha processors provide an improvement of the performance by 5%. An improvement of 17% with the Opteron processors is obtained.
These results are very dependent on the architecture of the computing platform. The positive point is the removal of CPU
time peaks, which remains desirable, but others techniques such as padding are possible. In conclusion, it appears
difficult to state definitively on the need for applying this memory reorganization in the elsA software.
3.4.3 Software architecture (M. Montagnac, J.-P. Boin, J.-F. Boussuge, S. Champagneux)
As co-developer of the elsA software, CERFACS maintains a constant
effort to ensure its improvement and evolution. Indeed, many specific
actions have been conducted through projects to enhance, upgrade and
provide new numerical features and methods. These activities are
described all along section 3.3.
In an industrial context, the aerodynamic numerical simulation tool is
only a component in a whole multidisciplinary design and data process
that includes many different tools as post-processing, visualization,
mesh generator, mesh deformation... Airbus has defined a proprietary
common software architecture for its numerical simulation needs. This
flow simulation system should fulfill many requirements as performing
fully parallel simulations and scenarios in a reliable and efficient
way with a high-level of automation. With this approach, it would also
enable to couple solvers to perform multi-physics simulations. A
common data manager implemented in langage Python will held all
information concerning the simulation and will dispatch them to
third-party tools.
In this topic, CERFACS cooperates with ONERA to write specifications
in order to adapt the elsA software to this new flow simulation
architecture. With these specifications, the common data manager could
provide the fluid solver with the correct information needed by the elsA interface.
CERFACS is also involved in a project that aims at building a
component-oriented version of the elsA software. Indeed, many
numerical functionalities coded in this solver are independent of the
Navier-Stokes solver itself. By example, some grid deformation
algorithms are implemented but they could be used by other solvers if
they were available through a public interface. Other examples include
computation of connectivity coefficients in chimera method or for non
abutting adjacent zonal boundaries and distance calculation. The major
work consists then in analyzing the different parts of the software
that can be gathered and redesign the elsA architecture to form
coherent and independent components usable by other solvers or tools.
The previous task was partly begun through an ONERA-DLR collaboration
in which CERFACS was invited to participate. The goal was to introduce
a common shared view between the elsA software and the TAU code.
Lastly, the increasing availability of massively parallel processing
systems with relatively small memory for each processor leads CERFACS
to be particularly involved in the reduction of the elsa software
memory requirement. Indeed, this software handles really memory
intensive applications and must run on a broad range of computer
systems. Therefore, refactoring work has been initiated to decrease
memory storage in the software.
3.4.4 Parallelism (M. Montagnac)
On multi-processor computer architectures with shared memory (SMP),
two main parallel programming models are available to increase the
parallel performance of a code: OpenMP and MPI.
OpenMP provides a simple and flexible interface for developing
parallel applications. In collaboration with the CERFACS "Parallel
Algorithms" team, a strategy has been elaborated to parallelize elsA
efficiently with OpenMP. It has been implemented on some of the most
CPU-time consuming functions of the elsA software, especially the
implicit time integration method. Even if performances obtained could
not reach a perfect speedup, this approach is still worth considering
since it could avoid an extensive mesh splitting that could degrade
convergence and robustness of computations.
Using the MPI message passing library needs a deeper knowledge of the
code than with OpenMP but it is also often more efficient. To adapt
the code to run on massively parallel processing systems, CERFACS has
proposed to ONERA some technical solutions that need to be implemented
in order to increase the scalability of the elsA
software. Consequently, some design refactorings are under
investigations in order to reduce the number of synchronous
communications and the size of messages to decrease significantly the
data traffic over the communication network. The use of asynchronous
communications and the reduction of collective parallel operations
should also be promising to avoid processor idle time.
These high performance computing activities are carried out with the
CERFACS internal computing facilities but also with external computing
resources as supercomputers from the French national centers CINES and
CCRT.
|
|
|