InfoWorks CS is a pure 32-bit application. InfoWorks ICM is available in both 32-bit and 64-bit editions. It’s a very common misconception that 64-bit applications are a lot faster than 32-bit ones. That is not the case in general, and certainly not the case for InfoWorks ICM. When comparing simulations times of the 32-bit and 64-bit ICM Simulation Engine you will generally find that the speeds will be about the same for any given model. The only real difference between the 32-bit edition and the 64-bit edition of ICM relates to memory usage. 32-bit applications are limited to using 2.0Gb of RAM, whereas with a 64-bit application you are only limited by the physical amount of RAM installed on the PC.
So, why run InfoWorks ICM in 64-bit mode? Well, as a general rule, if your OS is 64-bit, then you want to be running 64-bit applications where possible, as both OS and application are based on the same architecture. Running a 32-bit application on a 64-bit OS means the OS has to work in a slightly ‘degraded’ mode to support the application, but in truth you won’t see much difference for InfoWorks ICM in either the User Interface performance or Simulation runtimes.
Are InfoWorks ICM Simulations faster than InfoWorks CS?
When comparing a single 1D Simulation conducted in InfoWorks CS and then in InfoWorks ICM the runtimes will be very similar. Where ICM Simulations ‘win’ over the same runs conducted in InfoWorks CS is when many simulations need to be run. InfoWorks CS only allows one simulation to be run at any given time, any other runs have to sit in a queue behind it and will only start when the previous run finishes. However, with InfoWorks ICM (providing the PC has the power/hardware of course), you can schedule several simulations to run at once, and the set will complete much more quickly than if they were run one-at-a-time. Runs can also be spread across a pool of connected (work grouped) computers, which allows the end-user to make much better use of other hardware resources within an organisation, rather than having to run all the simulations on their own PC/Laptop.
The operations outlined above are things that InfoWorks CS simply wasn’t ever designed to do. It is these design features which boost overall runtime performance of ICM Simulations, not the architecture (32-bit vs. 64-bit) of the application itself.
Runtime comparisons between CS and ICM must be conducted on a like-for-like basis. If, for example, you were to compare the simulation time of a model run using InfoWorks CS v8.0 (let’s say) and you then compared it with the time taken to run that model in ICM v6.0, I would expect differences, and they could be significant. Not only will the run-times be different, it’s likely your answers will be too. In fact, it’s the different answers (i.e. hydraulic conditions in the model at any given timestep) which result in different run-times, as different hydraulic conditions mean different calculations throughout the simulation, and that means different outputs and different runtimes.
For a basic 1D model, run in comparable editions of CS and ICM (say CS v15.5 and ICM v5.5), I would expect the calculations to be the same throughout and therefore the runtimes to be the same too. For complete clarity, the model should be run in the 32-bit edition of ICM, so there’s an exact software architecture match between CS and ICM. Of course, it must be the exact same model, and run on the exact same PC with the exact same settings for any such speed comparison to be valid. Needless to say, the Simulations should be the only process running as well.
InfoWorks CS does not support the use of GPU technology for 1D/2D Simulations, but if run in InfoWorks ICM, the 2D calculations can be off-loaded to an NVIDA GPU Card (GeForce, Quadro or TESLA) and that gives a significant performance boost over the same run conducted on the main motherboard processor (CPU).
Which outputs should be compared?
Most people look at the elapsed real time when comparing runtimes. The better comparison is the information reported in the LOG file. Compare the memory usage, check that each simulation used the same number of Threads and look at the Total CPU time. I say this as the Elapsed time (the time you would record on a stop watch) is directly related to the number of threads and the total CPU time. Memory usage is also a factor, if you are close to the limit of the PC, then the Windows Page File will come into play, and that is very slow compared with data moved around in RAM.
An example of the relevant section of a LOG file is shown below for a run on a Desktop machine.
Memory used by simulation engine = 6610.1MB
Threads = 12
Elapsed clock time = 828s
Total CPU time = 3937.9s
As always, the Innovyze Support Team are on hand if you ever need help or advice. So, don’t hesitate to ask if you have technical questions about our software or the hardware it’s running on.