When an AERMOD study scales up to hundreds of sources and tens of thousands of receptors, runtimes can stretch from hours into days or even weeks. Here's our answer for that.
Existing solutions to speed up AERMOD
There are a few well-established software companies offering downloadable tools that allow the user to parallelize AERMOD runs, making use of additional CPU cores to deliver faster runtimes. The limitation is that the user is bounded by their own hardware, the maximum core count is whatever their workstation can offer, and only a single run can execute at a time on a given machine. Tools such as AERMOD MPI limit the user to 8-core parallelization.
Running multiple studies concurrently means buying additional computers and purchasing extra licenses for commercial AERMOD software. That adds up quickly in both cost and administrative overhead.
Our emerging solution to improve runtimes
Dispersions addresses these consumer hardware limitations by parallelizing your AERMOD runs on powerful cloud servers. We run your jobs on 128-core machines, providing a massive speed boost without requiring any local setup. Because jobs execute in the cloud, you can launch multiple runs concurrently without standing up additional hardware or managing extra software licenses.
Benchmarks
So, just how much faster is Dispersions than standard single-core AERMOD? Our benchmarks indicate that runs executed in parallel on our servers are 37× faster than standalone AERMOD.
We set up a test run with 10 point sources and 10,000 receptors, then ran it on a Fedora Linux PC with a locally compiled AERMOD binary. Timing the run produced the following output:
>> time ./aermod
>> Executed in 637.42 secs fish external
usr time 635.71 secs 344.00 micros 635.71 secs
sys time 0.10 secs 70.00 micros 0.10 secs
The run took just over 10 minutes on the local machine. Now compare that to the logs from the Dispersions console when running the exact same job with parallelization across 128 cores:
[4:12:40 PM] [INFO] Received run task
[4:12:42 PM] [INFO] Worker VM provisioning initiated successfully
[4:14:55 PM] [INFO] Virtual machine ready, preparing run
[4:14:55 PM] [INFO] Decremented user funding by 1.0
[4:14:57 PM] [INFO] Set up parallelized AERMOD run for 128 cores
[4:14:58 PM] [INFO] Doing single-process pre-run
[4:14:59 PM] [INFO] Pre-run in 1.58 seconds. Now executing main run...
[4:15:17 PM] [INFO] AERMOD completed in 17.75 seconds. Now saving results...
The main AERMOD run completed in 17.75 seconds, roughly 37× faster than running locally on a single core.
Run it yourself
If you are interested in recreating this experiment, feel free to download the meteorology and AERMOD input files and submit them to Dispersions to see the results for yourself.
Back to all posts