Computers & Geosciences Vol. 13, No. 4, pp. 405-408, 1987 0098-3004/87 $3.00 + 0.00 Printed in Great Britain Pergamon Journals Ltd SHORT NOTE A BENCHMARK IN PORTABLE FORTRAN: SPEEDS OF CPU AND IN-MEMORY DATA-TRANSFER OPERATION FOR HYDROGEOCHEMICAL MODELS VIJAY S. TRIPATHIand G.T. YEll Environmental Sciences Division, Oak Ridge National Laboratory, Oak Ridge, TN 37831, U.S.A. and MALCOLM D. SIEGEL Waste Management Systems, Division 6431, Sandia National Laboratory, Albuquerque, NM 87185, U.S.A. (Received 17 April 1986; accepted 23 December 1986) INTRODUCTION AND BACKGROUND Benchmarks are used traditionally to compare the speed of different computers. This venture is inher- ently difficult because the run time of a program on any given computer depends on several factors, such as: (1) Whether a computer is running the benchmark as the only application program (true for many microcomputers and other machines running in a "single-tasking" mode) or in a "multi- tasking" environment. (2) The resource allocation by the operating sys- tem and the efficiency of the compiler in hand- ling the language in which the benchmark pro- gram is written. (3) Whether the benchmark is computational in nature or whether it performs extensive disk or other device input--output (I/O). This con- sideration is important because, whereas the speed of calculations depends on the processor speed and the speed of any floating point co- processor present, the I/O speed depends on additional factors, such as the characteristics of the disk subsystem and the properties of the operating system. These factors make it clear that different bench- mark programs would rank computers differently. A change in the compiler for the programming language used or, for a multiuser system, the number of users logged on the system also will change the run time on a given computer and, thus, its ranking based on the benchmark. These considerations raise the question, "What is the value of running a benchmark7" The motivation for comparing processor speeds (CPU speeds) stems from the desire to determine how much faster (or slower) an application program will run on a new or different computer in comparison with an existing computer system. The most direct 405 way of achieving this goal is to run the application program itself on various computers to be ranked. For long and complicated application programs, con- siderable effort may be required before the applica- tion program will run on a new machine. Having access to the computer system being evaluated for sufficient time also poses problems in practice. DESIGNING A BENCHMARK Although a wide variety of general purpose bench- marks exist (e.g., the LINPACK benchmark de- veloped at Argonne National Laboratory by J. Dongarra), to our knowledge no benchmark tailored to geochemical and hydrogeochemical problems is available. We selected FORTRAN as the language of the benchmark because it is the predominant lan- guage in which scientific software is written. Our objective was to design a benchmark that would meet the following criteria.: (1) Be short; if possible, less than 50 lines of FOR- TRAN. This would permit quick type-in of the benchmark, which would minimize the difficul- ties in accessing the computer. (2) Be fully portable across commonly used dialects of FORTRAN. This would ensure that the same program is run on all computers with- out change. (3) Be able to mimic closely the most CPU-time- consuming segments of typical geochemical and solute transport programs. (4) Perform no disk or device input-output, so that the CPU speed would be measured regard- less of the efficiency of I/O. (5) Be able to reflect the effective bandwidth and speed of data-transfer operations between CPU and RAM memory. We decided to identify the segments in geo- chemical and solute transport software that are most