2) We were mostly using meso for Berlin but the running time of 1 day is valid for microsim in a scenario without jamming (see https://sumo.dlr.de/docs/FAQ.html#how_fast_can_sumo_run). With jamming, vehicles spend much longer in the simulation and this slows it down.
Thanks - all of this makes sense. A few more follow-up questions:
1) Just to confirm, if we use fixed routes that are not equilibrated to capacity, it will still run, but there will be unwanted jamming and congestion - is that right? I am using --duration-log.statistics to log some aggregate statistics. I couldn't find it in the documentation, but will this also print the total simulator runtime? If not, what is the flag to print the statistics for the simulation run itself (runtime, etc.)?
2) I'm assuming the Berlin run you mentioned was using --mesosim since it's a large network/area, or was it the microscopic simulation?
tThe Berlin network had 74k nodes and 188k edges with a total length of 31k km. The simulation run time did include routing (initial + periodic) but the routing was running in parallel (--device.rerouting.threads 32).
You can run your simulation with fixed routes but then you have to make sure that the routes are "smarter" than fastest-path-in-the-empty network.
More precisely you need some sort of traffic-assignment to make sure roads are used according to their capacity and unrealistic jamming is avoided.
Note, that the time to compute each simulation second was probably higher than a second over the rush hour. The 24h sim for 24h traffic ratio is the average over the whole day.
How large was the Berlin network (# of edges and # of nodes) that you used? And in the real-time speed you had mentioned above (24 hour simulation in 24 hours), did that time include routing or no? And does the simulation do dynamic routing at all or is it static given the routes supplied? (I'd like to turn off dynamic routing, if it is something it does).
1) The best practice is to exclude vehicles from your input if you do not have at least an origin and destination edge
2)
- runtime * stepLength ~ constant.
- number of vehicles and size of network can be multiplicative if the vehicles drive proportionally longer routes (in larger networks route lengths should level off though)
1) Re: each vehicle defining a route, so if the vehicle does not have a route (as above), is there a best practice to put a phantom route in the .csv / .xml file so that it doesn't fail?
2) I see - yes, it makes sense to switch to meso at this scale. For both micro and meso, are there curves that show performance runtime based on time step (.1 s, .5 s, 1 s, etc.), total simulation time range (6 hours, 7 hours, 24 hours, etc.), number of vehicles, and size of network, by chance? Or should we assume linearity with everything?
1) Each vehicle must define a route either using the 'route' attribute or the 'route'-Element.
2) Running time is roughly linear in the number of vehicle-seconds (multiply the number of vehicles with their average time spent in the network).
We ran a simulation of one day in Berlin with about 3M vehicles (spread over the whole day) and it was roughly real-time speed (using option --no-internal-links).
Of course, the running time goes up if you also do a lot of routing (versus using precomputed routes).
Thank you, Harald. This helps, though eventually even with the `-ignore-route-errors true` flag, it still gives me an error of `Vehicle 'veh2653438' has no route`. The .xml file shows that ` <vehicle depart="20785.77809238743" id="veh2653438" type="type2653438"/>`, so it doesn't contain route edges, which is expected. Any idea why this error would still happen?
In addition, I'm trying to run a very large network with very large demand (550K edges/220K nodes and 3.1M vehicles). Is this possible in SUMO? If it were at all linear, my initial run shows that it would take 82 days to complete. Is this accurate? I tried looking for papers about SUMO benchmarks with large networks and/or large demand, but could not find any. Do you have good references or runtime benchmarks?
Thank you again for your time and help.
On Mon, Apr 27, 2020 at 7:44 AM Harald Schaefer <fechsaer@xxxxxxxxx> wrote:
There is an option --ignore-route-errors, you can set this to
true
Regards, Harald
Am 27.04.20 um 15:51 schrieb Pavan
Yedavalli:
Hi Harald,
Thanks so much! This makes a lot of sense.
I had a side question: I was able to do it with a manual
change to the routes xml file, but I noticed that the
simulator quits when it finds a vehicle whose route doesn't
exist (basically an empty vehicle). Is there a flag to have
the simulator just continue past the ones with no routes
(basically don't simulate them) or do I have to change the
file to remove all of the vehicles that don't have routes?
Thanks again for the help.
On Mon, Apr 27, 2020 at 1:05
AM Harald Schaefer <fechsaer@xxxxxxxxx> wrote:
Hi Pavan,
the original routes.xml has some problems as pointed out
by Mirko:
In addition I would add a vClass to your vType
definitions (e.g. vClass="passenger")
Also the attribute route="routeX" is not necessary,
because you are providing an embedded route.
Thanks so much for your help. This makes sense - I
will make it "type1", "type2", "type3" and so on for
vType ids. However, in the end, I simply used the
csv2xml() converter in tools/, based on the following
.csv file (snippet).
And the rou.xml file snippet above is what the
csv2xml() conversion produced. Why is the converter
doing this incorrectly then? And how would I go about
doing this following part using csv2xml()? `Please
define vTypes without enclosed vehicles, like you have
done afterwards. Also enclose route elements in
vehicle elements or define them on the same level as
vtypes and give them IDs` I'll change vType_id to
type1, type2, type3, etc., but is there another part
of the .csv that I need to be changing for csv2xml()
to work?
The first definition of your vType "type1"
encloses a vehicle definition which references
it. However it cannot find type1 as the closing
tag of vtype has not been reached yet. Please
define vTypes without enclosed vehicles, like
you have done afterwards. Also enclose route
elements in vehicle elements or define them on
the same level as vtypes and give them IDs.
Do use unique IDs (strings) for vTypes. Do not
define "type1" a second time.
Maybe you have a look at the relevant
documentation page.
Regards
Mirko
Am 24.04.2020 um 16:14 schrieb Pavan Yedavalli:
Hi,
I'm a new user to SUMO, and I was wondering
about the following (very basic) error:
"Error: The vehicle type 'type1' for
vehicle 'veh0' is not known." from my rou.xml
file. I generated that using csv2xml in
tools/, just FYI.
Here is a snippet of the first few vehicles
in rou.xml file:
I'm not sure what I'm doing incorrectly,
but it does not like "type1" for the vType id
or for <vehicle> type, it seems - it
looks like it's the latter given the error
message. Any help would be appreciated. Thank
you.