You are on page 1of 10

D-O

PROGRAMACIÓN DE LA PRODUCCIÓN EN UNA EMPRESA


ALIMENTARIA, UTILIZANDO LA PARALELIZACIÓN
EN LOS CÁLCULOS
8
JOAQUÍN BAUTISTA
RAMÓN COMPANYS
ALBERT COROMINAS
MANUEL MATEO
RAFAEL PASTOR
EUGENI ROURES
UNIVERSITAT POLITECNICA DE CATALUNYA. BARCELONA

Resumen: Departamento de Estadística e Investigación Ope-


rativa y el Departamento de Organización de Em-
Una empresa del sector cárnico, que produce bajo presas. Esta colaboración se ha llevado a cabo en
pedido, disponía de un algoritmo para programar la el marco de un proyecto ESPRIT, llamado Sirius, im-
producción. La complejidad y variedad en los re- pulsado por la Comunidad Europea e incluido en el
cursos y los procesos, además del carácter perece- programa PACOS (Parallel Computing for Spain).
dero del material, dificultaba alcanzar respuestas sa-
tisfactorias en tiempos aceptables. El objetivo principal de este proyecto se centraba
Con el fin de reducir los tiempos de cálculo, se con- en la reducción de los tiempos de ejecución del en-
sideró el uso de la paralelización. El algoritmo dise- tonces vigente algoritmo de carga de máquinas,
ñado calcula en paralelo la asignación de operacio- para lo cual se propuso adaptar el algoritmo se-
nes a los diferentes recursos productivos, y se ha cuencial a una nueva versión que realizase cálculos
desarrollado en el marco de los proyectos PACOS en paralelo. Además, se incluían otros objetivos
(Parallel Computing for Spain). como: establecer unas reglas de prioridad en el lan-
zamiento y en la secuenciación de las operaciones,
Palabras clave: programación de la producción, cál- independizar el algoritmo de la plataforma donde
culo paralelo, PVM. debía ejecutarse o facilitar la interacción entre usua-
rio y algoritmo mediante nuevas técnicas de repre-
sentación gráfica. Estos objetivos respondían a la
1. Introducción cuestión semanal a que se enfrentaban los planifica-
dores de esta empresa: cómo fabricar los pedidos
En este artículo se expone una aplicación práctica requeridos a mínimo coste , para lo cual debían de-
en el campo de la planificación de la producción en terminar qué tareas realizar en cada uno de los re-
una planta de Hesperia de Alimentación S.A., em- cursos productivos de su fábrica y cuándo.
presa del sector cárnico, que produce toda clase de La situación descrita puede enmarcarse en el ámbi-
productos derivados de la carne. El proyecto ha to de los problemas de “job-shop”, aunque con di-
reunido a cuatro socios: el usuario final (Hesperia versos matices que incrementan su dificultad de
de Alimentación S.A.),una empresa dedicada a soft- tratamiento respecto al caso general. Basándose en
ware (Neosystems Informática S.A.) y dos departa- anteriores trabajos realizados por algunos de los
mentos de la Universitat Politècnica de Catalunya,el autores en el campo de la programación y secuen-
ciación de órdenes de producción, y adaptando a nes, salchichas, fiambres, etc. (figura 1). Su planta de
este caso los procedimientos de resolución de los producción se compone de diversas líneas especia-
problemas “job-shop”[2], se ha comprobado cómo lizadas, aunque se utilizan también recursos comu-
los problemas de programación de operaciones en nes, lo que obliga a considerarlos todos a la vez en
este tipo de industrias se pueden abordar con re- el proceso de programación.
sultados satisfactorios utilizando procedimientos Los recursos productivos actualmente tratados
heurísticos. son del orden de 130, sólo máquinas, cuya disponi-
El artículo está organizado como se indica a conti- bilidad se controla mediante "calendarios" que indi-
nuación. En la sección 2 se describen las característi- can sus períodos activos de fabricación. De todas
cas del sistema productivo. En la sección 3 se presen- formas, el algoritmo se ha desarrollado para opti-
ta el algoritmo utilizado en la programación de la pro- mizar no tan sólo máquinas, sino también el perso-
ducción y en la siguiente sección se explica la incor- nal requerido.
poración del paralelismo en el algoritmo y sus conse- Los recursos productivos que realizan las operacio-
cuencias. Ya en la sección 5, se exponen algunos re- nes de transformación de la carne y los demás in-
sultados al aplicar el nuevo algoritmo sobre datos re- gredientes en productos finales pueden agruparse
ales. Finalmente, en la sección 6 se expresan algunas básicamente en tres tipos:
conclusiones obtenidas a partir de este proyecto.
● los recursos propios de la planta y capaces de re-
alizar una única actividad;
2. El sistema de producción ● llos recursos “compartidos”, también propios, y
capaces de realizar más de una de actividad si-
En primer lugar, se ofrece una descripción del siste- multáneamente;
ma de producción sobre el cual debe realizarse la ● ly finalmente, los recursos productivos externos,
programación, para comprender correctamente las que se hallan físicamente fuera de la planta.
particularidades tratadas por el algoritmo imple-
mentado. Cabe destacar que la asignación de actividades si-
La fábrica, ubicada en Cataluña, produce una gran multáneas a un recurso compartido requiere una
variedad de productos derivados de la carne:jamo- total compatibilidad entre todas ellas.

DESHUESADORAS
carne salchichas
MÁQUINAS
EN LÍNEA
MACERACIONES fiambres

otros SECADEROS
ingredientes jamones
EMPAQUETADORAS

Figura 1. Proceso productivo en la planta

90
La elaboración de cada producto sigue uno de los misma función en el sistema productivo, el algorit-
procesos productivos definidos (en este momento, mo trabaja con grupos productivos, listas de recur-
unos 30). Los procesos de producción presentan sos agrupados de acuerdo con las funciones que
gran diversidad en su número de actividades (desde puedan desempeñar. Cada una de las operaciones
cuatro o cinco hasta unas veinte) por la amplia va- se relaciona con uno de estos grupos, de entre los
riedad de productos. Las líneas de producción en cuales se debe escoger un recurso para realizar
esta fábrica, como en otras, introducen relaciones dicha actividad.
de precedencia entre actividades, parte indivisible El aspecto clave del algoritmo de programación es
del proceso productivo; además, al existir recursos la elección del recurso del grupo productivo al cual
con capacidad muy limitada y actividades muy lar- asignar una actividad. El nexo de unión entre activi-
gas, éstas deben realizarse simultáneamente en va- dades y recursos productivos son aspectos tecno-
rios recursos. En esta planta se denomina modula- lógicos, como pueden ser :
ridad a la división de la cantidad total de un pro-
ducto en diversas partes, para que se pueda reali- ● Las capacidades totales y de cada compartimen-
zar una actividad a la vez en diversos recursos.El re- to de los recursos.
parto de una cantidad en dichos módulos es una ● Los límites de temperatura en algunas actividades.
tarea compleja; véase el ejemplo de la cocción de ● Las dimensiones de los recursos.
2.000 Kg. al final de este punto. ● Los tiempos para efectuar una actividad con un
Presentados los recursos disponibles y el proceso recurso.
de transformación de la carne y las demás materias Los aspectos tecnológicos son condiciones para
primas en los productos finales, a continuación se comprobar la total compatibilidad entre las carac-
tratan las órdenes de producción, cuyo número es terísticas tecnológicas de un recurso y las requeri-
actualmente de unas 80 semanales, aunque se es- das por una actividad que se le asigna, o bien la
pera incrementarlo por el uso eficiente de los re- compatibilidad entre dos o más actividades que
cursos, al aplicar la nueva manera de programar. compartan el mismo recurso durante un cierto pe-
Las órdenes de fabricación se descomponen en ac- ríodo de tiempo.
tividades, sus componentes básicos,que pueden di- Imagínese, por ejemplo, que se quieren cocer 2.000
vidirse en “dinámicas” y “estáticas”o modulares,tér- Kg. de un producto, cuyo tiempo de cocción en
minos usados en la fábrica para referirse a la obra condiciones normales son 5 horas y que se dispo-
en curso. En las actividades dinámicas, la duración ne de dos recursos (A y B) para realizar esta activi-
de la actividad es directamente proporcional a la dad:
cantidad a fabricar; en cambio, en las actividades es-
táticas o modulares, realizables en varios recursos ● Recurso A: horno con capacidad para 800 Kg. de
llamados módulos, la duración depende básicamen- producto, separado en dos compartimentos de
te de la capacidad física y de la cantidad aún dispo- 400 Kg. cada uno.
nible para fabricación en cada recurso. ● Recurso B: horno con una sola cavidad con ca-
Como una actividad puede asignarse habitualmen- pacidad para 150 Kg.de producto, aunque la coc-
te a varios recursos de la planta, todos con una ción dura solamente 4 horas.

Recurso A

400 Kg. Módulo 1

400 Kg. Módulo 2

400 Kg. Módulo 4

400 Kg. Módulo 5

0 1 2 3 4 5 6 7 8 9 10 11 12

91
Recurso B

150 Kg. Módulo 3

150 Kg. Módulo 6

100 Kg. Módulo 7

0 1 2 3 4 5 6 7 8 9 10 11 12

Figura 2. Ejemplo de actividad modular

Obsérvese (figura 2) como en este caso, los 2.000 Kg.a tratar se reparten en módulos de 400, 150 y 100 Kg.
respectivamente, hasta completar la cantidad total.

3. El algoritmo de carga de máquinas PRINCIPALES ETAPAS EN EL ALGORITMO:

El objetivo principal del algoritmo de carga de má- El algoritmo de carga de máquinas original consta
quinas es la programación de las órdenes de fabri- de cinco partes:
cación, aunque no menos importante, es lograrlo
en un tiempo lo más corto posible. 1. Preparar los datos para los cálculos de progra-
Algunas características que la programación en los mación de las órdenes de fabricación. Obtener
recursos de la fábrica considera son: las precedencias entre actividades, para cada
orden de producción a incluir en el programa.
● la asignación de una actividad o un módulo de 2. Actualizar la estructura productiva para iniciar la
una actividad dentro de una estructura de pro- programación: determinar qué recursos están
ducción de capacidad limitada, ocupados por actividades ya programadas y
● las órdenes de fabricación tratadas globalmente, cuándo estarán disponibles dichos recursos.
siguiendo unas prioridades específicas en una pri- 3. Determinación de la secuencia de carga de las
mera etapa de la programación, actividades de las órdenes de fabricación: esta-
● las actividades de una orden asignadas en se- bler una secuencia de carga entre órdenes y
cuencia a los recursos disponibles para cada entre actividades en una misma orden, para rea-
caso, lizar la programación en la siguiente fase.
● posibles incompatibilidades tecnológicas entre las 4. Programación de las actividades incluidas en las
características de los recursos y de las activida- órdenes de producción a planificar: determinar
des, en qué recurso se realizará cada actividad.El pro-
● las dependencias entre la fabricación de produc- ceso consiste en evaluar cada actividad o módu-
tos intermedios y finales. lo en todos los recursos productivos disponibles,
y según los respectivos resultados, escoger el re-
El algoritmo de carga de máquinas tiene en cuenta curso más apropiado.
los elementos presentados en la sección anterior y 5.Actualizar los datos de la carga de máquinas pro-
proporciona los resultados, la programación de la gramada.
producción, impresos en forma de boletines de tra-
bajo. El personal de la planta los utiliza para contro- El algoritmo propuesto es del tipo “dispatching”
lar la producción y anotar las incidencias, que más [2], en que el conjunto de operaciones elegibles en
tarde serán introducidas para una próxima ejecu- cada momento está constituido por el subconjunto
ción del algoritmo. Los datos se manejan en me- de las operaciones con sus precedentes ya progra-
moria durante toda la programación para optimizar madas, es decir, conocidos los instantes de inicio y
tiempo de cálculo. de finalización. Esto implica que no es necesario

92
tomar decisiones sobre las asignaciones en el ras podrían ocupar algunos recursos principales y las
mismo orden en que serán ejecutadas posterior- últimas, sufrir demoras considerables, con lo que el
mente. alimento podría deteriorarse. Esto, por supuesto,
El algoritmo de programación incorpora intervalos comportaría abandonar la programación en curso y
de carga, siendo un intervalo de carga una parte empezar de nuevo la carga de todas las actividades.
del horizonte temporal de programación (véase fi- Por tanto, esta actitud prudente en el diseño del al-
gura 3). En alguna ocasión podría considerarse un goritmo intenta evitar al máximo esta situación.
único intervalo, si se toma globalmente todo el ho- Todas las órdenes implicadas en un programa de fa-
rizonte. bricación se van cargando progresivamente en los
El intervalo de carga usado en este método de “dis- recursos. Así, todas pueden retrasarse debido a
patching” sirve para sincronizar las actividades de di- tiempos de espera entre actividades. Si se equili-
ferentes órdenes de producción y equilibrar el tiem- bran los diversos retrasos, será mucho más difícil
po total de fabricación entre ellas. Si las órdenes de que alguna orden se demore hasta el punto de so-
producción se cargasen de principio a fin, las prime- brepasar su fecha de deterioro como alimento.

Intervalo de Intervalo de Intervalo de


carga 1 carga 2 carga n
8 horas 8 horas 8 horas
HORIZONTE COMPLETO
Figura 3. Intervalos de carga

Para reducir el tiempo total de cálculo se ha traba- [5]. En este caso, se eligió PVM (Parallel Virtual Ma-
jado en dos direcciones: por un lado, en la estruc- chine) [1] para desarrollar el algoritmo paralelo,
turación adecuada de los datos necesarios para los porque permite trabajar con la llamada máquina
cálculos; y por otro, en una redefinición del algorit- virtual, que puede consistir en una red de procesa-
mo previo aprovechando las prestaciones del cál- dores UNIX heterogéneos o en una única máquina
culo en paralelo. con varios procesadores paralelos (de memoria
distribuida). PVM es un software de libre distribu-
ción, accesible desde Internet: <http://www.epm.
4. El nuevo algoritmo en paralelo ornl.gov/pvm/pvm_home.html>.
Un algoritmo puede lograr resultados similares
De las partes que componen el algoritmo, sola- tanto en un sistema multi-CPU como en un siste-
mente la cuarta incorpora el cálculo en paralelo, ya ma de múltiples máquinas (cluster).Mientras en una
que consumía más tiempo en el algoritmo secuen- situación el tiempo de transmisión de datos es
cial de partida. Esta parte consiste en la selección menor, el número de procesadores está limitado a
de una actividad de una orden de fabricación y la la disponibilidad de la máquina; en la otra, en cam-
evaluación numérica de su posible asignación a cada bio, se permite trabajar con cualquier número de
uno de los recursos donde se pueda realizar. Estas procesadores. PVM también tiene estipuladas las
evaluaciones son susceptibles de ejecutarse en pa- acciones con aquellos tipos de mensajes intercam-
ralelo porque un programa de fabricación está for- biados más a menudo [1].
mado por múltiples órdenes,a la vez integradas por Uno de los indicadores de la eficiencia de un algo-
numerosas actividades. ritmo paralelo es el speed-up, que indica la mejora
Como resultado de la evaluación de una actividad en tiempos de ejecución al pasar de una máquina
en algún recurso en que se pueda programar, se que realiza cálculos en serie a otra con varios pro-
asocia una nota a dicho recurso. Esta nota depende cesadores [6]. El “speed-up” es el cociente entre el
de factores como la ocupación del recurso, el tiem- tiempo de ejecución del algoritmo en su versión se-
po para realizar la actividad o la cantidad de pro- cuencial y el tiempo de ejecución del algoritmo en
ducto a fabricar. Una vez evaluados todos los re- su versión paralela, con n procesadores. Este valor
cursos, se escoge aquél con una mejor nota. debería aproximarse idealmente a n. Como con-
Para lanzar en paralelo estas tareas, lo primero es clusión, un algoritmo será tanto mejor cuanto más
seleccionar el software que permita llevarlo a cabo próximos sean los valores de speed-up al número

93
de procesadores en la máquina virtual. módulo o actividad anterior.
Otro aspecto a considerar al construir aplicaciones 2. Segundo nivel:paralelismo en las evaluaciones de
en PVM es el modelo de la estructura de cálculos. actividades y de órdenes en cada uno de los re-
Hay dos estructuras típicas [5] en aplicaciones cursos. Las actividades de diferentes órdenes
donde interviene el paralelismo: el modelo SPMD pueden ocasionar conflictos si los cálculos se re-
(Single Process Multiple Data), en que todos los fieren al mismo recurso. Esta posibilidad com-
procesos en paralelo son idénticos, aunque cada porta asegurar que la información está actualiza-
uno trabaja sobre un conjunto de datos diferentes; da cuando se asigna una actividad.
y el modelo Master/Slave (maestro y esclavos), en
el cual un conjunto de procesos esclavos trabaja en
una tarea para uno o varios maestros. PRIMER NIVEL DE PARALELISMO
En el presente proyecto, se optó por el modelo Si sólo se considera el primer nivel de paralelismo,
Master/Slave, con un conjunto de procesos esclavos las órdenes se cargan según una secuencia previa-
llevan a cabo tareas para un solo maestro, que las mente fijada. Por otro lado, y debido a las relacio-
distribuye [4].Así pues, antes de iniciar el desarrollo nes de precedencia, las actividades de cada orden
del nuevo algoritmo, debían definirse las funciones se cargan ordenadamente. Así pues, en el curso de
del proceso maestro y de los procesos esclavos. la ejecución del algoritmo los procesos esclavos
Las funciones del proceso maestro básicamente evalúan, paralelamente, los recursos candidatos a
son: ser ocupados por una actividad de la orden en
curso.
● Identificar y controlar los procesadores que per- El proceso maestro, pues, debe esperar los resulta-
tenecen a la máquina virtual. dos de todas las evaluaciones de una actividad
● Repartir entre los procesadores de la máquina sobre cada posible recurso. Una vez recogidos, se
virtual todas aquellas tareas de evaluación nece- selecciona el recurso más apropiado, la actividad se
sarias. carga y pueden enviarse las evaluaciones involucra-
● Recibir desde los procesos esclavos los resultados das en la siguiente actividad a los procesos escla-
de las evaluaciones. vos.
● Escoger, de acuerdo con las evaluaciones recibi- Analizando los valores del speed-up, se observó
das, el recurso productivo mejor considerado que eran relativamente bajos: la introducción del
para realizar cada actividad o módulo. cálculo en paralelo era positiva para algunas activi-
dades que podían asignarse a diversos recursos,
Las funciones de un proceso esclavo, por su parte, pero en caso de un número de recursos escaso el
son: algoritmo perdía eficiencia. Por lo tanto, el grado
de paralelismo en los cálculos debía complemen-
● Recibir información sobre una actividad y un re- t a rs e, y como consecuencia, incrementarse el
curso productivo para evaluar su posible asigna- speed-up.
ción.
● Hallar un período de tiempo de disponibilidad en
el recurso productivo para cargar la actividad. SEGUNDO NIVEL DE PARALELISMO
● Obtener el resultado de una evaluación propues- Las actividades dentro de cada orden de fabricación
ta para compararlo posteriormente con otras están ordenadas. Las órdenes siguen una secuencia,
opciones. pero no es necesario finalizar las anteriores antes
● Enviar al proceso maestro el resultado calculado. de empezar a cargar actividades de una orden.Así
pues, en el curso de ejecución del algoritmo los
Al introducir el paralelismo en este algoritmo, algu- procesos esclavos pueden evaluar, en paralelo, re-
nos condicionantes evitan que cualquier conjunto cursos candidatos para actividades de varias órde-
de cálculos pueda realizarse en paralelo. Estos as- nes.
pectos plantean que la estructura de los cálculos se El proceso maestro no debe esperar los resultados
base en los llamados niveles de paralelismo, asocia- de todas las evaluaciones de una actividad antes de
dos a las siguientes circunstancias: enviar nuevas evaluaciones de otras actividades a
los procesos esclavos,a menos que esta actividad se
1. Primer nivel: paralelismo en las evaluaciones de deba programar ya en el siguiente intervalo de
actividades en cada uno de los recursos. Las ac- carga.
tividades en una cierta orden de fabricación Este nuevo modelo de evaluación de órdenes en
deben cargarse secuencialmente. Por lo tanto, los paralelo aumentaba la eficiencia porque las diversas
cálculos referidos a una actividad o módulo no actividades implicaban mayores posibilidades de cál-
pueden comenzar si antes no ha sido cargado el culo simultáneo. Y esta eficiencia podía incremen-

94
tarse incluso más al estar programando actividades un mismo recurso, lo que conduce a veces a con-
en varios puntos de la estructura de producción, y tratiempos, recálculos en las evaluaciones. Esta can-
evitar posibles repeticiones en los cálculos,como se tidad depende del número y del tipo de procesa-
explica seguidamente. dores en que se ejecute el algoritmo. Si se analizan
los tiempos, se observa que esta incidencia apenas
perjudica la duración total.
CONFLICTOS ENTRE ÓRDENES El código del nuevo algoritmo se ha escrito en len-
DE PRODUCCIÓN guaje de programación C, y para el cálculo en pa-
En la aplicación del algoritmo pueden surgir conflic- ralelo se utilizan aquellas rutinas de paralelización
tos entre órdenes de producción en paralelo cuan- propias del software PVM (Parallel Virtual Machine).
do algunas de sus actividades compitan por el
mismo recurso. Cuando una actividad vaya a asig-
narse a un recurso, deberá comprobarse que nin- DURACIONES DE LA EJECUCIÓN
guna actividad se haya cargado en dicho recurso DEL NUEVO ALGORITMO
desde su evaluación hasta ese momento. Si el con- Reducir la duración de la ejecución del Algoritmo
texto que afecta al recurso ha cambiado, la evalua- de Carga de Máquinas de varias horas hasta no más
ción de carga podría no ser correcta. de 2 horas, y así responder ágilmente a incidencias
Ante este problema, se pueden tomar diversas al- en la planta, se ha superado ampliamente. Introdu-
ternativas [3], entre las cuales se consideraron dos: cido el cálculo en paralelo para la programación de
la primera,basada en un sistema de bloqueos de los la producción, las duraciones del algoritmo han pa-
recursos; la segunda,basada en un sistema de recál- sado a minutos, debido a varios factores.
culo de las evaluaciones. Finalmente, se optó por Para empezar, se depuró la gestión de datos redu-
esta última opción porque la relación de los tiem- ciendo sustancialmente el tiempo en operaciones
pos de cálculo (speed-up) no mejoraba sustancial- no directamente vinculadas a la programación de la
mente respecto la utilización de bloqueos y además producción,y se estructuró la memoria,a fin de dis-
se corría el riesgo de un bloqueo general del siste- poner de la información estrictamente necesaria
ma, posible al ejecutar acciones paralelas depen- para su funcionamiento en paralelo. Como último
dientes entre sí [3]. paso, quedaba la mejora fundamental en el algorit-
mo: la utilización del cálculo paralelo para obtener
más rápidamente la programación. Estos tres ele-
SISTEMA DE RECÁLCULOS mentos adecuadamente equilibrados han conduci-
El sistema de recálculos, causado por la existencia do a resultados satisfactorios, como los seguida-
de los dos niveles de paralelismo, permite evaluar mente detallados.
varias actividades, pertenecientes a más de una Los resultados facilitados se basan en la ejecución
orden de fabricación, sobre un mismo recurso. del nuevo algoritmo sobre datos referidos a cinco
Cualquier evaluación puede ser calculada en algún programaciones semanales. Esta experiencia com-
momento, aunque siempre con la posibilidad de putacional se realizó en una Silicon Graphics (con
tener que recalcularse más tarde. El recálculo ten- un procesador MIPS de 64 bits) utilizando hasta 8
drá lugar si un recurso es el más adecuado para dos procesadores actuando conjuntamente. En las
actividades diferentes que se están programando. pruebas, se evaluó la duración del algoritmo con 1,
Analizados los resultados, se observó como el 2, 4 y 8 procesadores, respectivamente. El proceso
speed-up había mejorado respecto al único nivel de maestro y el primer proceso esclavo comparten
paralelismo, aunque la presencia de intervalos de procesador ya que los períodos de actividad de
carga quizá no permitía el máximo grado de para- ambos apenas se solapan.
lelismo. El número de recálculos no era excesivo y, El proceso maestro consta básicamente de dos par-
además, era inferior normalmente al número de tes: en la primera, se capta la información necesaria
bloqueos. para la programación de la producción de los datos
almacenados en un fichero previamente generado y
las tareas se preparan para ser tratadas (en estas
5.Resultados acciones, la paralelización no interviene); en la otr a
parte, se gestiona el algoritmo en paralelo usando
El algoritmo secuencial original ha tenido que adap- el modelo de maestro y esclavos. Los tiempos co-
tarse para ser eficiente desde el punto de vista del rrespondientes a la primera parte no se consideran
paralelismo, es decir, que la cantidad de cálculos si- a efectos de “speed-up”porque no afectan a la eje-
multáneos repercuta en una reducción significativa cución en paralelo, pero sí, en cambio, al comparar
del tiempo de ejecución. Ello obliga a permitir eva- las duraciones totales de las versiones nueva y an-
luaciones simultáneas de diversas actividades sobre terior.

95
Nº procesadores 1 2 4 8

Tiempo parte inicial 3560 3955 4790 5429


Tiempo parte en paralelo 92808 63881 49828 34795
Tiempo total 96368 67836 54618 40224
Tabla 1 (en ms)

Nº procesadores 1 2 4 8

Tiempo total 96368 67836 54618 40224


Tiempo actividad maestro 1021 1091 1408 2196
Tiempo medio actividad esclavos 87292 59155 38832 17786
Tiempo actividad esclavo 1 87292 61888 47928 33365
Tiempo actividad esclavo 2 56421 40347 26778
Tiempo actividad esclavo 3 34867 21160
Tiempo actividad esclavo 4 32185 16498
Tiempo actividad esclavo 5 12904
Tiempo actividad esclavo 6 11346
Tiempo actividad esclavo 7 10378
Tiempo actividad esclavo 8 9862
Tabla 2 (en ms)

Nº procesadores 1 2 4 8

Tiempo parte inicial 3560 3955 4790 5429


Tiempo del proceso maestro (ms) 92808 63881 49828 34795
Speed-up 1,000 1,453 1,863 2,667
Utilización media del procesador 1 0,73 0,47 0,33
Tabla 3

Los tiempos de la tabla 1 son representativos del dores (procesos esclavos) aumenta, con la actual
tiempo de actividad de cada procesador, puesto cantidad de órdenes y de factores en la evaluación
que se ha incorporado una sentencia interna que de actividades, se aleja pronto del “speed-up” ideal.
recoge los tiempos de puesta en marcha y parada A la vista de los resultados, la aplicación no podría
de cada procesador. Seguidamente, se desglosa la considerarse eficiente desde el punto de vista del
duración de actividad del proceso maestro y de los paralelismo, es decir, de la utilización casi al 100% de
procesos esclavos para cada uno de los cuatro los procesadores implicados.En la siguiente tabla,se
casos: observa que al aumentar el número de procesado-
La utilización media de los procesos (% del cocien- res, se incrementa el “speed-up”, si bien con una
te entre el tiempo de utilización de los procesos tendencia a reducir la tasa de incremento:
respecto al tiempo total de ejecución) se sitúa No obstante, la empresa usuaria del algoritmo no
entre el 1% y el 6% en el proceso maestro, mien- dispone de tecnología tan potente como la utiliza-
tras que en los esclavos ronda el 90%. Estos datos da para obtener los anteriores resultados, sino de
indican que, por un lado, es sensato que el proceso un servidor, con la arquitectura y el software nece-
maestro y un proceso esclavo compartan procesa- sario para esta aplicación,con múltiples procesado-
dor, y por otro, el algoritmo paralelo tiene una es- res, dentro de una red con varios PCs también
tructura adecuada para usar los procesadores efi- equipados convenientemente. Esto implica que las
cientemente. duraciones de ejecución se incrementen sensible-
El “speed-up” real, cuando el número de procesa- mente.

96
VALIDACIÓN DE LA PROGRAMACIÓN cesadores, que varía en cada puesta en marcha del
OBTENIDA algoritmo.
Para valorar cualitativamente el algoritmo, se consi- Si se tienen en cuenta los intervalos de carga,su nú-
dera, por un lado, la programación de actividades mero suele ser bastante alto (en la fábrica es habi-
resultante de aplicar el nuevo algoritmo y, por otro, tual tomar 6 horas por intervalo), debido a unas
aquellas estadísticas surgidas de su utilización. pocas órdenes que duran muchos días. Estas pro-
gramaciones tan prolongadas están ocasionadas
por actividades realmente largas (de unos 30 días,
PROGRAMACIÓN DE LOS RECURSOS en el caso de los secaderos) en comparación con
PRODUCTIVOS las demás. Esta circunstancia resulta adversa al ob-
Los recursos productivos, definidos según las ne- jetivo de máximo grado de paralelismo.
cesidades del usuario final, siguen unos procesos ESTADÍSTICAS DEL ALGORITMO PARALELO
muy heterogéneos; esto implica gran variedad de Finalizada la ejecución del algoritmo pueden ex-
aspectos. Estudiando la ocupación media de los traerse algunos datos estadísticos para su análisis:el
recursos, fijado un número de turnos y de para- número mínimo de cálculos a repartir entre los
das por descanso del personal, se puede optimi- procesos esclavos, la cantidad de cálculos que se
zar no sólo el uso de máquinas, sino también del han repetido, etc.
personal. Al analizar la carga de trabajo en dife- El número de actividades por carga de máquinas se
rentes recursos de producción, la asignación de sitúa alrededor de unas 800, subdivididas en unos
actividades a los recursos tiene perfectamente en 5.000 módulos o entregas, valor que es variable
cuenta los criterios de capacidad disponible total, según el número de órdenes por semana en la
la capacidad por módulo (en el supuesto de re- planta. Como el número medio de recursos se sitúa
cursos modulares) y el número de módulos del entre 3 y 4, el número mínimo de cálculos a distri-
recurso. buir estará entre 14.000 y 20.000.
Según el número de órdenes de producción,la can- Por otro lado, hay una cantidad de cálculos repeti-
tidad de actividades por orden y el tipo de proce- dos porque la evaluación obtenida para una activi-
so utilizado, la duración de la carga de máquinas dad no sea representativa en el momento de la
será más corta o más larga. Sin embargo, el tiempo asignación definitiva. En este caso, la incertidumbre
total se ha reducido suficientemente para un uso en el reparto de tareas entre los esclavos no per-
frecuente del algoritmo si la fábrica requiere cam- mite controlar exhaustivamente este factor. No
bios en la programación de las órdenes de fabrica- obstante, este número de repeticiones no ha logra-
ción. do reducirse a pesar de algunos intentos encamina-
El grado de paralelismo en el algoritmo también dos a minimizarlo.
queda patente al programar órdenes con la carga Otro parámetro estadístico es el número de situa-
en curso, con actividades que deben reprogramar- ciones de espera durante la ejecución, cuando
se transcurrido un cierto tiempo de trabajo. Nor- algún proceso esclavo está libre y sin cálculos pen-
malmente se trata de actividades de órdenes rege- dientes de evaluación. Esta cantidad aumenta más
neradas a partir de antiguos archivos de programa- que linealmente cuantos más procesos esclavos se
ciones. Las asignaciones de actividades a recursos utilizan, si queda una única orden al final de un in-
en el instante inicial de la nueva carga de máquinas tervalo de carga. Sin embargo, esta cantidad de si-
se actualizan y quedan pendientes de programar el tuaciones de espera se mantiene muy similar en
resto de actividades de cada orden. caso de ampliar la duración del intervalo de carga.
Los resultados de la programación obtenidos en Como el usuario no toma fechas de entrega como
dos ejecuciones del algoritmo no han de ser idén- referencia para los lanzamientos de órdenes en su
ticos, porque las evaluaciones y asignaciones de- estructura productiva,es necesario referirse a la du-
penden de la distribución de cálculos entre los pro- ración mínima de una orden de fabricación.Es decir,

Duración mínima de una orden Duración programada de una orden


Hasta 24 horas Máximo: 36 horas
Hasta 48 horas Máximo: 88 horas
Hasta 72 horas Máximo: 101 horas
Hasta 90 horas Máximo: 174 horas
Hasta 120 horas Máximo: 180 horas

Tabla 4

97
se utiliza una desviación entre la “duración ideal” con procesadores estándares,son más que satisfac-
(sin considerar superposiciones entre actividades ni torios y plantean la posibilidad de incorporar pro-
con otras órdenes) y la “duración programada” (lo- gresivamente prestaciones complementarias para
grada con el algoritmo). aplicar este algoritmo en tiempo real.
Los resultados obtenidos con la nueva aplicación No obstante , los algoritmos tipo “dispatching” que
del algoritmo tienen una desviación en promedio procuran avanzar sincronizadamente en diferentes
del 33%.Analizados estos valores de manera abso- frentes plantean ciertos límites difíciles de superar
luta, se puede elaborar la siguiente tabla, donde las al aplicar paralelización en los cálculos. Los interva-
órdenes se clasifican según su duración mínima: los de carga y/o los recálculos no propician mejores
En las programaciones elaboradas, se constata la resultados en el speed-up [6].
existencia de dos grandes bloques de recursos: por
un lado, aquellos recursos comunes a todas las líne-
as productivas, que marcan la mayor o menor du- Bibliografía:
ración de una orden; y por otro lado, otros recur-
sos más específicos de cada línea de productos. [1] Breshears, Clay.“A beginner’s guide to PVM- Pa-
rallel Virtual Machine”. URL,
<http://csep1.phy.oml.gov/CSEP/PVM/PVM.html>.
6. Conclusiones University of Tennessee, 1995.

La revisión del anterior algoritmo de carga de má- [2] Companys, Ramón; Corominas, Albert. Organi-
quinas y la introducción de la paralelización en los zación de la producción II. Dirección de operacio-
cálculos ha permitido reducir los tiempos globales nes 4. Edicions UPC, 1996.
de ejecución. No obstante, la resolución de otras
deficiencias detectadas ha conducido a lograr dura- [3] Feitelson, Dror; Rudolph, Larry. Job Scheduling
ciones de ejecución aún más competitivas. Strategies for Parallel Processing. Springer, 1995.
La primera reducción de tiempo se logró manejan-
do adecuadamente los datos necesarios para la [4] Jájá, Joseph. An Introduction to Parallel Algo-
programación de la producción. Superada esta rithms.Addison-Wesley Publishing Company, 1992.
etapa, se preparó la estructura del algoritmo si-
guiendo el modelo de proceso maestro y procesos [5] Labarta, Jesús; Valero, Mateo; Gregoris, Luis.“In-
esclavos, con bajos rendimientos en paralelismo si troduction to parallel computing & PVM”, CEPBA-
se utilizaba un solo nivel. A lo cual, se respondió UPC Working Paper, 1995.
añadiendo un segundo nivel, que permitía acercar-
se más a los “speed-up” usuales en aplicaciones [6] Zenios, Stavros A.“Parallel and Supercomputing
donde el paralelismo se demuestra válido. in the Practice of Management Science”. Interfaces
Los tiempos de ejecución, incluso en ordenadores 24: 5 set-oct, pp. 122-140, 1994.

98