I have a question about benchmarking. Why we have different errors for different species? For example, my maximum error for ozone is 0.08%, but for NO2 is 4.5%!! Why we don’t have similar errors for all of the species??
Could you help me, please?
We have observed differences due the compiler used (ifort, gcc, portland group), and what compler flags (-g vs O3) you are using.
If you are using the gcc compiler, you can try to use the -Og option to compile the model, and you will get an improved performance over -O0 (debug option), but 30% slower than the -O3 option, with the benefit of obtaining matching answers in the variables.
Domain decomposition differences have also been observed under some conditions when running CMAQ, for instance, if you run on 32 processors, using NCOLS=4, NROWS=8 may result in small differences from a run that is done using NCOLS=8, NROWS=4.
Percent differences can vary due to the dependence on the value in the denominator. If a value is very small, and there is a small difference, this will lead to a larger percent difference. If the value was larger, with the same small difference, the result is a smaller percent difference.
Say a difference of .000003 is created during the computation for both variables. Ozone typically has a larger value or higher concentration n the atmosphere than NO2. For this calculation, assume the concentration of Ozone is .05 ppm, while NO2 is .015 ppm. The result is a larger % difference, with the same absolute difference of .000003.
Ozone (.05 - .05003) / .05 = .06 % difference
NO2 (.015 - .01503)/ .015 = .2% difference