Partitioning uses the values of the marks to order the rows. This allows PSM to identify blocks (see below) and get all the marks not within the blocks to be below the diagonal .
The results are shown in part below:
Each of the square regions on the diagonal is called a block. A block is an indivisible "tangle" of mutually dependant prerequisites. The program seeks a long circuit called the principal circuit to use in computing heuristics to guide the user in choosing where to make tears. (See the next step, tearing.) If this set of dependencies can be broken, then the dependencies represented by the marks below the diagonal do have not circuits and thus can be laid out over time as a plan.
Partitioning is a prerequisite of tearing.