TL;DR: The aim of this was to investigate whether worthwhile gains in performance would result from subdividing a diagram drawn with PIC and then processing the various portions in parallel.
Abstract: SUMMARY The manipulation of text and graphics within a computer provides opportunities for the exploitation of parallel processing. It is straightforward to identify blocks of material such as complete diagrams or paragraphs of text which can be processed in parallel and which have modest requirements for synchronization and communication between the blocks. The features of a problem which lead to an elegant and efficient application of parallelism are identified, including good locality of reference, a small ‘state vector’ of shared global variables and a clear relationship between the material on the page and the ‘cost’ of processing it. This last-named attribute enables a problem to be partitioned among multiple processors by a static compile-time analysis rather than relying on costly run-time allocation strategies. The PIC program for line diagrams has been modified to allow for such a static allocation and to permit synchronization and rendezvous between multiple invocations of the program. The aim of this was to investigate whether worthwhile gains in performance would result from subdividing a diagram drawn with PIC and then processing the various portions in parallel. A series of benchmark timings is presented which show the degree of overlap obtainable in processing separate parts of a diagram together with the inherent limits to parallelism imposed by the ‘atomic’ entities in PIC and the inevitable communication overheads between the parallel processes. The design features of the PIC language are identified which made it suitable for these researches and we are able to draw certain general conclusions about desirable properties of text and graphic entities which are to be processed in parallel. This in turn enables us to identify design features of the underlying software which will facilitate parallel processing.