This program generates inputs for the 505.mcf SPEC2017 benchmark. It simulates a city and uses a common bus-route designing technique to radiate bus routes from a central location. The program uses a circadian cycle to generate more routes at prime times in the day accounting for increased number or commuters. To create a city map, it starts with a perfect fully connected grid. Then it eliminates intersections from the grid and all the associated edges connecting the eliminated point with other points to simulate parks and larger squares in a city. It then create roads that travel diagonally across the city. Such connections are similar to major diagonal avenues such as the ones found in Washinton DC.There are also considerations to reduce overlapping routes such as adding increased cost to the A* algorithm when calculating the path for bus routes.
The program is designed to run after build without any changes to the configuration. There is also a template configuration file provides. This template can be regenerated using the -g flag. The default file (default.cfg) contains an explanation of all tunable parameters.
makeBuilds the program
DEBUG=TRUETurns on debugging flags
USEPAR=NOTurns off parellization (Parellization is enabled if not set)
NUM_THREADS=<NUM>Set the number of threads for the parellization to use (set to 5 if not set). This allows the generator to parrallelize some of it's work drastically shortening running times on large moddels.
make cleanRemoves all generated files
-t, --test_file=FILEStore testcase in FILE
-c, --city_file=FILEStore a visual representation of the city in FILE
-i, --icfg_file=FILELoad the configuration of the city from FILE
-o, --ocfg_file=FILEStore the configuration of the city in FILE
-g, --gen_template[=FILE]Generates a default config file
-hPrint Help information
This software was built and tested using g++ version 4.8.5 and c++11. The software is NOT compatible with older versions of c++.