Programación Funcional Multi-Core y Many-Core del Método de Red de Vórtices Bidimensional

Mariano P. Ameijeiras

Abstract


En los últimos años, se ha extendido la utilización de técnicas de programación paralela que permitieran una disminución en el tiempo de resolución de algoritmos numéricos y un mejor aprovechamiento de hardware haciendo uso de arquitecturas redundantes en CPU (Central Processing Unit) y GPU (Graphic Processing Unit). En este informe se implementan las técnicas de programación secuencial, Multi-Core y OpenCL-GPGPU (General-Purpose Computing on Graphics Processing Units) en el software Wolfram Mathematica, para la solución de un problema de determinación de cargas circulatorias sobre una placa plana que se mueve a una velocidad V con un determinado ángulo α (de ataque) por un fluido incompresible, no viscoso (irrotacional) y sobre la que se inducen además acciones debidas a vórtices libres (estela) a través del tiempo. El método utilizado es red de vórtices (VLM, Vortice-Lattice Method). En este método, la parte computacionalmente más intensiva se debe a la evaluación de interacción de vorticidad, modelada mediante la ley de Biot–Savart. Esta ley, dentro del método, resulta altamente paralelizable sobre SIMD (Single Instruction, Multiple Data). De lo expuesto, se implementan rutinas de medición y comparación secuenciales, paralelas sobre CPU (con y sin HyperThreading y con granulometría gruesa y fina), paralelas sobre GPU e híbridas y se comparan los resultados obtenidos. Se muestran en detalle las implementaciones realizadas. El código desarrollado para GPU muestra reducciones de tiempos de análisis de hasta 15X frente a cómputos con núcleo simple en el problema completo y mayores si se aísla el módulo de Biot-Savart.

Full Text:

PDF



Asociación Argentina de Mecánica Computacional
Güemes 3450
S3000GLN Santa Fe, Argentina
Phone: 54-342-4511594 / 4511595 Int. 1006
Fax: 54-342-4511169
E-mail: amca(at)santafe-conicet.gov.ar
ISSN 2591-3522