Implementaciones paralelas para un problema de control de inventarios de productos perecederos Alejandro G. Alcoba, Eligius M.T. Hendrix, Inmaculada Garc´ ıa 1 , Gloria Ortega 2 Resumen — En este trabajo se analizan y eval´ uan dos implementaciones de un algoritmo de optimizaci´ on para un problema de control de inventarios de pro- ductos perecederos. Las implementaciones se han lle- vado a cabo utilizando una arquitectura heterog´ enea donde cada nodo est´ a compuesto por varios multicores y varias GPUs. Las versiones paralelas que se han de- sarrollado son: (1) una versi´ on MPI-PTHREADS en la que se extrae el paralelismo tanto a nivel de proceso MPI como a nivel de hilo y (2) una versi´on multiGPU en la que se obtiene el paralelismo a nivel de pro- ceso MPI y a nivel de cores de GPU. Este algoritmo puede ser descompuesto f´ acilmente en un conjunto de tareas que no presentan ninguna dependencia entre ı. Sin embargo, la carga computacional asociada a cada una de las tareas es diferente y el problema del reparto de las tareas entre los elementos de proceso se puede modelar como un problema de Bin Packing. Ello implica que la selecci´ on del conjunto de tareas asociadas a cada una de las unidades de computaci´on requiere del dise˜ no de heur´ ısticas que sean capaces de balancear la carga eficientemente y de forma est´ atica. En este trabajo hemos analizado y evaluado varias heur´ ısticas. Finalmente, la mejor heur´ ıstica ha sido la utilizada en la implementaci´ on paralela del algo- ritmo de control de inventarios que ha sido evaluado en la versi´ on MPI-PTHREADS y en la versi´ on multi- GPU. Para la implementaci´on MPI-PTHREADS los resultados obtenidos muestran una buena escalabili- dad mientras que las versi´on MultiGPU para el ejem- plo que se ha evaluado deja de ser eficiente cuando se usan mas de 2 GPUs. Palabras clave — Multihilo, Multi-GPU, Bin Packing, Monte-Carlo, inventarios, productos perecederos. I. Introducci´ on E L objetivo de este trabajo consiste en determi- nar hasta que punto el uso de una arquitec- tura heterog´ enea (multicore-multiGPU) facilita la resoluci´on de un problema de optimizaci´ on del con- trol de inventarios de productos perecederos. Pre- tendemos aprovechar la capacidad computacional de estas arquitecturas para obtener soluciones mas ex- actas, para ejemplos mas pesados desde el punto de vista de la computaci´ on, manteniendo tiempos de re- spuesta aceptables. El problema del control de inven- tarios queda definido a lo largo de una serie finita de T periodos de tiempo en los que se ha de satisfacer la demanda (estoc´ astica) de un determinado producto perecedero que desde que se produce tiene una vida ´ util de J periodos. En el modelado de este pro- blema se supone que la distribuci´ on se realiza sigu- iendo la pol´ ıtica de distribuci´ on FIFO, entregando 1 Computer Architecture, Universidad de M´alaga. Cam- pus de Excelencia Internacional Andaluc´ ıa Tech, e-mail: {agutierreza,eligius,igarciaf}@uma.es 2 Informatics, Univ. of Almer´ ıa, Agrifood Campus of Int. Excell., ceiA3, e-mail: gloriaortega@ual.es el producto demandado con mayor antig¨ uedad. Se supone, adem´ as, que la demanda que no se satisfaga en un periodo queda perdida, no pudi´ endose acumu- lar al periodo siguiente. La soluci´ on a este problema consiste en encontrar que cantidades de pedido a lo largo de todos los periodos resulta ´ optima, en el sen- tido de minimizar el coste asociado a la producci´ on, distribuci´ on, almacenamiento y desecho de los pro- ductos que sobrepasen su vida ´ util. Actualmente, las arquitecturas de computaci´ on de altas prestaciones m´as extendidas son las platafor- mas heterog´ eneas basadas en sistemas de memoria distribuida, donde cada nodo tiene una arquitectura multicore que podr´ ıa albergar un n´ umero distinto de cores [1]. Por lo tanto, las implementaciones parale- las tienen que ser adaptadas para poder ser ejecu- tadas en dichas arquitecturas heterog´ eneas. En este contexto, es necesario tener un conocimiento detal- lado tanto del algoritmo a paralelizar como de los recursos computacionales que se van a utilizar para laimplementaci´on[2]. Adem´ as, a estas arquitecturas se les pueden incorporar aceleradores, como son FP- GAS, GPUs, coprocesadores Intel Xeon Phi, etc. En concreto, en el problema del control de inventario para productos perecederos se ha optado por la com- binaci´ondecl´ usteres de Multi-GPUs. De este modo, el uso de plataformas masivamente paralelas (GPUs) permite la aceleraci´on de las tareas computacional- mente m´as costosas, porque estas unidades tienen mucha potencia de c´ alculo para los esquemas de com- putaci´ on vectorial. De forma adicional, el uso de plataformas de memoria distribuida permite obtener unos resultados m´as precisos debido a que el uso de computaci´ on paralela permite incrementar el n´ umero de simulaciones realizadas para resolver un caso par- ticular sin que el tiempo de ejecuci´on se incremente. El modelo de computaci´ on paralela asociado a este problema se puede describir en t´ erminos de un con- junto de conjunto de tareas que no presentan depen- dencias entre s´ ı. Sin embargo, la carga computa- cional de cada una de estas tareas es variable y por lo tanto pueden aparecer problemas de desbalanceo de la carga si se hace un reparto de la carga a ciegas. Este problema de asignaci´on de tareas a elementos de procesamiento se conoce en la literatura de comple- jidad como problema de Bin packing [3]. Dado que es un problema NP-Completo, se han desarrollado varias heur´ ısticas que permiten tener una soluci´ on en un tiempo razonable. El resto del trabajo se organiza de este modo. La