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:

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