Moore’s Law and Flight Simulator Cockpits

How many times have you cursed your flight simulator for being slow, stuttering, sticky or otherwise just lacking enough horsepower. We all crave that smooth experience of a well tuned system. When we finally get it right, we promptly go and buy more add-ons, tweak up our visual settings or upgrade the simulator (X-Plane 11 is about to be released) and wind up with an un-flyable monster. In the “old days” there was a concept called Moore’s law which effectively promised large performance gains when you upgraded your CPU.

Pic of Kabylake CPU

A low resolution image of an originally very high resolution photograph attempting to show the impossibly complex architecture of the Intel KabyLake CPU.

While the boys and girls at Intel may have just released their latest “Kabylake” CPU generation, it sports nowhere near the huge performance gains when compared  with the previous “Skylake” series that we saw in the CPU generation comparisons of yesteryear. Desktop PCs are unfortunately not gaining as much processing power as I would have hoped. While Moore’s law in terms of net quantity of integrated transistors is still struggling to be valid, raw CPU power is definitely not doubling every few years as a result.

So what is the solution? How do we get to actually see the best quality our simulators can produce?

We take a leaf out of the big boys’ mainframe supercomputers.  They utilize a principle called parallel processing where software splits the calculations across many CPUs. We can utilize the same principle in our flight simulator cockpits. We hook up a system of distributed processing whereby one PC (lets call it the “Master PC”) runs the actual simulation. It handles the bulk of the flight model and provides a clickable graphical image of the controls and dials in a virtual cockpit. Then, via a simple high-speed (1Gb/s) ethernet network, a whole bunch of other “Slave” PCs are controlled by the “Master PC”. Each of these “Slave” computers show a portion of the external view. This outside view might be a single large monitor only showing the view out of the front windscreen, or a whole panoramic surround view made up of many monitors arranged in a semicircle.

The physical setup looks like this.

One of the most intensive processing and graphics tasks of the simulator is rendering the external view. If we can therefore share the work load by relieving the “Master” computer of rendering the outside view by delegating this task to one or more “Slave PCs” we will wind up with better performance from the “Master” and a far better external view.

Err… there are two downsides to this solution:

  • Cost. Many powerful PCs cost more money than just one.
  • Mess. See the photo below of my first multi-computer simulator:Picture of Daves first multi-computer setup
    My awkward messy multi-computer Flight Simulator Setup before I created my first actual cockpit housing.

    The physical size of the simulator grows. Lots of monitors and computers take up space. It’s only a small step to now building a cockpit framework for it all…