1. A method of parsing a hierarchically organized data document, comprising the steps of: preparsing the data document to determine a logical tree structure; automatically dividing the data document into a plurality of sections, in dependence on the logical tree structure, each section comprising at least a beginning of a logical section of the logical tree structure, together with sufficient context; and automatically distributing the plurality of sections to a plurality of processors for concurrent parsing of the sections of the data structure, wherein a set of tasks is generated by iteratively removing a remaining branch of the logical tree structure which represents a largest task, and elevating the root of the subtree represented by the largest task to a next higher level, wherein a sufficient number of tasks is generated to permit efficient balancing.