%0 Journal Article %T Cloud Computing for Rigorous Coupled-Wave Analysis %A N. L. Kazanskiy %A P. G. Serafimovich %J Advances in Optical Technologies %D 2012 %I Hindawi Publishing Corporation %R 10.1155/2012/398341 %X Design and analysis of complex nanophotonic and nanoelectronic structures require significant computing resources. Cloud computing infrastructure allows distributed parallel applications to achieve greater scalability and fault tolerance. The problems of effective use of high-performance computing systems for modeling and simulation of subwavelength diffraction gratings are considered. Rigorous coupled-wave analysis (RCWA) is adapted to cloud computing environment. In order to accomplish this, data flow of the RCWA is analyzed and CPU-intensive operations are converted to data-intensive operations. The generated data sets are structured in accordance with the requirements of MapReduce technology. 1. Introduction In recent years there has been a steady increase in the research and development activity in the nanoscale fabrication area. Optical methods are widely used to characterize nanoelectronic and optimize nanophotonic structures [1¨C4]. When the characteristic size of the nanostructure is comparable to the wavelength of the used light, the conventional scalar diffraction methods become inadequate. Therefore, rigorous Maxwell¡¯s electromagnetic theory should be adopted to analyze such structures. With the advances of computer technology, many numerical techniques have been developed to rigorously solve the diffraction problem. Rigorous-coupled wave analysis (RCWA) [5¨C10] has been frequently used to solve the problem of electromagnetic wave diffraction by periodic structures. Solving optimization and scatterometry problems may require millions of diffraction pattern evaluations for each possible combination of geometric structure and incident light parameters. Computational cost estimate shows that these problems would clearly call for supercomputing capacity. Thus, current computational tasks of nanostructure analysis generate ever-higher demands on the methods used for parallel computing and data storage [11, 12]. The developed applications should work efficiently on multicore and multiprocessor systems. An implementation of MPI (message passing interface) is the traditional means of creating such applications [13]. MPI provides a highly flexible ability to develop applications that address specific requirements of the algorithm structure and the used computing infrastructure. However, this ability makes it necessary for developers to implement some of the low-level services. Compared with MPI, MapReduce programming paradigm for cloud computing [14] provides higher level of abstraction for the developer of parallel applications. On the one hand, %U http://www.hindawi.com/journals/aot/2012/398341/