Mathematics and Statistics Development of numerical simulation codes in parallel comput- ing environments
Oscar Salas · 2007
We present our experiences in numerical simulation on HPC environements, using both distributed memory and shared memory architectures. With regard of distributed memory architectures we present the implementation of a preconditioner based on domain decomposition method. The algorithm is analysed in order to highlight the intrinsic parallelism and to evaluate the portability and the performances on Beowolf clusters. With regard of shared memory architectures we study the parallelization of an existing serial code for numerical simulation of nanometric MOSFET devices. The porting required a deep analysis of both the algorithm and the code, in order to find out the regions where the parallelism can be successfully exploited. Scientific and commercial applications are providing a great driving force in the development of faster computers. Example applications include: data mining, oil exploration, web search engines, web based business services, advanced graphics and virtual reality, and collaborative work environments. These applications require the processing of large amounts of data in sophisticated ways. The purpose of this Thesis is to describe the different approaches to the development in parallel environment of numerical simulation codes. A deep study of the numerical approximation schemes is required in order to find their intrinsic parallel properties and to determine the proper parallel programming model to be used in the implementation. Moreover the knowledge of the HPC architectures, of its specifications and of the programming techniques and the development tools allow an efficient and robust implementation of the code. In this work we consider two different experiences in the development of parallel codes: - The implementation ex-novo of an algorithm in a distributed memory HPC environment.