I am just curious if it is at all possible or if there are plans to implement thread-level parallellism to Plant Simulation? Being able to utilize several cores for a single simulation run (not distributed simulation) could potentially speed things up a lot instead of relying on single-thread performance of a CPU. It's definitely not an easy question but an interesting one!
I'm not an expert but I think that since it's a discrete event simulation modelling software the event list needs to be evaluated in order. That is, there's no point in evaluating events ahead of time. Maybe some parallellism would be possible for each single event, but in essence such a software as Plant Simulation wouldn't benefit from parallellism.
Yes, the very nature of the software operating in discrete events processed in chronological order was my first thought as a reason why it wouldn't be possible to implement parallellism, or even beneficial. However I am not a computer scientist or "real" software developer so it is pure speculation on my part
Well, I have not checked how many cores my plant sim uses, so all of this is theoretical but personally I would use 1 core for the simulation to keep the liner nature of it (CPU core loads could affect their speeds to prevent them from running at the same time factor as each over).
Although this, I would say that another core could be used for the GUI ensuring that this is separate from the simulation and would not slow down the process. Any GUI tools should run in this thread as well, and they will get values passed between them for ensuring that the GUI keeps up with the simulation.
After 2 cores, I don't see much need personally for more cores than that apart from if you were to want to run multiple simulations at the same time.
Even from distributed simulation you can only benefit, when the transfer effort (to and from the different cores) is low compared to the computing effort (on the cores). This problem persists and is even more complicated if one tried to parallelize a single simulation run. I don't believe there will be a valuable solution for in short time. (In case someone claims to be able to do so today - please let me know!)
I don't know your use case, but many people simulate a huge period of time (a year) to get "reliable" results. This may lead to a long simulation time. The better way to do is to utilize the ExperimentManager and make it running shorter periods of time (two weeks) with several observations (i.e. 10), to get the confidence interval for a certain confidence level (mostly 95%). This is the only reliable way of interpreting simulation results depending on stochastical parameters. Sorry to have repeated well known stuff to most of you.