Doing the Impossible with Simulation

Doing the Impossible with Simulation

6a00d83451f5c369e2014e8828ac33970d-pi

The ability to manipulate time and space is a popular concept at the core of many exciting science fiction stories. Science fiction has created universes with this 4th dimension; and the capability to go back or forward in time without damaging or negatively impacting things in the present day seemingly is something only possible in a dream.  Perhaps more interesting is how these time travel fantasies give us the freedom of perspective to view the real world differently – and in so doing we are able to shape our destinies.

Recently an international project named Illustrius managed to run a simulation of a 13 billion year span of cosmic evolution.   A short description of the accomplishment can be found here. It is intriguing that this simulation took only 3 months of runtime. I’m sure it would have been 2,000 years if I tried to run the simulation on my desktop but fortunately this project had access to monster compute resources.

Given that understanding simulation well is a key part of my job, I can certainly appreciate what was needed “behind the curtain” and what made this project possible. While the situational domain of the Illustris project is very different, I see a parallel with how our simulation solution, Wind River Simics, fundamentally enables our customers to address big unsolved problems in their software development lifecycle.  Let me enumerate some principals here:

  1. Performance.  To scale, you need to distribute the simulation on all CPU cores you have available to you. Illustris used 8,000 CPUs running in parallel! Fair, that might not be available to all common developers but, Simics was the first commercial simulator to introduce simulation acceleration technology (Simics Accelerator) which lets engineers distribute the simulation the best possible way.
  2. Hypersimulation.  You wonder how 13 billion years can run in only 3 months? It is all about hyper simulation, meaning skipping ahead when no interesting incidents occur. We do it with Simics as well; making virtual time faster than real time execution. Read more about the tricks and neat features contained in Simics.  
  3. Level of abstraction. Simulation requires a model of what you want to observe and the model should be just good enough to solve the problem that is under investigation. Illustris decided that it was enough to model the universe as a cube-shaped piece.  For Simics, since we want to solve the hardware/software interface so that you  can run an unmodified binary, we focus on what the system is doing and not the implementation which will be too detailed, and would negatively impact performance. Watch our video for more information.
  4. Do the impossible.  Control over time makes possible what would be impossible in the real world. Illustris could pause, zoom into a galaxy, go forward and backward. Likewise, Simics introduced the capability of reverse execution in 2006, enabling engineers to run software backwards both in user and kernel spaces without any change in their binary. Simics is still the only commercial simulation tool to offer this feature.

As the Illustris project demonstrates, simulation can be an incredibly powerful tool, and may uncover uses and benefit not yet contemplated. What if you could harness some of that power for your own projects? If you are not yet convinced that simulation can change your way of developing software visit our website where you will see detailed use cases, demos and technical white papers.  And keep in mind, resistance is futile, you will be simulated!