next up previous contents
Next: 10.1.2 Flexibility Up: 10.1 Objective Previous: 10.1 Objective

   
10.1.1 Speed

In the past, speed was often thought of as being the equivalent of scientific productivity. In an operational setting where a model is rarely changed, it is justifiable to expend enormous effort to minimize wall clock time. In a research environment, it has become increasingly apparent that other considerations are important. This is particularly noticeable when changes introduced to take advantage of speed on a particular platform make implementation of science thereafter more difficult10.2. What is needed are changes which increase speed10.3 but don't reduce clarity. This is best met by using more appropriate numerical algorithms, more optimizing compilers, and faster processors. In the long run, straightforward coding is best. Tricky coding introduced to increase speed is often rendered useless by newer compilers. Worse yet, these tricks may be detrimental on other platforms. Ultimately, speed should be the business of compilers and better algorithms, not physical scientists playing games to beat compilers.

Two philosophies of model building can be summarized by first stating the intent and then asking a question.

1.
The aim is to do as much science as possible with this model. Now, how can it be made to execute as fast as possible?

2.
The aim is to make this model execute as fast as possible. Now, what science can be done with it?

MOM is the result of focusing on the first.


next up previous contents
Next: 10.1.2 Flexibility Up: 10.1 Objective Previous: 10.1 Objective
RC Pacanowski and SM Griffies, GFDL, Jan 2000