The EcoPot pot with water inside, over a metal grate.

En busca de reducción de tiempos de simulación

En busca de reducción de tiempos de simulación

El proyecto EcoPot tiene como objetivo encontrar geometrías de recipientes más eficientes para cocinar con fuego de leña, previamente recolectada, al aire libre, como aún lo hacen mil millones de personas en el mundo.

Para ello, se parte de ciertas suposiciones que permiten generar modelos geométricos en formato CAD. Esperamos explorar aletas de transferencia de calor, diferentes curvaturas del recipiente y el diseño de la tapa.Nuestro objetivo es diseñar un recipiente que requiera recolectar menos leña.

Una vez creadas estas geometrías, se evalúa su eficiencia mediante simulaciones en OpenFOAM. El principal inconveniente es que dichas simulaciones requieren mucho tiempo de procesamiento.

Inicialmente, el proyecto se desarrolló en una MacBook Pro con 12 núcleos M4-Pro, pero las simulaciones podían tardar días, e incluso semanas. Por esta razón, se optó por utilizar el servicio AWS EC2, que permite usar computadoras virtuales de Amazon.

Se comenzó con una instancia de 16 CPU (32 vCPU), pero debido a la complejidad de los casos simulados, los tiempos seguían siendo elevados.

Con el objetivo de reducir los tiempos de ejecución, se exploró la posibilidad de utilizar una instancia de 64 CPU (128 vCPU), y se realizó un benchmarking.

Benchmarking

Para este análisis se utilizó el tutorial coolingSphere, incluido en OpenFOAM 12 (versión openfoam.org). Se eligió este caso porque presenta características similares a los que se desean simular.

Se modificó el tiempo de simulación de 1 s a 30 s en el archivo controlDict, considerando que este intervalo permitiría obtener conclusiones más representativas y evidenciar diferencias en el desempeño.

Asimismo, se ajustó el diccionario decomposeParDict para habilitar el uso del número deseado de núcleos. Los resultados obtenidos se presentan en la siguiente tabla:

CPU Table, clock time in relation to time step.

Es importante remarcar que se considera el ClockTime y no el ExecutionTime debido a que estos eran muy similares. Estos fueron graficados y se observaron las líneas de tendencias:

Benchmark Clock Time over Time Step data points plotted.

Se observa que la diferencia entre ambas configuraciones no es significativa, aproximadamente 500 s, una diferencia despreciable.

Para complementar el análisis, se calcularon las ecuaciones de las líneas de tendencia de cada caso, con el fin de estimar el tiempo total requerido para una simulación más extensa.

Se observan las fórmulas de las líneas de tendencia de las rectas en el grafico:

16-CPU:  y = 84.828x – 2.6345

64-CPU: y = 67.531x + 1.3655

donde x representa el tiempo simulado e y el tiempo de ejecución.

Costos

Si se quiere simular 2000s el tiempo estimado de ejecución sería:

16-CPU: 47.13 h

64-CPU: 37.52 h

Considerando los costos de AWS (1.3 USD/h para 16 CPU y 5 USD/h para 64 CPU), el gasto total sería:

16 CPU: 61.26 USD

64 CPU: 187.59 USD

Esto representa una diferencia de costo muy significativa para una reducción de solo 10 horas en el tiempo de simulación.

En conclusión, se continuará explorando alternativas para acelerar las simulaciones, priorizando la relación entre costo y rendimiento en el contexto de este proyecto. Para OpenFOAM en el caso Cooling Sphere, usar más de 16 núcleos no proporciona una aceleración útil ni lineal.

Interested in joining the EcoPot project? Reach out to Public Invention Founder and Head Coach Robert Read, or Volunteer Coordinator Miriam Castillo.

If interested in spreading the word about this project, feel free to use the English translation of this article.

Leave a Comment

Your email address will not be published. Required fields are marked *