Mikhail Avrekh


I have been working at NERSC for several years now as a database developer and a web applications developer. However, I haven't worked closely with the actual computational machines, and in this class I would like to gain a better understanding of the system architecture of seaborg, the “old” PVPs, and, in general, of how supercomputers work, as well as what kinds of applications they are used for.

I am also a second-year Master's student at SIMS. My main expertise is in the design and implementation of database systems and database interfaces.


Microscopic road traffic simulation on parallel computers.

Mathematical modeling of freeway traffic flow is important for several research areas, including transportation planning, traffic surveillance and monitoring, incident detection, simulation, forecasting, as well as judging the environmental impact of road traffic and assesing vehicle guidance systems. Two computational modeling approaches are commonly used:
a macroscopic approach, in which traffic flows are regarded in an aggregated way as a fluid, and microscopic approaches in which people try to understand the overall flow by modeling individual vehicles. The latter model, which was used in the described experiment, is based on live traffic data, collected on the streets of a large city by street detectors; these detectors read the state of each vehicle, such as "lane changing", "following", "stopped", etc., as well as their speed. The purpose of the simulation is to predict bottlenecks and points of likely collisions, given a certain number of vehicles within a certain road network.

The most computationally intensive part of the simulation is keeping track and updating vehicle state, as described above. The simulation was run on an 8-processor Sun SPARC 1000 workstation, using a traffic network modeling tool called AIMSUN2. The application was programmed in C++ and compiled using Sun C++ compiler and Solaris Threads. The parallelization used the shared memory model: the simulated traffic flow was divided into independent "blocks", which are essentially groups of cars whose behavior depends on each other (cars in adjacent lanes traveling at the same speed, cars following each other, cars merging into each other's path) and where different blocks are mostly independent from each other (eg. cars on the same road before and after an intersection are treated as independent blocks). Furthermore, sets of mutually independent blocks were logically joined into "layers". Thus, all layers could be updated simulatenously by a thread attached to each layer, wiithout a need for synchronization between threads. On average, there were 3-4 vehicles per block.

Scalability results are shown in the graph below, for different network loads (increasing numbers of vehicles in the network) indicated by three different columns:

scalability chart for AIMSUN2 simulation

 

The authors provide no data on how this particular application compared to other parallel applications run on the same hardware. This being a simulation that was based on measured road data, the results were intended not for comparison with the physical world, but rather for forecasting future behavior of the road network under potentially increasing traffic load. The simulation was significantly improved by virtue of parallelization.

Sources:

Microscopic traffic simulation for ATT systems analysis: a parallel computing version, by J. Barcelo et al.  http://www.aimsun.com/crtpap1st.pdf
AIMSUN2: a tool for traffic simulation. http://www.transver.de/transver/gb/office/F20000922143150339.htm