HiPERiSM's Technical Reports
HiPERiSM - High Performance Algorism Consulting
HCTR-2006-1: Compiler Performance 15
PERFORMANCE ANALYSIS OF AERMOD ON COMMODITY PLATFORMS #2
HiPERiSM Consulting, LLC.
This is an update to the previous progress report to evaluate industry standard fortran 90/95 compilers for IA-32 Linux™ commodity platforms when applied to the Air Quality Models (AQM) AERMOD. New results are presented for AERMOD that give insight into the algorithm’s performance on commodity architectures with the current (CY2006) releases of three compilers. This report will show only execution times and the compiler switches used to produce them.
2.0 CHOICE OF HARDWARE AND OPERATING SYSTEM
The hardware used for the results reported here is the Intel Pentium 4 Xeon (P4) and Pentium Xeon 64EMT (P4e) processors. These have processor clock rates of 3GHz and 3.4GHz, respectively. Each is in a dual configuration with a corresponding front side bus (FSB) of 533MHz and 800HMz shared by each pair of processors. The operating system (OS) is HiPERiSM Consulting, LLC’s modification of the Linux™ 2.6.9 kernel to include a patch that enables access to hardware performance counters. The times reported were taken from the process time reported by hardware counters. In the following discussion x86_32 denotes a 32 bit hardware and 32 bit operating system, and x86_64 denotes 64 bit hardware and a 64 bit operating system. In addition to these Intel processors and OS, some results were obtained for MicroSoft Windows 2000 and AMD Athlon and Opteron processors with Linux kernels.
3.0 CHOICE OF COMPILERS
The compilers used were the Portland pgf90/95 (release 6.0 and 6.1), Intel ifort (release 9.0 and 9.1), and Absoft f90/f95 (release 9.0 and 10.0). The choice of optimization switches for each compiler is shown in the tabulation of the results. Numerous combinations of compiler switches were tested for each compiler and the ones shown here are those that delivered the smallest execution times in each case.
4.0 CHOICE OF BENCHMARKS
The AERMOD code describes pollutant dispersion and deposition and is now an approved regulatory model for new source reviews and other permitting applications. It is predominantly a Fortran 77 code developed over ten years ago but has since used (in small part) Fortran 90 features. As such, and typical of that generation of environmental models, AERMOD was developed on a PC platform, with a small memory requirement, poor vector character, and I/O bound performance characteristics. AERMOD and other AQM’s are available at the U.S. EPA’s Support Center for Regulatory Air Models (EPA-SCRAM). The version used here is AERMOD 04300 and was provided to HiPERiSM by the U.S. EPA in December, 2005 for analysis of compiler performance. Two separate data sets are used in two sets of benchmarks with AERMOD 04300.
5.0 BENCHMARK DATA SETS USED
5.1 EPA benchmark set EPA-E2
The U.S. EPA provided a test data set and this is designated as the EPA-E2 benchmark. Results for this benchmark were collected in December (2005) and January (2006) for the compiler releases generally available at that time. An overview of results is shown in Figure 1, for the runtimes shown in Table 1.
Fig. 1. Run time from Table 1 for AERMOD benchmark EPA-E2 with three compilers on five platforms. The 32 bit platforms are shown on the left and 64 bit platforms on the right. The “baseline benchmark” represents the choice of compiler and switches in use at the U.S. EPA before this analysis. The switch mnemonics are defined in Table 1 where the corresponding compiler switches are listed. The best time reported in this group is for the Absoft v9.0 compiler.
With release v6.1 of the Portland compiler and v9.1 of Intel's compiler the EPA-E2 benchmark was repeated. Table 2 summarizes these results and for redundancy the best results from Table 1 (for Absoft fortran) are repeated. Note the significant improvement from Intel fortran v9.0 to v9.1 on both x86_32 and x86_64 platforms, and the improvement in the Portland compiler result for x86_64.
5.2 ENV benchmark set ENV-T2
An environmental consulting firm provided a test data set with a request to evaluate compilers and this benchmark is designated as the ENV-T1. Tables 3 to 5 show results for the current (Q3CY2006) releases of the Absoft, Intel, and Portland compilers on x86_32 and x86_64 platforms. Note that for this benchmark the Intel compiler reports the shortest run time on both platforms and it is interesting that for the 64EMT the improvement is only 6.9% over the x86_32 case.
Fig. 3. Run time from Tables 3-5 for AERMOD benchmark ENV-T1 with three compilers on two platforms. The 32 bit platforms are shown on the left and 64 bit platforms on the right. The switch mnemonics are defined in Tables 2 and 3 where the corresponding compiler switches are listed. The best time reported in this group is for the Intel v9.1 compiler.
6.0 SUMMARY OF AERMOD PERFORMANCE RESULTS
This performance analysis of AERMOD, shows several important features of current compiler technology for commodity hardware:
This performance analysis of AERMOD, shows that compilers must be tested with each new release because performance differences are very significant (even between minor releases). Furthermore, it can no longer be assumed that one single compiler will provide superior performance indefinitely. In fact, even within the space of a year, dominance in performance can change between different compilers. However, one note of warning needs to be sounded: even though a new release of a compiler can give dramatically improved performance in one application is may not do so in another (see the following report on CAMx where the Intel ifort 9.1 compiler aborts with an internal compiler error, whereas the v9.0 release completes compilation and execution successfully).
One important result of this analysis is that by simply changing hardware platforms and compilers it is possible to see performance enhancement by as much as a factor of two or more. However, only a parallel version of AERMOD can promise to deliver more performance.
HiPERiSM Consulting, LLC, (919) 484-9803 (Voice)
(919) 806-2813 (Facsimile)