Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
Re: [sumo-user] Looking for a large SUMO network for benchmarking

Hi Jakob,

For x64 build,  SSE is always enabled by the compiler, so it is a no-option. 

I noticed that for fairly large network (such the Morocco network),  SUMO on my computer can achieve an overall real time factor of about x15~x20, which is faster than Aimsun and Vissim, and comparable to TransModeler - TransModeller is pretty fast due to its internal assembly-level optimization so it is hard to beat.

I also noticed that if the /GS compiler switch is explicitly disabled, then SUMO is slightly faster (0.8 ~1%).   The /GS by default is ON for buffer overflow protection, which should be a non issue since SUMO is open source anyway. I would personally just turn it OFF.   set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /GS-")

For further performance improvement (beyond compiler settings),  as you noted - probably would have to be resorted to SSE/AVX2/AVX512 intrinsics,  parallelisms and fine tuning - probably most of the users wouldn't care much.

Thank you again.
Wuping 

------ Original Message ------
From: "Jakob Erdmann" <namdre.sumo@xxxxxxxxx>
To: "Wuping Xin" <oudouxin@xxxxxxxxx>
Cc: "Sumo project User discussions" <sumo-user@xxxxxxxxxxx>
Sent: 8/17/2021 1:53:36 AM
Subject: Re: Re[2]: [sumo-user] Looking for a large SUMO network for benchmarking

Hi Wuping,
The Windows platform release is built with MSVC.
Actually, SUMO has plenty of floating point computation. However, it's has few loops that can be vectorized automatically by a compiler and we do not use any of the  SSE/AVX2/AX512 intrinsics in our code.
Most of the data parallelism happens at the vehicle level but each vehicle has individual numbers to compute rather than vectors of numbers.
Put briefly:
for v in vehicles:
   calculate many things (without vectors)

regards,
Jakob


Am Di., 17. Aug. 2021 um 02:55 Uhr schrieb Wuping Xin <oudouxin@xxxxxxxxx>:
Hi Jakob,

Thanks for the heads up.

I selected the Cologne network.  I rebuild sumo.exe, sumogui.exe, and netedit.exe,  with AVX2 enabled (my computer's CPU only supports AVX2).   I used Visual Studio 2019 C++ compiler version 16.10.

It seems - with AVX2 enabled,  SUMO was getting slightly SLOWER (! about 1% slower), compared to the standard public release. 

I didn't tested the SSE, nor AVX512.

Admittedly, this is not a very rigorous benchmarking.  But 1% slower was still a surprise.  I guess the SUMO computation is not very floating-point-intensive? 

I will continue with  SSE and AVX512 (need to find a supporting CPU though).

P.S. What is the compiler used for the original SUMO's public release on Windows platform?  MSVC, Clang, or Mingw?

Wuping

------ Original Message ------
From: "Jakob Erdmann" <namdre.sumo@xxxxxxxxx>
To: "Wuping Xin" <oudouxin@xxxxxxxxx>; "Sumo project User discussions" <sumo-user@xxxxxxxxxxx>
Sent: 8/16/2021 12:47:05 PM
Subject: Re: [sumo-user] Looking for a large SUMO network for benchmarking

Hello,

There are public scenarios for download at https://github.com/DLR-TS/sumo-scenarios
The biggest one is brunswick (run brunswick/miv/build.sh and the brunswick/miv/oneshot.sumocfg)
Larger larger scenario can be found here: https://sumo.dlr.de/docs/Data/Scenarios.html
If you need even larger networks, download the country of your choice at http://download.geofabrik.de/ and import with netconvert.
- random traffic should be enough for benchmarking: https://sumo.dlr.de/docs/Tools/Trip.html#randomtripspy

I'd be interested in learning about your benchmark results.

regards,
Jakob

Am Mo., 16. Aug. 2021 um 17:49 Uhr schrieb Wuping Xin <oudouxin@xxxxxxxxx>:
I have been learning SUMO source code recently, and would like to thank the SUMO developers for this excellent open-source work.  

SUMO is probably the only successful (and enterprise-grade) open-source traffic simulator that has good performance (native C++),  quality code (both coding and styles), extensive documentation, and an active user community worldwide.

However, the public SUMO binary release does not have AVX2/AVX512 enhance instruction set enabled.  

Thanks to the availability of all sources and dependencies, I was able to make a special build (on Windows platform) that has AVX2 /AVX512 enabled.  I would like to do some performance benchmarking.

Is there someone who can donate network file that is LARGE, for me to use as the basis for the benchmarking? 

Thanks in advance.
Wuping Xin
_______________________________________________
sumo-user mailing list
sumo-user@xxxxxxxxxxx
To unsubscribe from this list, visit https://www.eclipse.org/mailman/listinfo/sumo-user

Back to the top