Syntax Checker: Parallel Issues
Minimize the inter-process communication and maximize work
- Tasks needed to be partitioned so that they are small enough so that there is an even distribution of work, but large enough so as there is not excess communication
- Each library was determined to be a separate task
- The Geometry and Feature Hierarchies under the <Environment Root> were divided into task sized sub-trees
- The code that tracked the objects by creating an internal linked list within the SEDRIS API was removed
- It was too costly to serialize and send the linked list between the processes
- The linked list structure consumed too much memory and prevented syntax checker from running to completion on large transmittals (> 1 Gigabyte)