otimização e processamento paralelo de alto desempenho

Transcrição

otimização e processamento paralelo de alto desempenho
ARTIGO
OTIMIZAÇÃO E PROCESSAMENTO
PARALELO DE ALTO DESEMPENHO
Celso Carneiro Ribeiro e Noemi de la Rocque Rodriguez
INTRODUÇÃO
otimização computacionalmente difíceis com
uma grande aceleração, cuja resolução por
A utilização de métodos quantitativos de
máquinas seqüenciais era praticamente
otimização e de técnicas da pesquisa ope-
inviável. Finalmente, apresenta-se algumas
racional vem se revelando cada vez mais
tendências na área de cluster computing,
como uma ferramenta de grande impor-
que representa a plataforma de hardware
tância na solução de problemas de en-
mais promissora, ilustrando-se ainda outras
Depto. de Informática,
genharia e de planejamento. Tais ferra-
aplicações industriais na área bancária e de
PUC-Rio
mentas encontram aplicação crescente em
serviços de Internet.
Celso Ribeiro e
Noemi Rodriguez
problemas nos setores energético e petrolífero, no projeto e na exploração de redes de
COMUNICAÇÃO ENTRE PROCESSOS
comunicação, em problemas de planejamento e escalonamento da produção, de rotea-
Uma aplicação paralela ou multiproces-
mento de veículos e de gestão de frotas de
sada é formada por um conjunto de pro-
empresas aéreas (composição de frotas,
cessos que cooperam na obtenção de um re-
rodízio de tripulações), entre outras áreas.
sultado. Tipicamente, esses processos preci-
O advento das técnicas e ferramentas de
sam se comunicar para trocar dados e pedi-
programação paralela, portáveis e de fácil
dos entre si. Como cada processo progride de
uso, e a disponibilidade de máquinas
forma independente dos demais, muitas
paralelas, com desempenho e confiabilidade
vezes é necessário definir pontos de sincro-
crescentes e custos cada vez menores, vem
nização entre eles, de forma a garantir a
contribuindo sobremaneira para o sucesso
coerência da computação global.
da aplicação de métodos de otimização como
Nos últimos anos, vários sistemas opera-
uma solução prática, computacionalmente
cionais passaram a oferecer suporte a um
viável. Implementações paralelas são tão
tipo de processos denominados threads, ou
mais eficientes quanto a aceleração que
processos de peso leve, que podem se comu-
proporcionam aproxima-se do número de
nicar através de variáveis globais compar-
processadores utilizados. Neste trabalho,
tilhadas. Do ponto de vista do programador
apresenta-se um rápido panorama das
paralelo, threads são importantes em má-
técnicas de programação paralela. São
quinas com vários processadores, onde eles
apresentadas duas aplicações reais, em que
permitem o desenvolvimento de aplicações
o paralelismo permitiu tratar problemas de
paralelas cujas partes se comunicam por
45
memória compartilhada e, além disso,
ALGUMAS FERRAMENTAS DE PROGRAMAÇÃO
de bibliotecas de programação paralela para
muitas vezes executam de forma mais efici-
PARALELA
este tipo de ambiente [6]. Entre elas, prova-
ente do que processos tradicionais. A comu-
velmente a que obteve a maior divulgação e
nicação por memória compartilhada requer
Um número crescente de ferramentas
difusão de uso foi o PVM (Parallel Virtual
um cuidado grande com o problema de sincro-
(bibliotecas, linguagens) para programação
Machine). PVM foi inicialmente implemen-
nização. Para garantir uma relação de prece-
paralela estão disponíveis para o desenvol-
tada para máquinas Unix que se comunicas-
dência entre comandos de processos distin-
vimento de aplicações paralelas. Duas destas
sem por TCP/IP, aproveitando assim o impul-
tos, o programador deve utilizar comandos
ferramentas, utilizadas recentemente em
so de crescimento da Internet. Atualmente
explícitos de sincronização, que devem ser
projetos desenvolvidos em cooperação com
existem versões para diversos outros siste-
providos pela linguagem ou sistema opera-
duas grandes empresas brasileiras, são
mas. A biblioteca PVM é disponível publica-
cional. Com threads, o mecanismo de sincro-
descritas a seguir.
mente, através da Internet, e amplamente
nização mais freqüentemente oferecido é o de
Em 1995, o IEEE definiu um padrão de
variáveis de condição, que correspondem a
interface de programação com threads,
documentada, em especial através de um
um serviço que permite que um processo
conhecido como Posix threads ou Pthreads
Em 1995, autores e usuários de biblio-
permaneça bloqueado até que uma condição
[5]. Desde então, diversos sistemas operacio-
tecas de troca de mensagens fomaram um
seja verdadeira.
livro [4] também disponível por rede.
nais vêm incluindo suporte a esse padrão,
grupo [7] com o intuito de definir uma inter-
O desenvolvimento de aplicações basea-
também implementado por uma biblioteca
face de programação paralela comum, de mo-
das em variáveis compartilhadas e condições
disponível publicamente [8]. No modelo
do a evitar a proliferação de programas escri-
pode ser bastante complexo. Os bloqueios e
Pthreads, vários threads podem ser definidos
tos em diferentes “dialetos”. Esse grupo en-
sinalizações associados a variáveis de condi-
dentro de um único processo. O processo fun-
volveu aproximadamente 40 pessoas de 60
ção podem estar espalhados por um código
ciona como o espaço de endereços de memória
instituições. O resultado desse esforço foi a
extenso, e qualquer acesso a uma variável
que uma determinada aplicação pode uti-
definição do MPI (Message Passing Interfa-
global pode representar uma necessidade de
lizar. Os diversos threads associados a um
ce) [12], que inclui a definição de interfaces de
sincronização, tornando árdua a tarefa de de-
processo compartilham memória: quando um
um conjunto de rotinas para comunicação por
puração do programa paralelo. Muitos auto-
thread realiza escritas na memória (por
troca de mensagens. Desde a publicação do
res acreditam que a forma alternativa de
exemplo, atribuições a variáveis), outro
MPI, em 1995, diversas implementacões já
comunicação entre processos, por troca de
thread pode ler o resultado. O sistema opera-
foram desenvolvidas, sendo várias delas dis-
mensagens, representa uma base mais
cional gerencia a alocação de processadores
poníveis publicamente [7]. O desenvolvimen-
segura para o desenvolvimento de aplicações
para a execução dos threads como se eles
to dessas várias implementacões totalmente
paralelas.
fossem processos independentes. Em uma
compatíveis com a definição original vem fa-
De qualquer maneira, a troca de mensa-
máquina com múltiplos processadores, dife-
zendo do MPI um padrão ad hoc para biblio-
gens é a forma natural de comunicação entre
rentes threads de uma mesma aplicação
tecas de troca de mensagens. O núcleo do
processos que não compartilham memória
podem ser simultaneamente executados em
MPI é formado por rotinas de comunicação
(por exemplo, entre processos que executam
diferentes CPUs. A interface Pthreads define
entre pares de processos (tipo send e receive).
nos vários nós de um cluster de computado-
basicamente os seguintes grupos de rotinas:
Além desse núcleo, o MPI define várias ou-
res). Em sua forma mais básica, um mecanis-
rotinas de controle, que permitem criar,
tras rotinas, entre as quais se destacam roti-
mo de troca de mensagens fornece uma pri-
eliminar e suspender a execução de threads,
nas de comunicação e sincronização em gru-
mitiva para envio de dados para um processo
rotinas de sincronização, entre as quais as
po. A instalação das bibliotecas das diferentes
específico (send) e de recebimento de dados de
que manipulam as variáveis de condição
versões de MPI costuma ser simples. Embora
um processo específico ou de qualquer pro-
descritas na seção anterior, e rotinas para
exija uma certa intimidade com os conceitos
cesso que tenha enviado alguma mensagem
controle de escalonamento, que permitem
de programação paralela, a programação com
(receive). Muitas abstrações e expansões po-
alterar as prioridades relativas dos diversos
MPI não apresenta maiores dificuldades.
dem ser oferecidas em cima desse modelo bá-
threads de uma aplicação.
APLICAÇÃO NO SETOR PETROLÍFERO
sico. Por exemplo, pode-se citar bibliotecas de
Com o aumento da banda passante ofere-
programação paralela que, além de fornece-
cida pelas redes locais, passou a ser comum o
rem diversas variantes de send e receive,
uso de redes de estações de trabalho como se
A otimização da exploração de reserva-
muitas vezes oferecem mecanismos para co-
fossem máquinas multiprocessadoras. Surgi-
tórios de petróleo requer muitas avaliações
municação e sincronização de grupos [11,12].
ram então desde o final dos anos 80 uma série
de possíveis combinações das variáveis de
46
decisão envolvidas, tais como as proprie-
completamente heterogêneas, formadas por
procedimentos exatos, mas computacio-
dades dos reservatórios, a localização dos
estações de trabalho de pelo menos três
nalmente mais custosos. A metodologia
poços e os parâmetros de escalonamento da
fabricantes diferentes.
desenvolvida foi aplicada a um sistema
produção, de modo a obter a melhor estratégia em termos econômicos. Executar uma
realista de grande porte, formado por parte
APLICAÇÃO NO SETOR ELÉTRICO
simulação para tal número de avaliações
da rede brasileira, definido por 19 agentes (empresas), 79 barras e 283 circuitos.
pode não ser viável em termos práticos,
Problemas de programação linear com
O sistema computacional desenvolvido na
devido aos elevados tempos de computação
um número muito grande de variáveis e res-
linguagem C implementando a metodologia
envolvidos. Uma das ferramentas eficientes
trições aparecem em muitas aplicações em
proposta foi capaz de resolver de forma
desenvolvidas para resolver esta aplicação
diferentes áreas, tais como planejamento e
exata este problema [10], utilizando quase
foi um algoritmo genético híbrido [2], cuja
operação de sistemas de produção e trans-
42 horas de processamento em um compu-
estratégia de otimização integra análise
missão de energia, projeto de redes de teleco-
tador Sun UltraSparc com 256 Mbytes de
econômica, simulação dos reservatórios e
municações, localização e dimensionamento
memória. Embora o tempo de processamen-
otimização do projeto.
de plataformas de petróleo, distribuição de
to seja elevado, isto decorre da dificuldade
Embora tal ferramenta tenha apresen-
produtos, roteamento de veículos, localização
intrínseca do problema, que até então não
tado um ótimo desempenho na prática, en-
de centros de serviços e exploração de
havia sido resolvido numericamente.
contrando soluções economicamente muito
recursos naturais, entre outras.
Em uma segunda fase, procurou-se uti-
boas, os tempos de computação observados
Um problema importante no setor elé-
lizar o processamento paralelo como forma
são extremamente elevados. Isto decorre da
trico, em especial dentro do atual contexto
de aceleração da metodologia proposta. A
necessidade de executar muitas simulações,
econômico, consiste na alocação de custos de
estratégia de paralelização adotada baseia-
uma para cada configuração avaliada. Desta
serviços de transmissão entre os diversos
se em buscas cooperativas paralelas, cada
forma, o paralelismo oferece uma excelente
agentes (empresas) que participam do siste-
uma delas implementando uma heurística
alternativa para este tipo de aplicação, per-
ma elétrico interligado, cada um controlando
diferente para acelerar a geração de restri-
mitindo que diferentes configurações sejam
um certo número de usinas e devendo aten-
ções [1]. No caso desta aplicação, foi utiliza-
avaliadas simultaneamente por diferentes
der uma certa demanda em sua área de res-
da uma máquina paralela Sun Starfire
processadores. Através de um projeto contra-
ponsabilidade. Através de projeto contratado
ENT10000 do CENAPAD MG-GO, dispon-
tado em 1998 pela Gerência de Tecnologia e
em 1997 pelo Laboratório de Análises
do de até 32 processadores UltraSparc de
Simulação de Reservatórios da Petrobras, foi
Técnico-Econômicas de Sistemas de Potência
250 MHz. A implementação paralela em C
desenvolvida uma implementação paralela
do Centro de Pesquisas em Energia Elétrica
utiliza Posix threads, em razão da arqui-
utilizando MPI deste algoritmo genético
(CEPEL), desenvolveu-se e implementou-se
tetura desta máquina ser baseada em me-
híbrido. MPI foi escolhida em função de sua
uma metodologia para resolver este proble-
mória compartilhada (vide seção 2). Os re-
portabilidade e das facilidades que oferece
ma de programação linear com um número
sultados obtidos através do processamento
para programação do controle de falhas nos
exponencial de restrições, baseado em uma
paralelo demonstram claramente a eficácia
processadores atuando de forma concorrente.
formulação através da teoria dos jogos coope-
do emprego de paralelismo na solução desta
Os resultados obtidos foram particular-
rativos [3]. A dificuldade computacional
classe bastante importante de problemas
mente animadores, indicando a aderência do
associada à resolução deste problema decorre
de otimização. A implementação da estraté-
paralelismo como solução para este tipo de
do número extremamente elevado de sub-
gia adotada, usando uma configuração com
problema. Em razão das tarefas paraleliza-
problemas de planejamento da expansão da
apenas um processador mestre e quatro es-
das (a simulação de cada configuração) serem
transmissão que devem ser resolvidos a cada
cravos (dentre os 32 disponíveis), permitiu
completamente independentes e do tempo de
iteração de um procedimento de geração de
reduzir o tempo de processamento para ape-
processamento de cada simulação ser bastan-
restrições, cada um deles constituindo por si
nas 5.4 horas, ou seja, para cerca de apenas
te elevado (da ordem de algumas horas, em
só um problema de programação inteira.
12% do tempo observado originalmente.
certos casos), a estratégia de paralelização
A solução inovadora, proposta na primei-
consegue atingir rendimento máximo, obten-
ra fase deste projeto, consistiu na utilização
do-se acelerações da ordem do número de pro-
de meta-heurísticas de última geração
cessadores utilizados. Deve-se ainda men-
(algoritmos genéticos, busca tabu e GRASP
O desenvolvimento de ferramentas de
cionar a flexibilidade do MPI, já que esta
[9]) para acelerar o procedimento de geração
software portáveis, eficientes e simples de
aplicação vem sendo processada em redes
de restrições, minimizando-se a chamada de
utilizar, associado à disponibilidade de
TENDÊNCIAS
47
REFERÊNCIAS
uma gama de máquinas paralelas com
Outra grande vantagem destes siste-
grande capacidade de processamento e
mas decorre de serem facilmente escaláveis
custos decrescentes, vem tornando o pro-
(adição de novos processadores) e atualizá-
[1] R.M. Aiex, C.C. Ribeiro e M.P. Aragão,
cessamento paralelo uma alternativa viá-
veis (upgrade dos processadores, componen-
“Parallel cut generation for service cost allocation
vel para o desenvolvimento de técnicas
tes, redes e software). Finalmente, clusters
in transmission systems”, III Metaheuristics In-
computacionalmente eficientes para a solu-
oferecem uma importante solução não ape-
ternational Conference, 1-6, Angra dos Reis, 1999.
ção de problemas práticos reais de simu-
nas para aplicações científicas, mas também
[2] A.C. Bittencourt e R.N. Home, “Reservoir
lação, otimização, data mining e processa-
para aplicações comerciais exigindo altas
Development and Design Optimization”, Annual
mento de imagens, entre outras aplicações.
taxas de disponibilidade (por exemplo, ban-
Technical Conference and Exhibition of the
Dentre as atuais tendências em pro-
cos e operadoras de cartões de crédito com
Society of Petroleum Engineering, 545-558,
cessamento paralelo, destaca-se a idéia de
processamento de transações on-line).
San Antonio, 1997.
cluster computing. Basicamente, um cluster é
Neste caso, o sistema pode rapidamente
[3] N. Campodónico e M.V. Pereira, “A metho-
uma coleção de PCs ou estações de trabalho
identificar e isolar um elemento do cluster
dology for transmission service cost allocation in
conectados por uma rede, montados com
que entre em pane, transferindo as tarefas
the core of cooperative games”, Relatório técnico,
componentes comerciais padrão. Os super-
por ele desempenhadas para outro pro-
Power Systems Research Inc., Rio de Janeiro, 1996.
computadores até recentemente oferecidos
cessador. Provedores de serviços livres de
[4] A. Geist, A. Beguelin, J. Dongarra, W. Jiang,
como a principal alternativa para o proces-
correio eletrônico (e.g. hotmail) e mecanis-
R. Manchek e V. Sunderman, “PVM: Parallel
samento paralelo de alto desempenho (tais
mos de busca na Internet (e.g. hotbot) são
Virtual Machine - A User's Guide and Tutorial for
como computadores Cray ou Connection
motorizados por clusters, de modo a prover
Networked Parallel Computing”, The MIT
Machine) apresentavam preços muito ele-
altas taxas de acesso simultâneo a um
Press, 1994. (disponível através do WWW em
vados (na casa de alguns milhões de
grande número de usuários.
http://www.netlib.org/pvm3/book/pvmbook.html)
dólares) e taxas de obsolescência extrema-
O Laboratório de Paralelismo da PUC-Rio
[5] Institute of Electric and Electronic Engi-
mente altas, agravadas pelo rápido desa-
conta atualmente com um cluster formado
neering, “Information Technology - Portable
parecimento do mercado de alguns fabri-
por 32 processadores Pentium II 400 MHz
Operating Systems Interface (POSIX) - Part 1 -
cantes. O significativo aumento do desem-
IBM PC 300GL, cada um com unidade de
Amendment 2: Threads Extension”, 1995.
penho e da confiabilidade de PCs, redes e
disco própria, conectados por uma rede
[6] S. Martins, C.C. Ribeiro e N.R. Rodriguez,
estações de trabalho viabilizou o uso de
Ethernet através de um switch IBM 8274
“Ferramentas para programação paralela em
clusters como uma alternativa de baixo
modelo W93 na placa ESM-C-32W que
ambientes de memória distribuída”, Investi-
custo para processamento paralelo em apli-
permite 32 segmentos a 10 Mbps, fun-
gación Operativa 5 (1996), 67-98.
cações que exigem recursos computacionais
cionando sob o sistema operacional Linux.
[7] MPI Forum, http://www.unix.mcs.anl.gov/mpi/
de forma intensiva.
Este cluster entrou em operação recente-
[8] C. Provenzano, “Pthreads”,
Clusters podem ser montados rapida-
mente e foi um importante aporte para
http://www.mit.edu:8001/people/proven/pthreads
mente, utilizando versões de domínio públi-
nossas instalações e capacidade de desen-
[9] C.R. Reeves, “Modern heuristic techniques
co de Linux como sistema operacional; redes
volvimento de pesquisas e projetos. Entre os
for combinatorial problems”, Blackwell, 1993.
Ethernet, SCI ou Myrinet; e ambientes po-
projetos atualmente em desenvolvimento
[10] C.C. Ribeiro, M.P. Aragão, A.I. Tavares,
pulares de software como PVM ou MPI.
neste cluster, deve-se citar a cooperação
R.M. Aiex e E.U. Barbosa, “Projeto LABTEC:
Alguns sistemas baseados em clusters en-
estabelecida com os laboratórios de pes-
Alocação de custos de serviços de transmissão”,
contram-se entre as máquinas apresentan-
quisa da AT&T nos Estados Unidos, visan-
Relatório técnico, Departamento de Informática,
do melhores índices de custo/desempenho.
do o desenvolvimento de uma metodologia
PUC-Rio, Rio de Janeiro, 1997.
Recentemente foi noticiada a montagem de
para solução de um problema de projeto de
[11] V. Sunderam, “A framework for parallel
um cluster formado por 1000 computadores
redes de acesso a serviços de telecomuni-
distributed computing”, Concurrency: Practice
Pentium II 350 MHz padrão e um compu-
cações. O objetivo consiste em desenvolver
and Experience 2 (1990), 315-339.
tador hospedeiro. O laboratório Sandia dis-
um software de otimização que permita
[12] D. Walker, “The design of a standard
ponibilizou em agosto de 1999 um cluster
balancear o lucro potencial que pode ser
message passing interface for distributed
com cerca de 1400 processadores Compaq
obtido provendo-se acesso a um novo
memory
Alpha que atinge 1.1 TFlop/s de desem-
serviço a determinados grupos de usuá-
Computing 20 (1994), 657-673.
penho de pico, que o coloca entre os 10 siste-
rios, em relação ao custo de construir a
mas mais rápidos atualmente disponíveis.
rede que permita oferecer tais serviços.
48
concurrent
computers”,
Parallel