A New Parallel Version of the DDSCAT Code for Electromagnetic Scattering from Big Targets
NEW YORK UNIV NY
Pagination or Media Count:
We have modified the publicly available electromagnetic scattering code called DDSCAT to handle bigger targets with shorter execution times than the original code. A big target is one whose sphere equivalent radius is large compared to the incident wavelength. DDSCAT uses the discrete-dipole approximation and an accurate result requires the spacing between dipoles to be small relative to the wavelength. This requirement, along with the big target size, implies that the number of discrete grid cells defining the computational grid box surrounding the target must be large. The memory requirement is thus significant and the execution time long. The original version of the code cannot handle large enough targets that we would like to consider because they require memory exceeding what is available on a single node of our cluster and execution time extending to days. We have removed two limitations of the original version of the code. First, to speed up the execution involving multiple target orientations, the original code assigned one, but only one, MPI process to each independent orientation. We surmount this limitation by assigning each orientation a team of processes. Second, the original code allocated all the memory for the full problem for each MPI process. We surmount this limitation by decomposing the data structures across the members of a team. With these changes, the new version can handle much bigger targets. Moreover, it exhibits strong scaling for xed problem size. The execution time decreases very nearly 1p as the processor count p increases. Execution time measured in days with the original code can now be reduced to fractions of an hour.
- Radiofrequency Wave Propagation