1. A method for printing including sorting and processing print data with an adaptive print driver using available plural parallel processors to accelerate printing by using said parallel processors to divide up and process said print data substantially in parallel, the method comprising the steps of: querying and detecting the host computer hardware configuration with the print driver for the number of processors; accessing the configuration information record (CIR) maintained by the print driver and storing the number of processors available; determining an appropriate level of granularity using a granularity analyzer for rendering of a particular print job using the processors present The granularity analyzer passes the print job data stream along with the granularity selections to the job partitioner; partitioning the print job using a job partitioner into independent work units based on that level of granularity so that the work units will then be processed by independent threads of execution so that rendering of the work units occurs substantially in parallel; attaching metadata to each work unit to facilitate reassembling the work units in the correct sequence for printing after rendering; storing said work units in a synchronizing FIFO; rasterizing each work unit substantially in parallel using one or more rendering threads on one or more of the processors; and reassembling the resulting data in the correct sequence using an assembler and said metadata before transferring the data to the printer.