Presentation is loading. Please wait.

Presentation is loading. Please wait.

2005-03-22JL MONGE - Chimere software evolution 1 Chimere software evolution How to make a code : –Obscure –Less efficient –Usable by nobody but its author.

Similar presentations


Presentation on theme: "2005-03-22JL MONGE - Chimere software evolution 1 Chimere software evolution How to make a code : –Obscure –Less efficient –Usable by nobody but its author."— Presentation transcript:

1 2005-03-22JL MONGE - Chimere software evolution 1 Chimere software evolution How to make a code : –Obscure –Less efficient –Usable by nobody but its author –???

2 2005-03-22JL MONGE - Chimere software evolution 2 Chimere software evolution Chimere features –Clear, easy to understand –Very efficient on scalar machines –Makes use of public domain software (g77)

3 2005-03-22JL MONGE - Chimere software evolution 3 Chimere software evolution Chimere features –Clear, easy to understand –Very efficient on scalar machines –Makes use of public domain software (g77) But –I/O portability/performance problems –Poor security : implicit typing, data sharing through « commons » –Poor vectorization –Not designed for Massively Parallel Machines

4 2005-03-22JL MONGE - Chimere software evolution 4 Chimere software evolution Tentative guidelines –netCDF as a file format, instead of unformatted binary –Explicit typing –F95 style of programming –Better control on data sharing –Vectorization –Parallelism through MPI

5 2005-03-22JL MONGE - Chimere software evolution 5 Chimere software evolution netCDF as a file format –netCDF is an API, i.e. a set of library functions –Allows for storage of multidimensionnal arrays, with direct access –Portability = (netCDF + Conventions) Status –Almost completely implemented –I/O programs have been rewritten –Significant improvement of MM5 data ingest To be done –Toolbox (mapit for netCDF) –Generalize to all input data sets

6 2005-03-22JL MONGE - Chimere software evolution 6 Chimere software evolution Explicit typing –Generalization of « implicit none » –Many programming errors are now detected at compile time –Bundled packages remain unchanged Status –Done

7 2005-03-22JL MONGE - Chimere software evolution 7 Chimere software evolution F95 style of programming –Modified code uses f95 syntax –Use of Modules instead of « include » files –Macros allow for a concise and efficient I/O error processing –Bundled packages remain unchanged But –No dynamic memory allocation in Chimere core Resulted in 18 % excess execution time Status –Smooth transition from f77 to f95 –Free compiler g95 available in a few months

8 2005-03-22JL MONGE - Chimere software evolution 8 Chimere software evolution Vectorization –To allow for the use of SIMD instructions of X86 machines MMX, SSE1, SSE2, SSE3 instructions One SIMD instruction processes two real(kind=8) or four real(kind=4) in parallel –For the day when Chimere will run on a NEC SX … –Chimere core routines are not vectorizable Loops are not predictable at compile time –An in-depth analysis and rewrite of chimere core should be performed Status –To be done

9 2005-03-22JL MONGE - Chimere software evolution 9 Chimere software evolution Parallelization –To run chimere on clusters of PCs or on MPP machines Aiming at a significant (10 fold) improvement in execution time Use of MPI environnement –Requires a restructuration of chimere workspace Status –To be done


Download ppt "2005-03-22JL MONGE - Chimere software evolution 1 Chimere software evolution How to make a code : –Obscure –Less efficient –Usable by nobody but its author."

Similar presentations


Ads by Google