RPRP: Reliability, Performance, Reusability and Portability.
The great value of these desirable attributes is clear to all. However, let us briefly explain in what ways ASL (and the products based on it) possess these characteristics.
The phenomena of a model crashing following a small change in the model's parameters is well known. This phenomena undermines to a great degree the potential benefits that computer numerical models could otherwise bring to a wide community of users.
ASL solves this problem by employing a carefully selected collection of numerical methods. The distinctive characteristic of all of these methods is that their behavior can be predicted exactly before running the model. Thus our products are capable of determining whether the chosen setting of parameters will cause a computation failure and of warning and advising the user in such a case.
High computational efficiency of ASL is the result of performance being in mind during both the design and the implementation stages at all levels (that is why we intentionally rejected the standard finite element method (FEM) among others):
- Only the algorithms that allow efficient implementation on the modern hardware architectures have become part of the ASL,
- We spared no effort to seek and utilize opportunities for parallelization and
- The implementation took into consideration the potential compiler optimizations.
But this is not all. Whenever we use ASL to build a model, we perform careful examination of the application's performance under real conditions and use this feedback to further improve on the ASL's efficiency!
Among the major objectives for the ASL was to make it easily adaptable to a great variety of application domains. This goal was achieved by utilizing the modern software engineering practices. The generic design of the ASL enables us to develop and implement new models within short terms and low budgets.
The success of the ASL is due to the fact that we were able to achieve this high level of flexibility without compromising on the high performance, the hallmark of the ASL.
Despite the fact that the ASL library may use operating system-specific performance optimizations, it can be configured to compile and run under any operating system. To make sure, we test all of our products for compatibility and high performance on a wide range of commonly used platforms.