|Technology||Python 2, MPI|
|Project started||February 2012|
|Open source||Yes, GPL 3.0+|
This project was created for the high performance computing course at the Universität Hamburg starting in 2011. We wanted to find out whether Python could be a suitable instrument for efficient parallelized computing of nontrivial tasks. The question was not whether Python could compete with languages like C in terms of raw speed, but whether it could achieve similar parallelization speedup factors when compared to single-processor execution.
We chose traffic simulation as our problem domain because (1) street network data is readily available, (2) path calculation is covered by existing, well-understood algorithms, and (3) while the bulk of the calculations can be distributed, the calculation of aggregated traffic congestions requires non-trivial coordination between nodes.
Streets4MPI should be regarded as an HPC case study, not a simulation aiming for domain knowledge. Its traffic results have little basis in reality and are of no tangible use to city planners.
Out of all my projects, this is the one that has garnered the most developer interest, and we’ve seen a fair number of follows and forks on GitHub. It seems that it really does fill a niche as a Python HPC teaching/learning tool. However, as far as I am concerned it is an abandoned project, since neither I nor my project team partner have any reason or inclination to pick it back up.