We just finished a round of optimization and now we have the data to show that the upcoming version of Pathfinder will be an improvement both in speed and in memory consumption.
To compare Pathfinder’s performance across multiple version, we created a model designed to have properties similar to a 40-story hi-rise office building. We then loaded the model with different numbers of occupants and compared the simulator performance for the different loads. A simulation containing 10,000 occupants is shown below.
The 40-story building repeats the first two floor plans for the height of the building. To test the impact of our changes, we compared a nightly build (labeled “Nightly 2011.0.0306) to two other versions. The version labeled “Release 2009.2” represents the current (official) Pathfinder release. The version labeled “Beta 2011.0.0215” represents the current beta version – released on February 15, 2011.
When running Pathfinder 2009.2, we disabled the hierarchical path planning option. This option can give minor speed improvements on smaller models, but larger models become impossible to run due to memory requirements. Aside from that difference, all settings were left at the defaults. All simulations were run in Steering mode (as opposed to SFPE mode).
The run time comparison is shown below. Lower is better. Both axes are plotted on a log scale. Values are given at the data points for the release and nightly builds. You may want to click on the plot to see a larger version.
As more occupants are added, the nightly build scales noticeably better than the current release. At 10,000 occupants the current release takes 4.6 times longer than the nightly build to complete the simulation.
The green (beta) plot is helpful because it shows the impact of our new path planning system. Now that occupants only work with “local” paths, you start to see savings with large enough simulations. The nightly version improves on this by adding parallel processing and some improved caching in the path planning system.
Since a major part of the performance improvement was an improved caching system, we were concerned that we would have to pay for increased speed with increased memory requirements. To investigate this, we also recorded the memory needed to run each of the simulations. The plot is shown below.
Even with our increased memory needs due to caching, we now use a little more than half of the memory used previously. This difference is accounted for by changes to the path planning system. Now occupants only have to store the path for a single room – not all the way out of the building.