Parallel programming techniques for compilers

The multi-processor (perhaps a CDC 6500 or an ILLIAC IV) has bee n stationed in your computer room for a number of months, enveloped in a patina of cigarette burns, coffee stains and the lint from bales of printe r paper . The first panic of installation and conversion has subsided and mos t of the hardware idiosyncrasies have been explored . The 'NUMBER-ONEPROBLEM' (used as justification for your computer purchase) has jus t undergone hand coding and preliminary checkout . The programmers and analysts alike finally have sufficient time to sit and reflect, for a moment , on what they have just wrought . That moment of self-satisfied bliss, which everyone traditionally enjoyed at this point in the last five machine transitions , however, never arrives . The vague disquietude that pervades the programming department seems to center on the mountain of FORTRAN and COBO L cards that someone has insisted must also coexist with the 'NUMBER-ONEPROBLEM' on the new machine . The general concern is not, of course, whether this mountain of card s can be processed by the computer but rather how such problems can efficientl y use more than a single one of the computer's several expensive processors . Since many of the FORTRAN programs might have been written in the distant age of the IBM 704 'uniprocessor', we are faced with the possibility of usin g less than half (or worse) of our computing power unless we can find a mean s for translating essentially 'serial' programs to 'parallel' execution modules . Our solution (evidenced in the first CDC 6500 Operating System) was t o assign each processor to a completely independent user job . Needless to say , this is a bit difficult for the ILLIAC IV and when a single problem consume s all available core on the CDC 6500, one processor becomes idle . Another solution is, of course, not to attempt execution of such program s on the multi-processor but to utilize an auxiliary uniprocessor such as the Burroughs 6500 connected to the ILLIAC IV .