Creation of software implemented on GPU for simulation of propagation of waves and fluids in different environments

2017 
La investigacion en los campos de fisica e ingenieria implica la necesidad de utilizar conocimientos muy tecnicos y especificos. Esto genera el requisito de utilizar un gran numero de tecnologias especiales para poder realizar los calculos necesarios y poder obtener un resultado aproximado del experimento o investigacion. Para reproducir los fenomenos fisicos que ocurren en la naturaleza se necesitan estudiar una gran cantidad de datos, provocando asi la necesidad de realizar muchos calculos para obtener los resultados finales buscados. Una vez obtenidos estos resultados, se debe decidir si se consideran favorables o desfavorables y si el estudio alcanza los objetivos esperados. En caso de descartar los resultados, los recursos y el tiempo invertido en la investigacion pueden suponer una gran perdida para el proyecto. Una manera de evitar este problema es la utilizacion de simuladores para predecir los resultados aproximados de la investigacion. Los simuladores estudian una gran cantidad de informacion, lo que puede provocar que, aunque se ahorren recursos y dinero, aumente notablemente el tiempo necesario para obtener dichos resultados. Por estas razones, el presente Proyecto de Fin de Grado tiene como objetivo crear dos programas que permitan la simulacion de ondas electromagneticas, de calor y de sonido dentro de una habitacion. El conocimiento fisico aplicado parte de dos ideas principales: la propagacion del calor y la propagacion de las ondas en un determinado entorno. Ademas, se describe la forma de creacion de un software para simular fluidos en funcion de los datos necesarios a representar. Actualmente hay muchos programas de simulacion basados en los procesos fisicos elegidos en este proyecto, pero la gran mayoria de ellos utiliza la unidad central de procesamiento (CPU) como procesador principal para realizar los calculos requeridos, por lo que el tiempo invertido para obtener los resultados puede ser muy grande. Por ello, se ha decidido utilizar tecnologias novedosas para la creacion de los softwares, consiguiendo asi reducir el tiempo de procesamiento de los datos y el tiempo necesario para representar los resultados. Estas tecnologias son el estandar OpenGL y la arquitectura CUDA, ambas utilizan la unidad de procesamiento grafico (GPU) en lugar de utilizar la CPU. El estandar OpenGL se utiliza para generar graficos en 2D y 3D utilizando la tarjeta grafica a partir de geometrias sencillas. Algunos ejemplos de uso de esta tecnologia son la realidad virtual, simuladores de vuelo o desarrollo de videojuegos. La arquitectura CUDA es una tecnologia desarrollada y utilizada por la empresa NVIDIA sobre sus tarjetas graficas, la cual permite el uso de miles de hilos trabajando en paralelo para realizar los calculos de una forma mucho mas rapida. Otra ventaja de esta tecnologia es la utilizacion de memoria compartida por los hilos, consiguiendo asi un menor tiempo de acceso de memoria entre ellos. Abstract: Engineering and physical research involves the need to use very specific knowledge, which causes the requirement to have a large number of special technologies to perform all expected and necessary calculations. Physical phenomena need a lot of data, which causes a lot of calculations to obtain the final results sought. Once these results have been obtained, it is decided whether they are considered favourable or unfavourable and if the study achieves the expected objectives. In case the results are discarded, the time and resources invested in the research can be a great loss for this. Therefore, a good way to avoid this is to use simulators that can predict the approximate results of the research. These simulations can take a great deal of time to research which causes a slowdown in this, despite the resources it saves. Because of it, this Bachelor’s Thesis aims to create two programs that allow the simulation of electromagnetic, heat and sound waves. The applied physical knowledge starts from two main ideas, the propagation of heat inside a room and the propagation of waves in a certain environment. Also, the implementation of a fluid program will be commented in the project, but not implemented. There are currently many simulation programs based on the physical processes chosen in the present project, but most of them use CPU processing, which causes the large amounts of time already commented on to obtain the final results. Therefore, it has been decided to use novel technologies that allow the creation of fast software to perform the necessary calculations, thus achieving a reduction in the waiting time to obtain the simulated results. These technologies are the OpenGL standard and the CUDA architecture, both used by the Graphics Processor Unit (GPU). The OpenGL standard is used in different applications to generate graphs in 2D and 3D using the graphics card from simple geometries. Some examples of use are virtual reality, flight simulations or video game development. The CUDA architecture is a technology created by the company NVIDIA and allows the use of thousands of threads to calculate the needs provided by the program or the application. Another great advantage of this technology is the shared memory that it offers to the threads, obtaining a shorter access time to memory.
    • Correction
    • Source
    • Cite
    • Save
    • Machine Reading By IdeaReader
    0
    References
    0
    Citations
    NaN
    KQI
    []