IMS is the leading company worldwide in the field of ion beam lithography, and focuses on the development of microlithography systems using ion beams. Microlithography tools are used for patterning of substrates for the fabrication of micro and nanotechnology devices, e.g. for manufacturing computer chips. The bulk of the company's research and development efforts to date have gone into ion projection lithography (IPL) technology, an alternative to the extended UV-optical, X-ray and e-beam lithography methods being investigated to produce silicon chips with smaller feature sizes than are possible with conventional optical lithography. IPL has the capability to realize features well below 0.1 microns.
The first of the simulation programs that were the subject of the feasibility study, called FLIGHT, calculates the trajectories of individual charged particles moving in electric and magnetic fields that are specified by input data in the form of field potentials at points in space. The other program, called COUTRAC, calculates the trajectories of bunches of charged particles, which interact with each other. Unlike FLIGHT, the optics are specified by lens parameters rather than electromagnetic field values, and the optical system is modelled as a number of lens and mask elements, separated by regions with no electromagnetic field.
The first step of the study was a walk-through of the Fortran code, together with a member of staff from IMS who was familiar with it. He explained which input and output files were used, and what data they contained, which data was stored in which common blocks and which subroutines read and wrote to them, the control flow of the program, and how to run it. The code, which was mainly Fortran 77 with a few Fortran 90 constructs, was then cleaned up, by replacing non-standard language features with equivalent standard ones, so that the two programs would compile and run on both Solaris and Linux systems, and so they could be processed by the IDA interprocedural dependency analysis tool. Next the programs were run under both Solaris and Linux, using test data supplied by IMS, to verify that the results were the same as those produced by the programs when running under Microsoft Windows on systems at IMS, and to profile their execution times. On the face of it, both codes were embarrassingly parallel, calculating the motion of individual particles or of bunches of particles totally independently, and so the obvious parallelization strategy was a process farm. The IDA tool was used to check whether there were any dependencies that would invalidate this strategy, but none were found. Finally, the expected performance of parallel versions of the codes using process farms were estimated, based on the performance measurments made for the sequential versions of the code, and on knowledge of the performance of the communication networks for the Solaris and Linux systems. The results were expressed as equations for the expected execution times, parametrized in terms of the number of processors and the number of particles or bunches of particles to be processed.
On the basis of these results, it was concluded by IMS that parallel versions of their codes, running on a small cluster of Linux systems, could provide the performance improvement they needed, and VCPC was asked to prepare an offer for a continuation of the work, to assist in the acquisition of a cluster, and to assess the cost of parallelization.