The processor’s assembly line

Henry Ford was a master at making the production process more efficient.  He once said, ‘Nothing is particularly hard if you divide it into small jobs.’  While we are not manufacturing cars at Maptek, we can apply some of his valuable lessons to make Maptek Vulcan more efficient.

Dividing the tasks

Ford started to invent the modern automobile in 1893. When he began building his early vehicles, he realised that he could not manufacture them by himself so he hired engineers to help with the process. By dividing the work and delegating certain tasks to each engineer he found that he could produce more vehicles per unit of time. However, he often found the engineers waiting for the others to complete their pieces in order to proceed.

Computers do not allow software applications to use all the CPU time for their tasks. In fact, applications have to share time with other software such as the computer’s operating system and anything else that is running at the time. This means that every application is given a ‘slice’ of time to complete as many tasks as possible before the next software in line is given their share – similar to Ford’s employees.

Creating the assembly line

As Ford expanded manufacturing capability he recognised that the movement of workers limited the extent to which vehicles could be assembled. Rather than having each employee move about the manufacturing floor to get the next piece of material to work on, parts were delivered to the workers as they needed them. By adopting the assembly line, Ford was able to boost manufacturing efficiency.

Modern multi-CPU (aka multi-core) can allow for boosts in efficiency for software applications. Rather than having one CPU do all the tasks, multi-CPU systems provide several CPUs to perform parallel tasks per unit of time. Software must be carefully re-designed to take advantage of this parallelism. The largest challenge, is ensuring that one processor’s change to the underlying shared data does not interfere with another processor’s view of that same information.

At about the same time as multi-core processors were becoming available, graphics card manufacturers were creating Graphics Processing Units (GPUs). GPUs are extremely efficient at doing small tasks, mostly mathematical calculations. Similar to the assembly line concept, if the highly computational portions of the software can be broken down into very small tasks, GPUs can calculate them more efficiently. Some of today’s graphics cards contain 100s and even 1000s of processors, each capable of thousands of calculations per second.

In the last year, Maptek developers have been updating portions of the Vulcan software to use new approaches to solving long-running processes, including taking advantage of multi-core platforms and using GPUs found on graphics cards. Our initial focus has been on block models, triangulations and grids.

The first round of these enhancements can be found in the Vulcan 9.0 release later this year, and we will continue to provide them in the years to come.

Scott Schell
Director of Global Product Development - Vulcan
April 23, 2013

Contact Maptek

Media Relations

For additional information about Maptek, including use of the Maptek logo, product images and reproduction of case studies, please direct inquiries to Global Marketing Communications Manager