Publicação
Efficient modelling of liquid surfaces on multi-core CPU and Xeon Phi devices
| Resumo: | The assembly of miniature electronic components requires an adequate scale of the size of the welding terminators in printed circuit boards to minimize the stresses due to deformation. An optimum terminator layout minimizes the surface tension of the liquid solder, but requires efficient simulation algorithms to compute the results in an acceptable time slot. Current Surface Evolver is a software tool to study surfaces, shaped by surface tension and other energies, and its execution efficiency can be improved to take advantage of shared memory systems based on multi-core and many-core computing devices. This dissertation aims to analyze the Surface Evolver, identifying the computational bottlenecks and working on solutions to improve the overall performance of the application. Parallel algorithms were developed to explore the architectural features of current multi-core and many-core computing devices namely the Xeon Phi, and including the growing vectorization features of newer processing devices. After an analysis of the application and its profiling, the original data structure was identified as the critical bottleneck for software performance: it is implemented with linked lists, which prevents the use of the vectorization features of current devices and leads to inefficient parallel algorithms, both key elements to improve the performance of the Surface Evolver. The modification of the data structure was a key task in this dissertation. The calculation force was identified as one of the most time consuming tasks of Surface Evolver and it was the target function of this work. This algorithm iterates over all vertices, edges and faces so is a good example to conclude how vectorization and parallelism affects the performance of simulation software used in the variety fields of science and engineering. In the end of this work it is possible to see that vectorization can greatly improve the performance of an application, bringing significant speedups to Surface Evolver. The measured execution times are presented and discussed, throughout the various development stages of the application, aiming to analyze the impact of the application of high performance techniques on the Surface Evolver, suggesting yet further future improvements that were well identified in the end of this work. |
|---|---|
| Autores principais: | Araújo, Bruno Tiago Abreu de |
| Assunto: | Engenharia e Tecnologia::Engenharia Eletrotécnica, Eletrónica e Informática |
| Ano: | 2015 |
| País: | Portugal |
| Tipo de documento: | dissertação de mestrado |
| Tipo de acesso: | acesso aberto |
| Instituição associada: | Universidade do Minho |
| Idioma: | inglês |
| Origem: | RepositóriUM - Universidade do Minho |
| Resumo: | The assembly of miniature electronic components requires an adequate scale of the size of the welding terminators in printed circuit boards to minimize the stresses due to deformation. An optimum terminator layout minimizes the surface tension of the liquid solder, but requires efficient simulation algorithms to compute the results in an acceptable time slot. Current Surface Evolver is a software tool to study surfaces, shaped by surface tension and other energies, and its execution efficiency can be improved to take advantage of shared memory systems based on multi-core and many-core computing devices. This dissertation aims to analyze the Surface Evolver, identifying the computational bottlenecks and working on solutions to improve the overall performance of the application. Parallel algorithms were developed to explore the architectural features of current multi-core and many-core computing devices namely the Xeon Phi, and including the growing vectorization features of newer processing devices. After an analysis of the application and its profiling, the original data structure was identified as the critical bottleneck for software performance: it is implemented with linked lists, which prevents the use of the vectorization features of current devices and leads to inefficient parallel algorithms, both key elements to improve the performance of the Surface Evolver. The modification of the data structure was a key task in this dissertation. The calculation force was identified as one of the most time consuming tasks of Surface Evolver and it was the target function of this work. This algorithm iterates over all vertices, edges and faces so is a good example to conclude how vectorization and parallelism affects the performance of simulation software used in the variety fields of science and engineering. In the end of this work it is possible to see that vectorization can greatly improve the performance of an application, bringing significant speedups to Surface Evolver. The measured execution times are presented and discussed, throughout the various development stages of the application, aiming to analyze the impact of the application of high performance techniques on the Surface Evolver, suggesting yet further future improvements that were well identified in the end of this work. |
|---|