BackgroundTRANSIMS 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 ActivitiesCurrent 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
|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.|