We are enhancing Maptek Vulcan memory management. In Vulcan 9.0 and 9.1 you will see the removal of the Dynamic Array Configuration panel, giving Vulcan the ability to manage larger datasets on your behalf.
Vulcan’s current memory
Several Vulcan data types have required that their memory be managed in contiguous blocks. In order to ensure that it has contiguous blocks of memory, Vulcan asks users to help it understand how much memory to pre-allocate for each data type on the Dynamic Array Configuration panel.
The result is that some Vulcan users do not understand exactly how many triangulations, grids, design data, etc., they will have before they start designing. Most of the time that memory is overallocated or Vulcan runs out of space, which ultimately leads to inefficient operation of Vulcan applications.
So now the question is, ‘How do we remove the Dynamic Array Configuration panel and manage the memory on behalf of our users?’
Computer Science and warehouse management
I was three years into my undergraduate work in Computer Science while working at a ranch supply warehouse. I drove a forklift and was trained to put each item that came off the truck into its proper place; there was even a map I had to memorise.
The truckers, who drove 16 hours round-trip the warehouse, had to frequently wait for me to finish because I constantly ran out of space for the items. At one point a trucker explained to me that Friday’s were the most important day for him because if he got home in time he could watch a movie with his family. It had been six months since he made it home for movie night. Understanding the importance of family, I was determined to get that truck driver home on time.
After about four months of trying the solution came to me while I was working on an programming assignment for one of my classes. I was writing a software program and I kept running out of what developers call ‘contiguous memory.’ Contiguous memory means a block of computer memory that has no gaps – all the information is neatly organised together; like the map of the warehouse. The solution for this is to carefully arrange information in non-contiguous pieces of memory, and keep track of where they are for later use.
Maybe it was the caffeine or that it was about 4 a.m., but I realised that the organised floor space was the problem at the warehouse.
The following week I unloaded the trucks in record time by using all the available space and organising later. That Friday I got the trucker home to his family in time for movie night.
Vulcan’s new memory management
You may recall that Vulcan uses contiguous memory to manage several of its data structures, keeping everything perfectly organised. What if, similar to my assignment at the warehouse, Vulcan’s processes only used memory as needed?
Not only could we remove the Dynamic Array Configuration settings, Vulcan could also operate more efficiently and manage much larger data sets.
With the Vulcan 8.2 release now complete, our developers have started making changes to allow Vulcan to dynamically manage its own memory.
You will see changes in the Dynamic Array Configuration panel in the Vulcan 9.0 and 9.1 releases. Ultimately, we will remove the Dynamic Array Configuration panel altogether. At that point, Vulcan will automatically manage its memory, making optimal decisions on the work being done.
Unloading trucks and organising a warehouse is not that much different than efficiently loading and managing data in software. Just as I looked forward to the day where I could get that truck driver home in time for family night, I look forward to the day when we can relieve you of managing large datasets in Vulcan; maybe it will even get you home in time for family night!
Director of Global Product Development - Vulcan
February 25, 2013