20.07.2015 Views

PhD Thesis - staffweb - University of Greenwich

PhD Thesis - staffweb - University of Greenwich

PhD Thesis - staffweb - University of Greenwich

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

APPENDIX 2 : Journal Paper "Case Study : An Incremental Approach to Re-Engineeringa Legacy FORTRAN C.F.D. Code in C++", Ewer J., Knight B. and Cowell D.,Advances in Engineering S<strong>of</strong>tware, Vol. 22, pp 153-168, 1995Figure 17 :Comparative values <strong>of</strong> vertical velocity for natural convection.Appraisal <strong>of</strong> the re-engineering strategy:The observed 50 percent performance overhead <strong>of</strong> the C++ implementation, on theSun system, was probably the more realistic <strong>of</strong> the timing comparisons because both theSun FORTRAN and Sun C++ compilers generate compatible binary code and have identicalcompilation options. Similar overheads have been reported in other numerical codetranslations and are mostly due to the introduction <strong>of</strong> more layers <strong>of</strong> function calls at a lowlevel within the C++ code. This was particularly true <strong>of</strong> the case-study code implementationwhere two and sometimes three levels <strong>of</strong> function calls have been introduced. It is generallyaccepted that the introduction <strong>of</strong> a high degree <strong>of</strong> object-orientation and code clarity usuallyaffect the performance adversely. Higher overheads have been recorded in C++implementations where inheritance and virtual classes have been used.The consistency between the simulation solutions <strong>of</strong> the legacy and re-engineeredsystems indicates that the codes exhibit highly compatible behaviour. This was coupledwith an easily comprehensible implementation that was largely self documenting. Theenhanced monitoring and debugging facilities <strong>of</strong> the re-engineered system have been usedin subsequent research to good effect. These factors indicate that the re-engineeringobjectives have largely been met during this case study.One <strong>of</strong> the major benefits <strong>of</strong> the re-engineering approach adopted in this researchwas that the newest version <strong>of</strong> the code could be compiled and tested after each incrementalstage. In fact the testing was generally done after every major global change or after a singleAppendix 11.2 Page 142-24 24

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!