Designing and implementing computer simulation models for portability and reuse
As computers become more powerful it becomes feasible to develop computer models that more accurately approximate the real systems they are simulating. However, such models are increasingly complex, perhaps taking years to develop, so it is important to maximise reuse of existing models and design new models to facilitate reuse. Unfortunately many existing models are not easily reused for various reasons. For instance, the computer language used to write the model may not be portable, or may be a proprietary system requiring a licence or particular operating system, or it may not have been written in such a way that it can easily be extended. Furthermore, computer hardware and operating systems are continuously changing and high-performance computing, such as parallel computing on a Linux cluster, is increasingly available. It is limiting and potentially expensive if a computer model cannot be ported to another system without being rewritten. In these days of reduced research funding it is becoming increasingly important to use such funding more effectively. One way to enable more strategic use of research funding would be to increase the reusability of computer models so as to build on the work of others rather than duplicate it. This is particularly so in cases where the cost of the validation exercise is high. This paper makes a number of recommendations for developing reusable, user-friendly, robust, flexible, extendible and generic computer models. These include such issues as choosing an appropriate language, using appropriate programming techniques, designing for possible portability to another operating system or environment or parallelization. It also discusses the use of a framework and replaceable components for a model of a complex system rather than a monolithic application.... [Show full abstract]
TypeConference Contribution - Published (Conference Paper)
© 2005 Modelling & Simulation Society of Australia & New Zealand Inc.