TRANSIMS Parallelization
- This email address is being protected from spambots. You need JavaScript enabled to view it. - TRACC Director
- This email address is being protected from spambots. You need JavaScript enabled to view it. - Associate Computational Transportation Engineer
Background
TRANSIMS was originally developed by Los Alamos National Laboratory to run exclusively on a Linux cluster environment. In this initial version, the only parallelized component was the microsimulator. It worked on multiple nodes of a cluster by assigning the traffic microsimulation for different geographical areas to each CPU and communicating the movements of travelers across boundaries to the corresponding node.
This approach worked reasonably well and made use of a number of open software packages, such as METIS and MPI, to implement the domain decomposition and communication between computing nodes. But the execution of the software was irrevocably bound to the use of a Linux cluster, and it could not be used on single-CPU machines, regardless of the choice of operating system.
A major change was made in TRANSIMS Version 4 (V4), which allowed the software to run efficiently on powerful Windows desktop machines and added many new capabilities. This made it easier for researchers to make the move from traditional traffic forecasting tools to an advanced tool such as TRANSIMS.
However, TRANSIMS V4 is unable to use the processing power of multicore and cluster systems. These systems are essential to run highly detailed models of entire metropolitan areas, such as Chicago due to the fact that the memory requirements are simply too high to run these cases on a typical desktop computer and the run time is in excess of 48 hours.
TRACC Research Activities
Current research has focused around advancing the microsimulation code so it can be run in both a parallel and non-parallel capacity. This can be subdivided into several major categories of development.
- Engineering a way to partition the V4 TRANSIMS road network
- Economically dividing the work between a master node and some number of slave nodes
- Designing and tuning transferring mechanics which will deliver similar results to a non-parallel run
- Retooling data structures and memory allocation practices so that very large cases can be run
- Maintaining compatibility with the existing non-parallel version of the microsimulator
- Finding performance optimizations and improving load balancing to facilitate faster parallel run times
Research Results
A program PartitionNet was designed which used the METIS graph partitioning software to divide a V4 TRANSIMS road network into several pieces.
Below you can see an example of how the entire CMA region was divided into 15 partitions for one of the parallel runs.
The roles for the master node and slave nodes were designed so that the master was primarily in charge of I/O operations and slaves were in charge of doing most of the processing.
The transferring mechanics are designed to give drivers a similar decision framework as they would have in the non-parallel case while still maintaining very high simulation performance.
Extensive optimization and tuning have yielded very positive performance results.
Future Activities and Deliverables
Future research will be devoted to several key areas. Memory usage and processing mechanics will continue to be tuned for more efficient runs. Dynamic load balancing will be investigated to determine if it can deliver a truer parallelism and further reduce run times. Transfer mechanics will continue to be improved for closer accuracy with the non-parallel case. The routine will adapt to include the more accurate car-following logic which will be present in version 4.2 of the Microsimulator.