Académique Documents
Professionnel Documents
Culture Documents
INTRODUO
compreendido entre 1973 e 2003, por exemplo, a velocidade dos relgios teve um aumento de
, partindo de 1MHz em 1973 e chegando a 1GHz em 2003.
Apesar dos avanos, no entanto, essa taxa de crescimento no infinita, uma vez que as
condies (aumento da velocidade do clock, paralelismo em baixo nvel, velocidade de acesso
memria, consumo de energia, etc.) que tornaram isso possvel comearam a atingir os seus
limites (Fig. 2). S para citar um exemplo, por volta de 2005, a velocidade dos clocks parou
de crescer e estabilizou-se em torno da faixa 3GHz. Os motivos para isso ficou conhecido
como "Three Walls": i) Power wall - medida que a frequncia do clock aumenta, o consumo
de energia para mant-la cresce de forma desproporcional em nveis inaceitveis,
principalmente, para dispositivos mveis que dependem de baterias, tais como: notebooks,
celulares, tablets, etc.; ii) Instruction-level parallelism wall (ILP) - o processo de paralelismo
automtico de instrues em baixo nvel, realizado pelos atuais processadores, j atingiu o seu
limite mximo de capacidade e eficincia; iii) Memory wall - aumento na discrepncia entre a
velocidade do processador e a velocidade de acesso memria (tempo de latncia), que tem
crescido a uma taxa bem menor que a dos processadores.
2.
Em uma rpida anlise do algoritmo hbrido (Fig.3), pode-se verificar que a cada iterao
uma nova soluo obtida e que cada uma delas uma soluo independente das outras. Isso
significa que, para uma primeira abordagem de paralelizao do algoritmo serial, podemos
aproveitar essa independncia para distribuir o nmero total de execues ( ) do algoritmo
hbrido (carga) entre vrias unidades de processamento, fazendo:
(1)
onde
o nmero de iteraes individuais executadas em cada unidade de processamento,
o nmero total de iteraes do algoritmo hbrido dado a priori e
o nmero de unidades
de processamento envolvidas na execuo do algoritmo hbrido paralelo.
No caso em que
no for divisvel por , j que o nmero de iteraes uma valor
inteiro, teramos uma situao em que existiriam algumas unidades de processamento
executando um nmero de iteraes maior do que outras. Isso acabaria fazendo com que
algumas unidades executassem mais rpido do que outras e ficassem esperando (idle time) por
aquelas que ainda no tivessem terminado o seu trabalho.
Afim de evitar que haja uma distribuio desigual da carga de trabalho
(desbalanceamento de carga) entre as unidades de processamento envolvidas na execuo do
programa em paralelo, podemos redefinir a Eq.(1) de forma que o nmero total de iteraes
( ) no seja mais informado, mas sim obtido indiretamente em funo de um nmero de
iteraes individuais ( ) dado a priori, de modo que todas as unidades de processamento
executem um mesmo nmero de iteraes.
(2)
3.1. Algoritmo hbrido paralelo
Em uma primeira abordagem, o algoritmo hbrido paralelo pode ser implementado
utilizando a troca de mensagens - tcnica computacional paralela que permite a transferncia
de dados, distribuio de trabalhos e sincronizao de aes entre processos paralelos,
realizados atravs da chamada de funes de envio (Send) e de recebimento (Receive) de
mensagens -, utilizando a biblioteca MPI (Message Passing Interface) (Pacheco, 1997 e 1998;
Snir et al., 1996).
O modelo de programao utilizado na implementao paralela do algoritmo hbrido o
SPMD (Single Program Multiple Data), em que um conjunto de unidades de processamento
so reunidas atravs de um canal de comunicao fsico (p.ex. barramento, cabo de rede, etc.),
onde cada uma das unidades recebe uma cpia de um mesmo programa (Single Program)
mais os dados necessrios para o seu processamento, que so divididos entre os processadores
(Multiple Data).
Quando o programa paralelo executado, as unidades de processamento recebem um
nmero de processo, ou rank, que as identifica e, to logo podem, iniciam a execuo do
programa em paralelo, independente dos demais processadores. Quando necessrio, as
unidades podem parar a execuo normal do programa para fazerem trocas de dados e/ou
controles com as outras unidades de processamento.
Para que haja um controle centralizado das aes e um ponto de distribuio e coleta de
dados, elege-se uma das unidades de processamento, tambm conhecida como root, para
executar essa tarefa. Normalmente, a unidade escolhida aquela cujo rank igual a zero
(rank=0).
De modo a minimizar os impactos causados pelo tempo de comunicao gasto com a
troca de dados (overhead de comunicao) entre as unidades de processamento e o root, ao
invs de transmitir todas as razes encontradas em cada unidade de processamento, pode-se
diminuir a quantidade de dados a serem enviados, retirando-se as razes repetidas do conjunto
de solues obtidas em cada unidade de processamento, reduzindo-as para um conjunto
menor de razes distintas, que dever ser transmitido para o root, onde se reuniro todas as
solues para serem selecionadas (retira-se as razes repetidas do conjunto completo e,
escolhe-se aquela que minimiza a funo-objetivo) e, finalmente, ser apresentado como o
conjunto de razes soluo do algoritmo hbrido paralelo (Fig.4).
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
Tabela 1 - Funes-teste.
No
Funo-teste
Sistemas de equao
No de razes
da funo
1
(Bini e Mourrain, 2004)
Himmelblau (HIMM)
9
2
(More et al., 1981)
3
(Grosan e Abraham, 2008)
4
(Kearfott, 1987)
5
(Hirsch et al., 2006)
Para que os sistemas de equaes (Tab.1) possam ser resolvidos pelo mtodo hbrido,
preciso transformar as equaes das funes-teste em um problema de minimizao, elevando
cada equao ao quadrado e convertendo-as em parcelas de uma soma, de modo a formar uma
funo-objetivo no negativa.
(3)
Cada um dos sistemas de equaes , ento, transformado em um problema de
minimizao, onde os mnimos globais nulos da funo-objeto (Eq.3) passam a representar as
solues do sistema original. Dessa forma, o problema assume o seguinte formato:
(4)
4.3. Resultados
Na avaliao de desempenho, os tempos de execuo apresentados (Fig.5) foram obtidos
atravs da mdia aritmtica simples dos tempos alcanados em trs execues completas do
programa paralelo para cada uma das funes-teste apresentadas na Tabela-1.
Em cada execuo, foram realizadas 840 avaliaes (
=840). Esse nmero foi utilizado
por produzir quantidade inteiras de avaliaes individuais ( ={480, 280, 210, 168, 140, 120,
105}) nos arranjos das unidades de processamento executando em paralelo
( ={2,3,4,5,6,7,8}).
(5)
Figura 6 - Speedups.
Aqui mais uma vez, verifica-se que o desempenho do programa paralelo maior nos
casos em que as funes-objetivo demandam um esforo computacional maior para serem
processadas.
5. CONCLUSO
Em uma primeira abordagem de paralelizao do algoritmo hbrido, o programa paralelo
mostrou-se promissor. Nos casos em que a funo-objetivo demande um pequeno esforo
computacional para ser processada, aconselha-se o uso do programa serial, visto que este
apresenta um desempenho melhor nesses casos.
Para as situaes em que a funo-objetivo demande maiores esforos computacionais,
consumindo maiores tempos de processamento, o programa paralelo apresenta um melhor
desempenho em relao verso serial, justificando o seu emprego para estes casos.
Longe de esgotar as possibilidades e a aplicao de outras abordagens de paralelizao
para se alcanar nveis maiores de paralelismo e, portanto, melhores desempenhos
computacionais, essa primeira verso do programa paralelo do algoritmo hbrido uma
ferramenta til para a soluo de problemas que exijam um nvel maior de esforo
computacional, com uma caracterstica intrnseca muito importante, que a escalabilidade do
programa paralelo. O programa foi desenvolvido de forma a permitir o aumento do nmero de
unidades de processamento envolvidas na execuo do algoritmo hbrido em paralelo.
Agradecimentos
O autor agradece ao apoio do Prof. Antnio Jos da Silva Neto pela cesso do
equipamento do laboratrio LEMA (Laboratrio de Ensaios Mecnicos) localizado no
Instituto Politcnico (IPRJ/UERJ), Campus Nova Friburgo, usado na realizao dos testes
computacionais apresentados nesse trabalho.
REFERNCIAS
Bini, D.A.; Mourrain, B. Cyclo, from polynomial test suite.
Disp. em: http://www-sop.inria.fr/saga/POL/BASE/2.multipol/cyclohexan.html. Acesso em: 2014.
Bondi, A.B. Characteristics of Scalability and Their Impact on Performance. Proceedings of the 2nd
International Workshop on Software and Performance,Ottawa, Ontrio, Canad, 2000, p. 195-203. ISBN 158113-195-X.
Grama, A.; Gupta, A.; Karypis, G.; Kumar, V. Introdution to Parallel Computing. 2ed. Pearson. 2003.
Grosan C.; Abraham A. Multiple solutions for a system of nonlinear equations. International Journal of
Innovative Computing, Information and Control, v. 4, n. 9, sept. 2008.
Hirsch M. J.; Meneses C. N.; Pardalos P. M.; Resende M.G.C. Global optimization by continuous grasp. Mar. 8,
2006. Disp. em: http://www.optimization-online.org/DB_FILE/2006/03/1344.pdf. Acesso em: 2014.
Hooke, R.; Jeeves, T.A. (1961) "direct search solution of numerical and statistical problems", Journal of the
Association for Computing Machinery, v. 8, p. 212-229.
Kearfott, R. B. Abstract generalized bisection and a cost bound. Math. Comput. v. 49, n.179,
1987.
Luss, R.; Jaakola, T. (1973) "Optimization by direct search and systematic reduction of the size of search
region", AIChE Journal, vol. 19.
McCool, M.; Robinson, A.D.; Reinders, J. Structured Parallel Programming: Patterns for Efficient
Computation. Morgan Kaufmann Pub. 2012.
More J.J.; Garbow, B.S.; Hillstrom, K.E. Testing Unconstrained Optimization Software, ACM Transactions on
Mathematical Software, 7, 136, 1981
Moore, G.E. (1965). "Cramming more components onto integrated circuits". Electronics Magazine. p.4. 19 April
1965.
Pacheco, P.S. Parallel Programming with MPI. Morgan Kaufmann Pub. 1997. ISBN: 1-55860-339-5.
Pacheco, P.S. A User's Guide to MPI. 1998. Disp. em: ftp://math.usfca.edu/pub/MPI/mpi.guide.ps. Acesso em:
19/08/2014.
Silva, M. R. (2011) "Um novo mtodo hbrido aplicado soluo de sistemas no-lineares com razes
mltiplas", XLIII Simpsio Brasileiro de Pesquisa Operacional, Ubatuba/SP.
Silva, M. R. "Um novo mtodo hbrido aplicado soluo de sistemas no-lineares com razes mltiplas", Tese
de Doutorado, UERJ, Nova Friburgo, RJ, 2009.
Snir, M.; Otto, S.; Huss-Lederman, S.; Walker, D.E.; Dongarra, J. MPI: The Complete Reference. Cambridge:
The MIT Press, 1996.
Sutter. H. The Free Lunch Is Over: A Fundamental Turn Toward Concurrency in Software. Dr. Dobb's Journal,
30(3), March 2005. Disp. em: http://www.gotw.ca/publications/concurrency-ddj.htm. Acesso em:
26/08/2014.