un software paralelo para problemas de optimizaciÓn de

14
UN SOFTWARE PARALELO PARA PROBLEMAS DE OPTIMIZACIÓN DE GRAN TAMAÑO Juan I. Ardenghi a , Gustavo E. Vazquez a and Nélida B. Brignole a,b a Laboratorio de Investigación y Desarrollo en Computación Científica (LIDeCC) Departamento de Ciencias e Ingeniería de la Computación Universidad Nacional del Sur - Av. Alem 1253 8000 - Bahía Blanca ARGENTINA e-mail: [email protected], [email protected], [email protected] b Planta Piloto de Ingeniería Química (UNS-CONICET) Complejo CRIBABB Cno. La Carrindanga km 7 - 8000 - Bahía Blanca ARGENTINA Tel.: 486 1700 - Fax: 486 1600 Palabras Clave: procesamiento paralelo, optimización, programación no lineal, NLP, gradiente espectral Resumen. El método del gradiente espectral proyectado (SPG) es un método de optimización global no monótono para problemas de programación no lineal de características diferentes a los métodos clásicos de gradiente proyectado. La no monotonicidad y una elección particular de la longitud del paso permiten aprovechar situaciones especiales que se presentan en los problemas, acelerando la convergencia con mínimos costos de almacenamiento de datos. En diversas publicaciones se analiza el rendimiento del SPG aplicado a diferentes ramas de la ingeniería. Entre sus características más atractivas aparece su bajo costo en operaciones: SPG no calcula Hessianos ni resuelve sistemas lineales, sólo utiliza productos matriz vector y una estrategia de búsqueda lineal no monótona para garantizar convergencia global. Su punto débil se encuentra en la necesidad de muchas búsquedas lineales para obtener un nuevo iterado, y en la necesidad de una buena aproximación del gradiente cuando éste no está disponible. En este caso, el auge del desarrollo en la programación en paralelo hace que este paradigma se presente como un recurso que ofrece una gran oportunidad para superar estos inconvenientes. Este método, una vez paralelizado, se torna una herramienta muy importante y prometedora para resolver problemas de optimización de gran tamaño. En este trabajo se presenta una nueva versión del SPG que implementa la búsqueda lineal y la evaluación del gradiente en paralelo. El algoritmo presentado implementa una distribución dinámica de las tareas, funcionando eficientemente sobre sistemas distribuidos heterogéneos. La implementación fue realizada apuntando a resolver problemas de diseño y condiciones operativas de plantas de procesos industriales. Se reportan resultados numéricos. Ogeâpkec"Eqorwvcekqpcn"Xqn"ZZXK."rr0441-454 Ugtikq"C0"Gncumct."Gnxkq"C0"Rknqvvc."Igtoâp"C0"Vqttgu"*Gfu0+ Eôtfqdc."Ctigpvkpc."Qevwdtg"4229 Eqr{tkijv"B"4229"Cuqekcekôp"Ctigpvkpc"fg"Ogeâpkec"Eqorwvcekqpcn" jvvr<11yyy0coecqpnkpg0qti0ct 441

Upload: others

Post on 03-Jul-2022

1 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: UN SOFTWARE PARALELO PARA PROBLEMAS DE OPTIMIZACIÓN DE

UN SOFTWARE PARALELO PARA PROBLEMAS DE

OPTIMIZACIÓN DE GRAN TAMAÑO

Juan I. Ardenghia, Gustavo E. Vazquez

a and Nélida B. Brignole

a,b

aLaboratorio de Investigación y Desarrollo en Computación Científica (LIDeCC)

Departamento de Ciencias e Ingeniería de la Computación

Universidad Nacional del Sur - Av. Alem 1253 – 8000 - Bahía Blanca – ARGENTINA

e-mail: [email protected], [email protected], [email protected]

bPlanta Piloto de Ingeniería Química (UNS-CONICET)

Complejo CRIBABB Cno. La Carrindanga km 7 - 8000 - Bahía Blanca – ARGENTINA

Tel.: 486 1700 - Fax: 486 1600

Palabras Clave: procesamiento paralelo, optimización, programación no lineal, NLP,

gradiente espectral

Resumen. El método del gradiente espectral proyectado (SPG) es un método de optimización global no monótono para problemas de programación no lineal de características diferentes a los métodos

clásicos de gradiente proyectado. La no monotonicidad y una elección particular de la longitud del

paso permiten aprovechar situaciones especiales que se presentan en los problemas, acelerando la convergencia con mínimos costos de almacenamiento de datos.

En diversas publicaciones se analiza el rendimiento del SPG aplicado a diferentes ramas de la

ingeniería. Entre sus características más atractivas aparece su bajo costo en operaciones: SPG no

calcula Hessianos ni resuelve sistemas lineales, sólo utiliza productos matriz vector y una estrategia de búsqueda lineal no monótona para garantizar convergencia global. Su punto débil se encuentra en la

necesidad de muchas búsquedas lineales para obtener un nuevo iterado, y en la necesidad de una

buena aproximación del gradiente cuando éste no está disponible. En este caso, el auge del desarrollo en la programación en paralelo hace que este paradigma se presente como un recurso que ofrece una

gran oportunidad para superar estos inconvenientes.

Este método, una vez paralelizado, se torna una herramienta muy importante y prometedora para resolver problemas de optimización de gran tamaño. En este trabajo se presenta una nueva versión del

SPG que implementa la búsqueda lineal y la evaluación del gradiente en paralelo. El algoritmo

presentado implementa una distribución dinámica de las tareas, funcionando eficientemente sobre

sistemas distribuidos heterogéneos. La implementación fue realizada apuntando a resolver problemas de diseño y condiciones operativas de plantas de procesos industriales. Se reportan resultados

numéricos.

Ogeâpkec"Eqorwvcekqpcn"Xqn"ZZXK."rr0441-454Ugtikq"C0"Gncumct."Gnxkq"C0"Rknqvvc."Igtoâp"C0"Vqttgu"*Gfu0+

Eôtfqdc."Ctigpvkpc."Qevwdtg"4229

Eqr{tkijv"B"4229"Cuqekcekôp"Ctigpvkpc"fg"Ogeâpkec"Eqorwvcekqpcn"jvvr<11yyy0coecqpnkpg0qti0ct

441

Page 2: UN SOFTWARE PARALELO PARA PROBLEMAS DE OPTIMIZACIÓN DE

1 INTRODUCCION

Los problemas de optimización representan una parte muy importante dentro de lo que se

refiere a programación matemática y computación científica. El desarrollo de métodos

numéricos para resolver problemas con y sin restricciones se ha incrementado en forma

considerable dada su aplicabilidad en gran cantidad de disciplinas científicas. Una de estas

áreas es la de sistemas de procesos, en la que los métodos numéricos de optimización han

avanzado de tal manera que han pasado a ser considerados más como una tecnología que

como una metodología de interés académico.

Por otro lado, junto a las nuevas técnicas en métodos numéricos, han aparecido problemas

de aplicación más complejos. Entonces, aquellos métodos que son globalmente convergentes

y sus tiempos de ejecución son reducidos son los que se han tornado más populares. Una de

las técnicas más importantes para poder reducir tiempos de ejecución es el procesamiento

paralelo. Este ha sido facilitado por el desarrollo de procesadores paralelos masivos (MPPs) y

el uso de computación distribuida. Luego estos procesos en paralelo pueden ser

implementados en una única máquina paralela o en una configuración distribuida de

workstations homogénea o heterogénea.

En este trabajo se introduce el paralelismo en una clase de algoritmos de optimización de

bajo costo llamado gradiente espectral proyectado (SPG). Estos métodos aplicados a

problemas sin restricciones y con restricciones convexas han ganado cierta popularidad

debido a su convergencia global con requerimientos computacionales mínimos.

Los métodos SPG, introducidos en Raydan (1997) utilizan direcciones de descenso, y la

forma de escoger la longitud del paso requiere menos trabajo computacional y acelera

notablemente la velocidad de convergencia. Esta variante combinada con el esquema de

búsqueda lineal no monótona desarrollada por Grippo et al (1986) aseguran la convergencia

global. La comparación con otras técnicas de optimización numérica de bajo costo ha

favorecido a SPG en gran cantidad de problemas de gran escala (Birgin et.al. 2000; Birgin et.

al. 2001; Bello and Raydan 2004; Luengo and Raydan 2003). Estos métodos también han sido

aplicados exitosamente en diferentes problemas industriales (Birgin et.al 1999a; Birgin et. al

1999b; Birgin and Evtushenko 1998; Castillo et.al. 2000; Mulato et. al 2000; Glunt et.al.

1993), y se ha demostrado que aparentan ser superiores en su desempeño a los métodos de

optimización existentes en los paquetes clásicos utilizados en ingeniería química (Domancich

et. al, 2004). Una revisión de estos métodos mostrando la importancia del uso de una

búsqueda lineal no monótona se puede encontrar en Fletcher (2001).

Una versión de SPG fue desarrollada en Molina et.al (2000) para correr sobre máquinas

paralelas. En dichos trabajos se desarrolla una paralelización de las operaciones de SPG

(productos escalares y productos matriz-vector) aplicando un precondicionador, utilizando

versiones de grano fino y grueso. En los problemas testeados se cuenta con el gradiente

analítico y la sucesión de iterados por las versiones paralelas son los mismos que los de la

versión secuencial, sólo que fueron calculados en forma paralela. Este trabajo está orientado

con otro objetivo. En los problemas de diseño y condiciones operativas de plantas de procesos

industriales en general no se cuenta con el gradiente en forma analítica. Luego, dado que SPG

tiene mínimos requerimientos de memoria y de operaciones aritméticas, el tiempo total de

cada iteración depende de dos puntos clave: la búsqueda lineal no monótona y la

aproximación del gradiente dado que este no está disponible. Estos puntos son claramente

factibles de paralelizar. La versión paralela que vamos a presentar busca impactar sobre los

iterados de SPG, es decir, que la distribución de tareas genere una sucesión de iterados

442

Page 3: UN SOFTWARE PARALELO PARA PROBLEMAS DE OPTIMIZACIÓN DE

alternativa a la que genera la versión secuencial buscando hacerlo aun más competitivo, pero

manteniendo la robustez de convergencia que posee el método SPG secuencial. En este

trabajo se presenta una versión paralela de grano grueso del algoritmo SPG para correr sobre

sistemas distribuidos homogéneos o heterogéneos. Para el análisis de desempeño se utilizaron

28 versiones de un problema académico. En esta clase de problemas los gradientes analíticos

y la función objetivo son conocidos. Dado que la implementación futura de este algoritmo es

sobre problemas donde no se cuenta con expresiones analíticas de la función objetivo y/o de

los gradientes, lo que se busca analizar es el desempeño del algoritmo paralelo en condiciones

de desconocimiento absoluto de esta información. Luego las expresiones analíticas conocidas

se utilizan sólo como referencia en la comparación cuando se examina el posible impacto del

procesamiento paralelo en los tiempos de ejecución.

2 SOFTWARE PARALELO PARA SISTEMAS DISTRIBUIDOS HETEROGÉNEOS

La computación en paralelo permite resolver un problema de gran tamaño resolviendo

varias instancias más pequeñas simultáneamente. Esto permite un ahorro importante en lo que

se refiere a tiempos de ejecución. Para el desarrollo de software paralelo es necesario un

software de pasaje de mensajes que permita establecer comunicaciones entre los diferentes

procesadores. Entre los programas más populares de pasaje de mensajes para realizar este tipo

de implementaciones son MPI (Message Passing Interface) y PVM (Parallel Virtual Machine)

MPI tiene muy buen rendimiento en máquinas multiprocesadores grandes, contiene un

conjunto muy rico de funciones para comunicaciones, y alta performance en estas (MPI fórum

1994). Pero cuando las aplicaciones deben ser ejecutadas sobre estaciones de trabajo

heterogéneas PVM aparece como más conveniente. Tiene muy buena interoperabilidad entre

diferentes tipos de huéspedes y permite el desarrollo de aplicaciones tolerantes a fallas que

pueden continuar a pesar de errores en algún huésped o tarea (Geist et.al. 1994). El concepto

de máquina virtual que implementa PVM provee una base para la heterogeneidad y

portabilidad. Comparaciones más detalladas entre PVM y MPI pueden encontrarse en Geist

et. al (1996) y Gropp and Lusk (2002). El algoritmo paralelo presentado en este trabajo fue

desarrollado para correr bajo entornos distribuidos tanto homogéneos como heterogéneos,

luego fue implementado en PVM 3.4. En la sección 4 se describen los detalles de este

desarrollo.

3 EL ALGORITMO SPG

El algoritmo del Gradiente Espectral Proyectado (SPG) fue introducido por Raydan (1993,

1997) y se aplica a problemas de la forma

,

donde S es un conjunto convexo y cerrado en .

Este método utiliza direcciones de descenso, pero, en contraste con el clásico método de

Cauchy (1947) la elección del paso se realiza de una manera diferente. La forma de escoger la

longitud del paso, originalmente presentada por Barzilai and Borwein (1988) y descripta por

Raydan, (1993), requiere menos trabajo computacional y acelera notablemente la velocidad de

convergencia. Esta variante combinada con el esquema de búsqueda lineal no monótona

desarrollada por Grippo et al (1986) aseguran la convergencia global del SPG, es decir, la

convergencia a un punto estacionario desde cualquier punto inicial.

El algoritmo se describe en el siguiente esquema:

443

Page 4: UN SOFTWARE PARALELO PARA PROBLEMAS DE OPTIMIZACIÓN DE

1- k=0

2- Chequear convergencia

3- Determinar una dirección de descenso.

4- Determinar la longitud del paso (paso espectral).

5- Búsqueda lineal no monótona

6- k = k+1, ir a 2

Paso 2- Si se define P(z) como la proyección ortogonal de z en S, el algoritmo cicla mientras

||P(xk + kdk) – xk || > tolerancia. 0 =1 y d0 = - f(x0).

Paso 3- Como dirección de descenso se utiliza dk= –gk donde gk = f(xk). Si este gradiente

no se conoce explícitamente se aproxima por algún método.

Paso 4- El paso espectral se calcula 11

11

k

t

k

k

t

k

kys

ssdonde sk = xk+1-xk e 11 kkk ggy . Esta

elección del paso busca aproximar los autovalores de la matriz Hessiana generando

iteraciones no monótonas.

Paso 5- La condición de búsqueda lineal que debe satisfacerse es

(1)

donde M y son parámetros del algoritmo. Esta búsqueda lineal es no monótona y garantiza

la convergencia global sin desaprovechar las bondades del paso espectral. Sobre la

convergencia global del método puede consultarse en Raydan, (1997).

Este algoritmo tiene requerimientos mínimos de memoria y no exige decrecimiento en la

función objetivo, lo que permite explotar al máximo sus características de convergencia local.

Cuando no se realizan búsquedas lineales cada iteración requiere solo O(n) operaciones de

punto flotante y una evaluación del gradiente (Raydan 1997). En los problemas de aplicación

que nos interesan, el gradiente no se conoce en forma explícita luego es necesaria una buena

aproximación. El tiempo total de cada iteración queda determinado por la suma de tiempo

que insumen esta aproximación del gradiente y la búsqueda lineal no monótona.

4 EL ALGORITMO SPG EN PARALELO

Los problemas de optimización que se busca resolver con este algoritmo son problemas

cuyo gradiente no siempre se conoce en forma explícita. Luego es necesario aproximar este

gradiente de alguna manera. Obtener una buena aproximación representa un consumo extra

de tiempo de cómputo. Por otro lado, el tiempo que insume cada búsqueda lineal en cada

iteración es variable e impredecible, dependiendo de las características de cada problema y

del punto que se está analizando. El tiempo total de cada iteración queda entonces

determinado por la suma de tiempo que insumen esta aproximación del gradiente y la

búsqueda lineal no monótona. Como se explica en la sección siguiente, estos dos puntos son

claramente paralelizables. Esto da lugar a un diseño alternativo de SPG en paralelo.

4.1 Evaluación del gradiente

Existen varias formas de aproximar las derivadas parciales. Una de ellas es la fórmula de

diferencias finitas centradas:

(2)

donde hi es un valor pequeño, ei es el vector canónico en la dirección i, n es la dimensión del

vector x y el último término representa el error en la aproximación, que es del orden de hi2.

444

Page 5: UN SOFTWARE PARALELO PARA PROBLEMAS DE OPTIMIZACIÓN DE

Para más detalles ver Dennis and Schnabel (1983)

Para cada derivada parcial es necesario calcular la función en los puntos y

por lo que calcular la derivada con esta fórmula insume 2n evaluaciones de

función. Comparando con el esquema de aproximación de diferencias finitas hacia adelante,

esta fórmula tiene la desventaja de duplicar el número de evaluaciones de función, pero da

una aproximación más precisa para un hi dado. Debido a que SPG usa fuertemente la

dirección del gradiente, nosotros escogemos esta aproximación para garantizar exactitud a

pesar de n-1 evaluaciones de funciones adicionales.

Las evaluaciones involucradas en el cálculo de la derivada parcial i son independientes de

las necesarias para calcular la derivada parcial j, luego es posible calcularlas en forma

simultánea. En este trabajo se implementa esta evaluación simultánea de las derivadas

parciales para agilizar la obtención de la aproximación del gradiente. Se utiliza un esquema

MASTER/SLAVE donde a cada nodo SLAVE el nodo que hace de MASTER le asigna una

componente para que calcule la derivada parcial. Cuando el SLAVE termina, envía el valor al

MASTER y este le asigna una nueva componente a calcular, hasta completar las n derivadas

parciales. Esta distribución dinámica permite evitar que queden procesadores ociosos cuando

aún haya cálculos por hacer.

4.2 Búsqueda lineal

Como se expuso más arriba, la cantidad de búsquedas lineales necesarias en la iteración k

dependerá de cómo es la función involucrada en un entorno del punto xk. La situación ideal es

que el paso espectral original sea aceptado. En caso de no ser así, dicho paso se reduce hasta

que la búsqueda lineal se satisface. Para pasos suficientemente chicos esta búsqueda lineal se

satisface (Ver Raydan, 1997), pero para alcanzar dicho paso pueden llegar a ser necesarias

muchas iteraciones de búsqueda. Por otro lado, pasos muy chicos afectan la velocidad de

convergencia del método. En función de esta dificultad se implementa una variante.

Siguiendo la idea básica establecida en Vázquez y Brignole (1999) y Vazquez et.al.

(2000), si p es la cantidad de procesadores disponibles, se puede evaluar simultáneamente

)1

( kkk dp

nxf con n =1...p, es decir, se toman p puntos (igualmente espaciados en este

caso) del intervalo y se evalúa f en cada uno de esos puntos. Si ninguno

satisface la condición de búsqueda lineal., entonces se subdivide el intervalo

k

k

kk dp

xx1

, en p puntos y se vuelve a aplicar el procedimiento. Si aún no es

satisfecha la búsqueda lineal, se repite el procedimiento en el intervalo y

así sucesivamente hasta alcanzar un punto exitoso.

Es necesario establecer un criterio para determinar en qué momento se interrumpe esta

búsqueda y se sigue adelante con las iteraciones de SPG.

Tiempo mínimo

Un primer criterio es el de quedarse con el primer punto que satisface la búsqueda lineal.

Esto minimiza el tiempo en que se realiza esta búsqueda. Al primer éxito se sigue adelante. La

búsqueda lineal en paralelo utilizando este criterio la notamos LS1. La desventaja que este

criterio presenta es que, teniendo un punto que satisface esta búsqueda lineal, ¿No podría

haber otro que también sea exitoso pero que su longitud sea mayor? Si fuera así solo bastaría

445

Page 6: UN SOFTWARE PARALELO PARA PROBLEMAS DE OPTIMIZACIÓN DE

esperar un poquito más a que lleguen las respuestas de los restantes procesadores y elegir el

punto exitoso de mayor longitud. De hecho, cuanto más chica es la longitud del paso, más

posibilidades tiene de satisfacer la condición (1).

Máxima longitud

Esperar todas las respuestas, por más que ya se cuente con algunas exitosas, representa un

segundo criterio de continuación. Este criterio permite asegurarse la longitud de paso más

larga, pero podría presentar cierta ineficiencia dependiendo de cómo se implemente.

Supongamos que los procesadores se numeran según la longitud de paso a evaluar. Entonces

al procesador 1 le toca el paso de mayor longitud, al procesador 2 el que sigue en longitud, y

así hasta el procesador p. Si se recibe un éxito en el procesador 4 y fracasos en los

procesadores 1, 2 y 3, entonces no tiene sentido esperar la llegada de todas las respuestas ya

que no es posible obtener un éxito de longitud mayor. Una estructura que lleve un registro de

lo recibido determinaría si se sigue esperando o se continúa con la búsqueda lineal. La

implementación de esta versión en paralelo la notamos como LS2.

4.3 Convergencia del algoritmo paralelo

La convergencia global del algoritmo SPG está garantizada por la búsqueda lineal no

monótona. Esta viene dada por el siguiente resultado demostrado en Grippo et al.(1986):

TEOREMA 1: Sea {xk} una sucesión definida por

xk+1 = xk + kdk, dk 0

Sea a>0, (0,1), (0,1) y sea M un entero no negativo. Se asume que

i) 0={ x: f(x) f(x0)} es un conjunto compacto

ii) existen dos números positivos c1 y c2 tales que :

gkTdk -c1||gk||

2

||dk|| c2||gk||

iii) akh

k donde hk es un entero no negativo para el cual

siendo Fmax=max{ f(xk), f(xk-1), ..., f(xk-M)}

Entonces

i) 0kk

glím ,

ii) ningún punto límite de {xk} es un máximo local de f,

iii) si el número de puntos estacionarios de f en 0 es finito, entonces la sucesión {xk}

converge.

La existencia de este resultado permite establecer un teorema similar para la convergencia del

algoritmo SPG. El siguiente resultado fue establecido en Raydan (1997):

TEOREMA 2: Sea 0={ x: f(x) f(x0)} un conjunto compacto. Sea f: n una función

continuamente diferenciable en un entorno N de 0. Sea {xk} la sucesión generada por el

algoritmo SPG. Entonces o g(xj)=0 para algún índice j, o valen las siguientes propiedades:

i) 0kk

glím ,

ii) ningún punto límite de {xk}es un máximo local de f,

446

Page 7: UN SOFTWARE PARALELO PARA PROBLEMAS DE OPTIMIZACIÓN DE

iii) si el número de puntos estacionarios de f en 0 es finito, entonces la sucesión {xk}

converge.

A partir de estos teoremas hemos podido establecer la convergencia de nuestro algoritmo

paralelo. En otras palabras, bajo las condiciones del teorema 1, el algoritmo SPG con las

búsquedas lineales en paralelo convergerá a un punto estacionario.

En base a este concepto, nosotros hemos podido definir el siguiente corolario:

COROLARIO: Sea 0={ x: f(x) f(x0)} un conjunto compacto. Sea f: n una función

continuamente diferenciable en un entorno N de 0. Sea {xk} la sucesión generada por la

versión paralela del algoritmo SPG. Entonces o g(xj)=0 para algún índice j, o valen las

siguientes propiedades:

i) 0kk

glím ,

ii) ningún punto límite de {xk} es un máximo local de f,

iii) si el número de puntos estacionarios de f en 0 es finito, entonces la sucesión {xk}

converge.

Demostración: El algoritmo utiliza como dirección donde es la aproximación

del gradiente con diferencias finitas centradas. De lo descripto en la sección 4.1 se desprende

que para es

Luego, sin perder generalidad, se puede elegir h suficientemente chico tal que

Considerando que

Entonces

Por otro lado

Luego se satisface la hipótesis ii) del teorema 1.

Por otro lado, en la búsqueda lineal no monótona del algoritmo en paralelo se obtienen

iterados que satisfacen

Eligiendo adecuadamente el parámetro , los iterados obtenidos por el algoritmo paralelo

satisfacen la hipótesis iii) del teorema 1. En efecto, si tomamos , para un h

suficientemente chico es con . Luego y

Al cumplirse las condiciones del teorema 1, éste se aplica, asegurando la convergencia global

de SPG en paralelo.

447

Page 8: UN SOFTWARE PARALELO PARA PROBLEMAS DE OPTIMIZACIÓN DE

5 ANALISIS DE DESEMPEÑO

Se analizaron 28 problemas de locación basados en aquellos propuestos en Birgin et al

(2000) para testear el comportamiento de SPG secuencial. Dependiendo de los parámetros,

este puede ser un problema con gran número de variables y restricciones. La descripción es la

siguiente: Se considera una malla rectangular de puntos en 2. Esta malla es el espacio en que

un conjunto de plantas de producción (representado por polígonos) serán emplazadas. De

antemano, se define un área rectangular reservada, donde, en principio, nada puede ser

construido. Este área reservada contendrá una planta de generación de energía para

suministrar a las plantas de producción. En cada punto restante de la malla (excluyendo el

región central) una de estas plantas (representado por un polígono) será edificada con una

probabilidad definida de antemano. Para transmitir energía desde la central de energía a las

plantas de producción, una torre en cada planta y una torre en el interior de la región central

deber ser construido. El objetivo del problema es determinar la colocación de estas torres de

forma tal que se minimice la suma de las distancias desde las torres de cada una de las plantas

a la torre central.

Entonces, dado un conjunto de npol polígonos disjuntos 2

21 en ,...,, npolPPP , queremos

encontrar el punto 1

1 Pz que minimiza la distancia a los restantes polígonos. El problema a

resolver es

El problema tiene 2 npol variables y el número de restricciones es npol

i

iv1

, donde vi es el

número de vértices del polígono Pi. Una descripción más detallada del problema se puede

encontrar en el trabajo de Birgin et.al. (2000).

Como fue descripto en la sección 4, el diseño de este algoritmo fue realizado con una

distribución dinámica de las tareas haciéndolo eficiente para sistemas distribuidos

heterogéneos. De todos modos, por razones prácticas, las experiencias numéricas fueron

realizadas en un cluster homogéneo. Este estaba conformado por 8 PC Pentium 4 de 3Ghz

conectadas por una red Ethernet de 1 Gb. Las workstations utilizaron GNU/LINUX con

distribución Gentoo y se utlizó el compilador g77 de LINUX.

Como se menciona en la sección 3, el algoritmo SPG utiliza fuertemente el gradiente de la

función objetivo, pero en los problemas de ingeniería que se buscan resolver no se cuenta con

dicho gradiente en forma explícita.

La tabla 1 compara el desempeño de SPG en 28 problemas utilizando el gradiente exacto y

una aproximación de este por diferencias finitas centradas como se describe en (4.1)

npol

i

i

npolizzz

i

22

1

...1 ,min

npoliPz i

i ,...,1 , a sujeto

448

Page 9: UN SOFTWARE PARALELO PARA PROBLEMAS DE OPTIMIZACIÓN DE

Valor óptimo de f(x) Nº de iteraciones Tiempo CPU (seg)

Prob Nº Poligonos Vértices Dif. Finitas G. Exacto Dif. Finitas G. Exacto Dif. Finitas G. Exacto

1 98 399 1,906590085 1,906590085 16 15 0,05 0

2 95 778 1,817209646 1,817209646 15 14 0,03 0

3 93 1152 1,910986659 1,910986659 15 14 0,03 0

4 173 705 1,970172556 1,970172556 27 23 0,17 0,02

5 178 1483 1,954646798 1,954646798 21 20 0,16 0,02

6 174 2219 1,984684449 1,984684449 13 12 0,14 0,02

7 259 1057 1,964057056 1,964057056 13 12 0,17 0,02

8 262 2161 2,003345163 2,003345163 22 21 0,36 0,02

9 256 3210 2,022382107 2,022382107 22 21 0,36 0,02

10 364 1448 1,973318845 1,973318845 27 23 0,72 0,02

11 369 2965 1,944828076 1,944828076 19 18 0,61 0,02

12 362 4358 1,972744433 1,972744433 22 21 0,67 0,03

13 457 1821 1,956266279 1,956266279 14 13 0,66 0,02

14 481 3852 2,001664609 2,001664609 18 17 0,95 0,03

15 456 5468 2,01745534 2,01745534 15 14 0,72 0,03

16 939 3787 1,330872584 1,330872584 19 18 4,95 0,03

17 928 7529 1,281374181 1,281374181 25 23 4,69 0,06

18 941 11405 1,27050022 1,27050022 23 21 4,45 0,09

19 1873 7528 1,28602419 1,28602419 34 33 26,83 0,09

20 1851 14978 1,31147726 1,31147726 27 26 20,97 0,16

21 1848 22327 1,329438743 1,329438743 24 23 18,53 0,17

22 2851 11459 1,324575329 1,324575329 53 41 117,75 0,27

23 2821 22805 1,339371482 1,339371482 47 40 73,39 0,34

24 2854 34319 1,319195315 1,319195315 51 38 71,58 0,44

25 3830 15350 1,308253163 1,308253163 30 29 98,73 0,17

26 3794 30654 1,321296006 1,327486712 31 27 90,47 0,31

27 3853 46454 1,32748672 1,331917699 47 38 130,3 0,58

28 4746 18987 1,301917699 1,308752708 30 26 136,92 0,22

Tabla 1: Comparación de SPG con gradiente exacto y con diferencias finitas

Notando FDF y FGE los valores óptimos de F(x) con diferencias finitas y gradiente exacto, e

ItDF e ItGE las iteraciones respectivas, la siguiente tabla muestra algunos valores promedio.

│FDF – FGE│ │ItDF – ItGE│ T. de CPU con G.E

(Seg) T. de CPU con Dif. Fin.

(Seg)

0.0006 2.8214 0.11428 28.76285

Tabla 2: Valores promedio.

Como se puede observar, los valores óptimos de SPG con diferencias finitas así como las

iteraciones requeridas no difieren en gran medida con los de SPG con gradiente exacto. Esto

es un indicador del buen desempeño de la aproximación utilizada. En contraste se puede

observar que se produce un incremento notable en los tiempos de ejecución. Este es el costo

449

Page 10: UN SOFTWARE PARALELO PARA PROBLEMAS DE OPTIMIZACIÓN DE

de obtener una buena aproximación del gradiente, fundamental para el buen desempeño del

algoritmo principal.

Como fue mencionado en la sección 4, el tiempo de CPU puede ser reducido a través de las

versiones paralelas diseñadas. De este modo se obtienen buenas aproximaciones del gradiente

en tiempos de ejecución más razonables.

Para medir el impacto del paralelismo se utiliza el factor de speed up. Este se define como

Speed-up = tiempo secuencial / tiempo en paralelo

para un sistema distribuido homogéneo. El algoritmo paralelo también puede trabajar sobre un

sistema distribuido heterogéneo, pero el speed-up debería medirse utilizando una fórmula

ponderada (Vazquez et. al 2000)

El porcentaje de eficiencia es

Eficiencia = (speed-up / número de procesadores)*100

Las siguientes tablas muestran los valores promedio del algoritmo sobre un sistema

distribuido con ambas versiones de LS.

Nº Proc. Tiempo

Promedio (Seg) Speed-up Eficiencia

1 28.7746 ----- -----

2 19.759 1,4562 72.81 %

4 11.200 2.5689 64.22 %

8 6.0524 4.7542 59.42 %

Tabla 3: Promedio de tiempos de SPG en paralelo con LS1

Nº Proc. Tiempo

Promedio (Seg) Speed -up Eficiencia

1 28.7746 ---- ----

2 14.6362 1.5121 75.60 %

4 7.3649 2.6469 66.17 %

8 3.7319 4.8237 60.29 %

Tabla 4: Promedio de tiempos de SPG en paralelo con LS2

Como se puede observar en las tablas 3 y 4, la eficiencia es alta en ambas versiones,

mostrándose una leve superioridad en la versión con LS2. La probabilidad de edificación

citada en la descripción del problema introduce valores aleatorios. Luego cada problema

representa una clase de problemas, y en cada una de ellas se pueden observar distintos

desempeños del algoritmo.

La tabla 5 muestra el detalle de la performance del algoritmo con la búsqueda lineal LS2.

La búsqueda lineal en paralelo disminuye la cantidad de búsquedas por llamadas, pero no

reduce la cantidad de llamadas. Tomemos como ejemplo el problema 22. La versión

secuencial hace dos llamadas a LS y realiza 5 búsquedas en la primera llamada y 6 en la

segunda. Si TB es el tiempo de una búsqueda entonces el tiempo acumulado TA en las dos

llamadas es TA = 11*TB, como se muestra en la figura 1.

Resolviendo el mismo problema en paralelo con 4 procesadores se aprecia en la tabla que

las llamadas son dos, pero el esquema de búsqueda es el que se muestra en la figura 2.

450

Page 11: UN SOFTWARE PARALELO PARA PROBLEMAS DE OPTIMIZACIÓN DE

1º llamada a LS

2º llamada a LS

Figura 1

Figura 2

Tiempo CPU (segundos) % de eficiencia # de búsquedas lineales

Prob Nº 1 proc. 2 proc 4 proc. 8 proc. 2 proc 4 proc. 8 proc. 1 proc. 2 proc 4 proc. 8 proc.

1 0,0552741 0,05174 0,057113 0,056222 53,419 24,195 12,28924 0 0 0 0

2 0,0364686 0,03574 0,037813 0,036729 51,0238 24,111 12,41122 0 0 0 0

3 0,0397974 0,03218 0,032308 0,032704 61,831 30,796 15,2112 0 0 0 0

4 0,1728222 0,12098 0,114927 0,108878 71,4286 37,594 19,84127 3 1 1 1

5 0,1600538 0,16353 0,167283 0,165952 48,9369 23,92 12,05573 0 0 0 0

6 0,143413 0,14881 0,14607 0,146181 48,1873 24,545 12,2633 0 0 0 0

7 0,1735694 0,15621 0,138855 0,253117 55,5556 31,25 8,571601 0 0 0 0

8 0,3667017 0,23465 0,12628 0,081 78,138 72,597 56,58976 0 0 0 0

9 0,3613521 0,24327 0,12614 0,081 74,2698 71,617 55,76421 0 0 0 0

10 0,7279151 0,64925 0,580116 0,547397 56,0584 31,369 16,62218 4 3 3 3

11 0,6101846 0,48848 0,2295 0,10675 62,4575 66,469 71,45019 0 0 0 0

12 0,6788229 0,53648 0,2514 0,11725 63,2664 67,504 72,36918 0 0 0 0

13 0,6644056 0,52864 0,24765 0,1155 62,841 67,071 71,90536 0 0 0 0

14 0,9594916 0,86354 0,767594 0,671644 55,5556 31,25 17,85714 0 0 0 0

15 0,7260771 0,65347 0,580864 0,508254 55,5556 31,25 17,85714 1 1 1 1

16 4,9655123 2,96775 1,486303 0,745458 83,6578 83,521 83,26276 9 4 3 3

17 4,712604 2,81611 1,411264 0,70842 83,6721 83,482 83,15348 6 4 4 4

18 4,470767 2,67107 1,336544 0,668741 83,6887 83,626 83,56686 1 1 1 1

19 26,836885 13,3975 6,704126 3,357324 100,156 100,08 99,91919 16 5 3 3

20 20,982605 12,5824 6,296334 3,153141 83,381 83,313 83,18136 6 4 3 3

21 18,534271 11,1201 5,562999 2,784386 83,3368 83,293 83,20627 3 2 2 2

22 117,79718 58,8393 29,42986 14,7252 100,101 100,07 99,99627 11 5 2 2

23 73,397326 36,6663 18,34638 9,182683 100,088 100,02 99,9127 13 5 3 2

24 71,587296 35,7591 17,90156 8,972528 100,097 99,974 99,73122 24 9 7 7

25 98,77476 49,3237 24,68451 12,36457 100,129 100,04 99,85664 27 9 7 7

26 90,4796 45,1879 22,6177 11,33255 100,115 100,01 99,80061 32 9 8 8

27 130,34967 65,1209 32,59018 16,32022 100,083 99,992 99,83752 17 8 6 5

28 136,92513 68,4533 34,24812 17,14203 100,014 99,951 99,84605 10 6 5 4

Tabla 5: SPG en paralelo con LS2

11*TB

1ra y 2da llamada a LS en

paralelo con 4 procesadores

2*TB

451

Page 12: UN SOFTWARE PARALELO PARA PROBLEMAS DE OPTIMIZACIÓN DE

Al encontrar entre los cuatro puntos que se evalúan en paralelo uno que satisface la búsqueda

lineal entonces la búsqueda finaliza. Si llamamos TC el tiempo de comunicación entre

procesadores, entonces el tiempo acumulado de búsqueda lineal en paralelo para el problema

22 es

TA = 2*TB + TC

La eficiencia que introduce la búsqueda en paralelo dependerá de la cantidad de búsquedas

que se realizan por llamada. Como contraste al problema nº 22 podemos ver el problema nº 14

donde no hay llamadas a LS, o el problema nº 10 donde el tiempo acumulado de LS con un

procesador es TA = 4*TB y en paralelo es TA = 3*TB + TC . En estos casos la eficiencia es la

que aporta el paralelismo en el cálculo del gradiente.

6 CONCLUSIONES

El método SPG fue adaptado para correr eficientemente bajo cualquier sistema distribuido,

respondiendo a las demandas que presentan los problemas de gran tamaño donde no se

conocen los gradientes en forma analítica. Como muestran los resultados numéricos, la

aproximación del gradiente utilizada no hace mella en los valores de la aproximación

obtenida, pero multiplica los tiempos de ejecución. Estos tiempos tienen una reducción

notable en las versiones paralelas. El rendimiento de estas versiones muestra un alto

promedio de eficiencia con ambas versiones de búsqueda lineal, notándose una tendencia a

aumentar en la medida que aumenta el número de variables Como fue desarrollado en la

sección anterior, la diferencia de eficiencia se debe a las diferentes demandas de búsqueda

lineal propia de cada problema. En aquellos donde no hay gran demanda el paralelismo solo

aporta en la evaluación del gradiente que está presente en todos los problemas y en cada

iteración. El tiempo de búsqueda lineal se reduce pero no en una proporción constante como

lo es la de la aproximación del gradiente, dado que la búsqueda lineal en paralelo no es una

paralelización de la búsqueda secuencial sino que se realiza en forma diferente. Luego

aquellos problemas en los que la versión secuencial realizaba muchas búsquedas lineales se

ven más afectados por las versiones paralelas que aquellos en los cuales había pocas

búsquedas, donde la reducción de tiempos se da prácticamente sólo en la aproximación del

gradiente.

Los problemas de optimización considerados en este trabajo incluyeron casos de estudio de

mediano y gran tamaño donde la función objetivo es conocida y la proyección sobre la región

factible es simple de realizar. En tal sentido, se proyecta ampliar el espectro de problemas a

analizar abordando ejemplos con restricciones de características menos tratables y con

desconocimiento de la expresión analítica de la función objetivo, dado que estas

características aparecen con frecuencia en la formulación de numerosos problemas del campo

de la ingeniería de procesos.

REFERENCIAS

Bello L. and Raydan M.. Convex-Constrained Optimization for the Seismic Reflection

Tomography Problem,Technical report 2003-12, Centro de cálculo científico y

Tecnológico, Facultad de Ciencias, Universidad Central de Venezuel, 2003.

Birgin E.G., Biloti R., Tygel M. and Santos L.T. Restricted oprimization: a clue to a fast and

452

Page 13: UN SOFTWARE PARALELO PARA PROBLEMAS DE OPTIMIZACIÓN DE

accurate implementation of the common reflection surface method, Journal of Applied

Geophisycs, 42:143-155, 1999a.

Birgin E.G, Chambouleyron I. and. Martinez J.M. Estimation of optical constants of thin

films using unconstrained optimization, Journal of Computation Physics, 151:862-880,

1999b.

Birgin E.G. and Evtushenko Y.G. Automatic differentiation and spectral projected gradient

methods for optimal control problems, Optimization Methods and Software, 10:125-146,

1998.

Birgin E., Martinez M. and Raydan M., Non-monotone spectral projected gradient

method on convex sets, SIAM Journal on Optimization, 10: 1196-1212, 2000.

Birgin E., Martinez M. and Raydan M., “Algorithm 813: SPG-Software for convex

constrained optimization”, ACM Transactions on Mathematical Software, 27: 340-349,

2001.

Z.Castillo, Cores D. and Raydan M.. Low Cost Optimization Techniques for Solving the

Nonlinear Seismic Reflection Tomography Problem, Optimization and Engineering, 1: 155-

169, 2000

Dennis J.E. and Schnabel R.B. Numerical Methods for Unconstrained Optimization

and Nonlinear Equations. Prentice-Hall, NJ, 1983.

Domancich A.O.,. Ardenghi J.I, Vazquez G. E. y Brignole N. B., Desempeño de un

algoritmo espectral para optimización rigurosa de plantas de procesos industriales.

Mecánica Computacional XXIII, 3047-3057, 2004.

Fletcher R. On the Barzilai and Borwein method, Numerical Analysis Report NA/207, 2001

Geist A., Beguelin A., Dongarra J., Jiang W., Manchek R. and Sunderam V. PVM: Parallel

Virtual Machine. MIT press, 1994.

Geist A., Kohl A.and Papadopoulos P. PVM and MPI: a Comparison of Features.

Calculateurs Paralleles, 8(2), 1996.

Glunt W., Hayden T.L., and Raydan M.. Molecular conformations from distance

matrices. J. Comp. Chem., 14:114–120, 1993.

Grippo L., Lampariello F., and Lucidi S, A non-monotone line-search technique for

Newton’s method, SIAM Journal on Numerical Analysis, 23: 707-716, 1986.

Gropp W. and Lusk E. Goals Guiding Design: PVM and MPI . Technical Report, 2002

Luengo F.and Raydan M.. Gradient Method with Dynamical Retards for Large-Scale

Optimization Problems, Electronic Transactions on Numerical Analysis (ETNA), 16:186-

193, 2003

Molina B., Petiton S.and Raydan M., Preconditioned Gradient Method with Retards for

Parallel Computers, Proceedings of the III National Meeting on Parallel and Distributed

Computing, Merida, Venezuela, 91-98, 1997

Molina B.and Raydan M. Preconditioned Barzilai–Borwein method for the numerical

solution of partial differential equations, Numerical Algorithms, 13: 45-60, 1996.

MPI Forum. MPI: A message-passing interface standard. International Journal of

Supercomputer Applications, 8 (3/4):165-416, 1994

Mulato M., Chambouleyron I., Birgin E.G. and. Martinez J.M. Determination of thikness and

optical constants of a-Si:H films from transmittance data, Applied Physics Letters, 77:2133-

2135, 2000

Raydan M., On the Barzilai and Borwein choice of step-length for the gradient method.

IMA Journal on Numerical Analysis, 13: 321-326, 1993.

Raydan M., The Barzilai and Borwein gradient method for the large-scale unconstrained

minimization problem. SIAM Journal on Optimization., 7, 1: 26-33, 1997.

Vazquez, G.E. and Brignole N.B. Parallel NLP Strategies using PVM on Heterogeneous

453

Page 14: UN SOFTWARE PARALELO PARA PROBLEMAS DE OPTIMIZACIÓN DE

Distributed Environments, Lecture Notes in Computer Science Nº 1697: Recent Advances

in Parallel Virtual Machine and Message Passing Interface, Springer Verlag, XVII: 533-

540, 1999.

Vazquez G.E., Rainoldi R. and Brignole N.B. Non-Linear Constrained GRG Optimization

under Heterogeneous Parallel-distributed Computing Environments, Computer-Aided

Chemical Engineering, Elsevier, 8: 127-132, 2000.

454