Sei sulla pagina 1di 79

AREANDSON CLEITON COSSA

ESTUDO DA MIGRAO DE UM APLICATIVO


DESENVOLVIDO EM UM AMBIENTE CLUSTER PARA
UM AMBIENTE GRID
Monografia apresentada UNOCHAPEC como
parte dos requisitos para obteno do grau de
ac!are" em Ci#ncia da Computao$
Orientador% E"ton &u's Minetto
C!apec( ) *C+ ,un!o de -../
ii
ESTUDO DA MIGRAO DE UM APLICATIVO
DESENVOLVIDO EM UM AMBIENTE CLUSTER PARA
UM AMBIENTE GRID
AREANDSON CLEITON COSSA
Esta Monografia foi 0u"gada para obteno do t'tu"o de ac!are" em Ci#ncia da Computao+
na 1rea de redes de computadores e apro2ada pe"o curso de Ci#ncia da Computao$
O34EN5A6O3% Prof$ E"ton &u's Minetto
COO36ENA6O3A 6O CU3*O% Prof$ M7nica 5issiani 6e 5oni Pereira
BANCA EXAMINADORA
P3E*46EN5E% Prof$ E"ton &u's Minetto
Prof$ &uciano Car"os 8rosi
Prof$ A"mir Antunes
AGRADECIMENTOS
Agradeo primeiramente a 6eus que me concedeu fora e sa9de para construo deste
traba"!o+ ao meu pai A"tair+ min!a me Mari+ ao meu irmo :abrie" e min!a namorada
*usiana os quais sempre me incenti2aram+ me a0udaram e esta2am do meu "ado nas !oras
que eu mais precisei ao decorrer destes quase cinco anos$
5amb;m agradeo ao meu orientador+ professor e amigo E"ton &u's Minetto pe"a
presena constante no desen2o"2imento do presente traba"!o a";m das significati2as
contribui<es que muito me ensinaram durante o desen2o"2imento deste$
Por fim gostaria de agradecer a todos meus co"egas da uni2ersidade+ em especia" a
6iogo+ 6anie"+ A"ine e &eandro+ os quais a";m de amigos so tamb;m considerados por mim
parte de min!a fam'"ia+ pois sem 2oc#s ta"2e= no c!egaria at; aqui$
:ostaria tamb;m agradecer aos meus amigos Maicon+ ,eferson+ :e"son+ Pau"o e outros
que fa=iam parte da ga"era do 7nibus$ Com certe=a sem 2oc#s as 2iagens que fa='amos todos
os dias facu"dade ficariam mais "ongas$
SUMRIO
Lista de Figuas!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"iii
Lista de Ta#e$as!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!i%
LISTA DE &UADROS!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!%
Lista de SIGLAS E A#e"iatuas!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!%i
RESUMO!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!%iii
A#sta't!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!%i"
( i)t*du+,*!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!(-
(!( ORGANI.AO DO TRABAL/O!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!(0
1 Siste2as disti#u3d*s e 4aa$e$*s!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!(5
6 C*24uta+,* e2 C$uste!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!1(
6!( Va)tage)s e 7eas de a4$i'a+,* da '*24uta+,* e2 '$uste!!!!!!!!!!!!!!!!!!!!!!!!!!11
6!1 Ti4*s de '$ustes!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 16
>$-$? A"ta disponibi"idade @HAA$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ ->
>$-$- a"anceamento de carga @&OA$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ -B
>$-$> Combinao HA e a"anceamento de carga$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$-C
>$-$B Processamento para"e"o @A"ta Performance Computaciona" ) HPCA$$$$$$$$$$$$$$$$$$$$$$$$$$$$-/
>$-$B$? eoDu"f $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ -E
8 C*24uta+,* e2 Gids 9Gid C*24uti)g:!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!6(
8!( M*de$*s de gids !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 68
B$?$? :rids computacionais$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ >B
B$?$- :rids de arma=enamento ou 6ata :rids $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$>C
B$?$> :rids de comunicao ou NetDorF :rids$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$>C
8!1 COMPARAO ENTRE GRIDS E CLUSTERS !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!60
- Fea2e)tas de dese)"*$"i2e)t* 9T**$;its:!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!6<
-!( G$*#us!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 6<
C$?$? Componentes do :"obus 5oo"Fit$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ >E
C$?$- :"obus 5oo"Fit > @:5>A$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ B.
C$?$> :"obus 5oo"Fit B @:5BA$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ B-
-!1 Legi*)!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 81
-!6 Ougid!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 86
0 BIBLIOTECAS PARA TROCAS DE MENSAGENS!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!80
0!( Paa$$e$ "itua$ 2a'=i)e 9PVM:!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!80
0!1 Message Passi)g I)te>a'e 9MPI: !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!8<
/$-$? MP4CH$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ C?
/$-$- MP4CH):-$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ C-
< ESTUDOS DE CASO!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!-6
<!( I)sta$a+,* d* G$*#us T**$;it!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!-8
E$?$? Criao de certifica<es e configura<es de segurana$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$CC
E$?$- 4nicia"i=ao e *ubmisso de 0obs$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$C/
<!1 Estud* de 'as* (!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -<
<!6 Estud* de 'as* 1!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 0?
<!8 Estud* de 'as* 6!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 0(
5 '*)sidea+*es >i)ais!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!00
2i
@ REFERANCIAS!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!05
(? a)e%*s!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!<(
(?!( A)e%* I B C*dig* >*)te d* 4*ga2a de 2u$ti4$i'a+,* de 2atiCes
uti$iCa)d* 24i!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! <(
(?!1 a)e%* II D '*dig* >*)te d* 4*ga2a de 2u$ti4$i'a+,* de 2atiCes se2
uti$iCa 4aa$e$is2*!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! <<
2ii
LISTA DE FIGURAS
Figua (! E%e24$* de u2 '$uste de '*24utad*es!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!1(
Figua 1! C$uste de A$ta dis4*)i#i$idade!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!18
Figua 6! C$uste A$ta Dis4*)i#i$idade e Ba$a)'ea2e)t* de Caga 9/AELO:
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!10
Figua 8! C$uste Be*Fu$>!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!15
Figua -! Re'us*s '*24uta'i*)ais i)de4e)de)tes e =ete*gG)e*s!!!!!!!!!!66
Figua 0! C*24*)e)tes d* g$*#us T**$;it!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!65
Figua <! Gid Se"i'es!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!8(
Figua 5! Estutua de u2 Gid OuGid!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!8-
LISTA DE TABELAS
Ta#e$a (! Ti4*s #7si'*s de dad*s d* MPI!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!85
Ta#e$a 1! Fu)+Hes #7si'as d* MPI!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!8@
LISTA DE &UADROS
&uad* (! E%e24$* de u2 4*ga2a uti$iCa)d* MPI!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!-?
&uad* 1! RSL 4aa a su#2iss,* d* 4*ga2a a* gid!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!-@
&uad* 6! Pseud*'Idig* d* 4*ga2a Pai *u Se"id*!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!06
&uad* 8! Pseud*'Idig* d* 4*ga2a Fi$=*!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!08
&uad* -! CIdig* >*)te 4*ga2a de 2u$ti4$i'a+,* de 2atiCes '*2 MPI!!<0
&uad* 0! CIdig* >*)te 4*ga2a de 2u$ti4$i'a+,* de 2atiCes se2
4aa$e$is2*!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!<@
LISTA DE SIGLAS E ABREVIATURAS
O5 Bag of Tasks
CPU Centra" Processing Unit
85P File Transfer Protocol
::8 Global Grid Forum
:44* Grid Index Information Service
:3AM Grid Resource Allocation Manager
:34* Grid Resource Information Service
:*H Grid Service Handle
:*4 Grid Securit Infrastructure
:*3 Grid Service Reference
:5 Globus Toolkit
HA Hig! Availabilit
HPC Hig! Performance "om#uting
H55P H#ertext Transfer Protocol
&6AP $ig!t%eig!t &irector Access Protocol
&O $oad Balancing
&OA $egion 'b(ect Address
&O46 $egion 'b(ect Identifier
M6* Meta "om#uting &irector Service
M4M6 Multi#le Instruction Multi#le &ata
M4*6 Multi#le Instruction Single &ata
MPM6 Multi#le Program Multi#le &ata
MMG Multimedia )xtension
MP4 Message Passing Interface
O:*A '#en Grid Services Arc!itecture
O:*4 '#en Grid Services Infrastructure
PC Personal "om#uter
PHM Parallel *irtual Mac!ine
Io* +ualit of Service
3*& Globus Resource S#ecification $anguage
*6E Service &ata )lements
*4M6 Single Instruction Multi#le &ata
*4*6 Single Instruction Single &ata
*PM6 Sim#le Program Multi#le &ata
*MP Smmetric Multi#rocessing
*OAP Sim#le 'b(ect Access Protocol
**& Secure Socket $aer
U34 ,niform Resource Identifier
U3& ,niform Resource $ocator
J>C -orld -ide -eb "onsortium
J*6& -eb Services &escri#tion $anguage
GM& )xtensible Marku# $anguage
RESUMO
A uti"i=ao da programao distribu'da eKou para"e"a ; um paradigma que pode ser
uti"i=ado como a"ternati2a a empresas ou institui<es que necessitam cada 2e= mais de poder
computaciona"$ A "imitao f'sica imposta aos computadores+ que apesar de terem seu poder
computaciona" em crescente eLpanso tendem a se estabi"i=ar+ ou a in2iabi"idade da
aquisio de um supercomputador+ nos "e2am a considerar a uti"i=ao de 21rias esta<es de
traba"!o sob a forma de um ambiente de processamento distribu'do+ como um c"uster ou um
grid$
Este traba"!o rea"i=a um estudo dos ambientes c"usters e grids+ definindo)os e eLpondo
suas principais caracter'sticas$ Hisa)se tamb;m fa=er um estudo da possibi"idade de migrao
de ap"icati2os que outrora foram desen2o"2idos especificamente para ambientes c"usters para
um ambiente grid$ Esse estudo ser1 rea"i=ado com base primeiramente nos conceitos aqui
descritos+ sobre as principais tecno"ogias en2o"2idas na programao para"e"a e distribu'da$
Atra2;s de estudos de casos se tentar1 rea"i=ar essa migrao para a 2erificao de sua
2iabi"idade$ Estuda)se tamb;m a possibi"idade de se reescre2er um ap"icati2o para"e"o e
distribu'do em um ambiente grid uti"i=ando suas bib"iotecas nati2as$
ABSTRACT
5!e use of t!e distributed andKor para""e" programming is a paradigm t!at can be used as
a"ternati2e t!e companies or institutions t!at more t!an need eac! time to be ab"e
computationa"$ 5!e p!Msica" "imitation imposed t!e computers+ t!at a"t!oug! to !a2e its
computationa" poDer in increasing eLpansion t!eM tend to stabi"i=e+ or t!e unfeasibi"itM of t!e
acquisition of a supercomputer+ in taFe t!em to consider t!e use of some stations of DorF
under t!e form of an en2ironment of distributed processing+ as c"uster or one grid$
5!is DorF focuses t!e en2ironment studM c"usters and grids+ defining t!em and
disp"aMing its main c!aracteristics$ Je a"so aim at to maFe a studM of t!e possibi"itM of
migration of app"icatorM t!at "ong ago t!eM !ad been de2e"oped specifica""M for en2ironments
c"usters for an en2ironment grid$ 5!is studM it Das carried t!roug! Dit! base first in t!e !ere
described concepts+ on t!e main in2o"2ed tec!no"ogies in t!e para""e" and distributed
programming$ 5!roug! studies of cases De Di"" trM to carrM t!roug! suc! migration for t!e
2erification of t!e 2iabi"itM of suc!$ Je Di"" a"so studM t!e possibi"itM of if reDriting a app"icatorM
para""e" and distributed in an en2ironment grid using its nati2e "ibraries$
( INTRODUO
Nos 9"timos tempos+ !ou2e aumento consider12e" da quantidade de dados produ=idos
ou arma=enados e conseqNentemente um aumento de processamento$ Empresas+ entidades
e organi=a<es esto buscando sa'das para essa situao$
O a"to custo da aquisio e manuteno de ser2idores eficientes forou as empresas a
uti"i=arem sistemas de processamento distribu'dos eKou para"e"os como uma a"ternati2a 2i12e"
para ta"$ Os principais sistemas uti"i=ados para esta tarefa so sistemas baseados em C"usters
e :rids computacionais$
A uti"i=ao de um sistema distribu'do eKou para"e"o gera"mente ; a me"!or sa'da para
quem dese0a aumentar a quantidade e 2e"ocidade de processamento sem a aquisio de
no2os equipamentos$ Mas ento nos deparamos com uma du2ida$ Iua" a me"!or tecno"ogia
ou a que me"!or se encaiLa as necessidades da empresaO Pensando nisso+ e atra2;s de uma
bre2e pesquisa podemos notar que eListem poucos traba"!os que fa=em uma comparao
para eLpor quais as diferenas+ 2antagens e des2antagens de se usar sistemas em um
ambiente c"uster ou em um baseado em grids e qua" a dificu"dade encontrada para fa=er a
migrao de um ap"icati2o desen2o"2ido para c"usters funcionar em grids$
Ao decorrer deste traba"!o+ fa=)se um estudo sobre as tecno"ogias empregadas+ quais
as op<es para a migrao de um ap"icati2o desen2o"2ido em um ambiente de c"usters para
um ambiente baseado em grids$ Ana"isando as diferentes bib"iotecas empregadas e quais as
modifica<es necess1rias no processo de migrao e fa=endo uma equiparao atra2;s de
prot(tipos desen2o"2idos em uma "inguagem de programao adequada para a2a"iao da
2iabi"idade de ta" operao$
Como 2eremos eListem 21rias op<es de grids+ este traba"!o ir1 fa=er uso do :"obus+
um ambiente est12e" e que possui todas as funciona"idades que necess1rias para rea"i=ar o
estudo dese0ado$ Apesar de um ambiente grid suportar mi"!ares de nodos+ e"e ser1 insta"ado
em apenas dois computadores+ cedidos pe"a Uni2ersidade Comunit1ria 3egiona" de C!apec(
@UNOCHAPECOA+ mas que para este estudo so suficientes$
O ap"icati2o esco"!ido para a migrao foi desen2o"2ido pe"o ento acad#mico &uciano
Car"os 8rosi para uti"i=ao em sua monografia submetida Uni2ersidade do Oeste de *anta
Catarina @UNOE*CA com o tema PComparao entre bib"iotecas para processamento para"e"o
com base em um c"uster eoDu"fQ$ A esco"!a deste ap"icati2o se deu por e"e 01 ter sido moti2o
de estudo e de"e ser desen2o"2ido especificamente para um ambiente c"uster$
O estudo dessa migrao ser1 feito em tr#s estudos de caso+ o primeiro far1 a migrao
do ap"icati2o para um ambiente c"uster sem a"tera<es em seu c(digo$ O segundo prop<em a
eLecuo de um ap"icati2o monoprocessado@sem para"e"ismoA de forma remota pe"o grid$ E o
terceiro prop<em que o programa se0a tota"mente reescrito uti"i=ando as bib"iotecas nati2as do
:"obus 5oo"Fit+ ou se0a+ sem uti"i=ar bib"iotecas de passagem de mensagens$
?$? O3:AN4RASTO 6O 53AA&HO
Este traba"!o est1 organi=ado em de= cap'tu"os+ abordando primeiramente a sua
introduo e organi=ao$
O segundo cap'tu"o da uma 2iso gera" do que so sistemas distribu'dos e para"e"os+
menciona um pouco de sua !istoria e as suas defini<es e o que os diferenciam$ 5amb;m
aborda as c"assifica<es dos computadores segundo a arquitetura$
Em seguida abordamos a computao em c"usters+ dando sua definio+ suas
2antagens e suas c"assifica<es dando #nfase a computao de a"to desempen!o$ Neste
capitu"o tamb;m apresentamos o c"uster de processamento para"e"o eoDu"f$
O capitu"o seguinte abrange a computao em grids+ defini<es e caracter'sticas$
Apresenta tamb;m os principais mode"os de grids eListentes descre2endo as caracter'sticas
de cada um de"es$ H1 tamb;m uma bre2e comparao de c"usters e grids com intuito de um
me"!or esc"arecimento de suas diferenas$
As ferramentas de desen2o"2imento para grids @ToolkitsA so abordadas no quinto
capitu"o$ Neste capitu"o apresentamos o :"obus+ o &egion e o Ourgrid$ Onde fora dada #nfase
ao :"obus por ser a ferramenta esco"!ida para ser uti"i=ada neste estudo$
No seLto cap'tu"o descre2emos sobre as bib"iotecas de passagem de mensagens em
ambientes c"usters e grids$ 5amb;m fa"amos sobre os dois padr<es eListentes+ o PHM e o
MP4+ este 9"timo mais deta"!adamente$
No s;timo cap'tu"o esto os estudos de casos imp"ementados pe"o acad#mico$
No pr(Limo so re"atadas as conc"us<es finais e sugest<es para traba"!os futuros$
O nono capitu"o tra= as refer#ncias bib"iogr1ficas uti"i=adas para o desen2o"2imento do
presente traba"!o$
Em seguida temos os aneLos ? e -+ os quais tra=em os c(digos dos programas
estudados neste traba"!o+ desen2o"2idos pe"o ento acad#mico &uciano Car"os 8rosi$

1 SISTEMAS DISTRIBUJDOS E PARALELOS
A busca intermin12e" por poder computaciona" fa= com que a ind9stria de computadores
busque no2as so"u<es para saciar a necessidade de cic"os de CPU$ *egundo
5anenbaum@?UU>A quando o Eniac surgiu+ eLecuta2a >.. opera<es por segundo+ mi" 2e=es
mais r1pido que qua"quer ca"cu"adora da ;poca+ mas pessoas ainda no esta2am satisfeitas
com o resu"tado$ Astr7nomos tentando descobrir o sentido do uni2erso+ bi("ogos tentando
des2endar o genoma !umano+ engen!eiros aeron1uticos interessados em aumentar a
segurana e a efici#ncia de aerona2es+ todos querem mais poder de processamento$ PNo
importa quanto poder computaciona" eLista+ e"e nunca ser1 suficienteQ @5ANENAUM+?UU>A$
*egundo 5anembaum@?UUCA os sistemas computacionais esto tendo uma re2o"uo$
6esde o inicio da era da computao moderna+ por 2o"ta de ?UBC+ at; meados de ?UVC+ os
computadores eram grandes e caros$ Cada minicomputador gera"mente custa2a mi"!ares de
d("ares+ por isto+ as organi=a<es tin!am apenas um grande e poderoso computador e
di2ersas esta<es de traba"!os conectadas a e"e$
Com o desen2o"2imento dos microprocessadores e com a in2eno das redes de
comunicao de a"ta 2e"ocidade essa situao comeou a se modificar$ 6e m1quinas que
custa2am em torno de ?. mi"!<es de d("ares e eLecuta2am apenas a"gumas instru<es por
segundo passamos para m1quinas que custam em torno de ?... d("ares e eLecutam ?.
mi"!<es de instru<es por segundo$ *egundo 5anembaum@?UUCA se os carros ti2essem
e2o"u'do na mesma proporo+ um 3o""s 3oMce custaria ?. d("ares e faria uma m;dia de um
bi"!o de qui"7metros por "itro de gaso"ina$
A e2o"uo das redes de comunica<es possibi"itou que d9=ias ou centenas de
computadores+ interconectados entre si+ pudessem trocar informa<es a uma a"ta 2e"ocidade+
fa=endo com que uma quantidade enorme de dados possam ser mo2idos entre as m1quinas
com 2e"ocidades que 2ariam de ?. a ?.. mi"!<es de bitsKsec ou mais$
O resu"tado da e2o"uo dessas tecno"ogias tornou poss'2e" o surgimento de um
sistema computaciona" formado por um grande n9mero de CPUWs inter"igadas por uma rede
de comunicao de a"ta 2e"ocidade+ gera"mente c!amado de *istema 6istribu'do
@5ANEMAUM+?UUCA$
Em uma me"!or definio+ podemos di=er que um sistema distribu'do ; uma co"eo de
computadores independentes @aut7nomosA que se apresentam para os usu1rios do sistema
como um simp"es computador$ O que a diferencia da programao para"e"a ; que esta di2ide
ap"ica<es em di2ersos processos e os eLecuta para"e"amente em 21rios processadores+
2isando o aumento de desempen!o$ ,1 a distribu'da eLecuta ap"ica<es espa"!adas por
21rios computadores interconectados atra2;s de uma rede+ podendo estes fa=er uso do
para"e"ismo ou no$ @:ONSA&HE*+ PA64&HA+ -..?A
Mic!ae" 8"Mnn em ?UE- c"assificou os mode"os de arquiteturas de computadores
segundo o n9mero de f"uLo de dados e de instru<es eListentes em cada instante$ AbaiLo
esto as quatro c"asses mencionadas por e"e @P45AN:A+ -..-A$
Single Instruction Single &ata @*4*6A
X a arquitetura mais simp"es+ onde uma 9nica instruo ; eLecutada por 2e= a cada
dado en2iado$ Estas m1quinas no uti"i=am nen!um para"e"ismo+ so as m1quinas
de Han Neuman tradicionais$
Multi#le Instruction Single &ata @M4*6A
X uma arquitetura onde as m1quinas eLecutam 21rias instru<es sobre apenas um
item de dado$ Esta arquitetura ainda no possui um representante constru'do$
Single Instruction Multi#le &ata @*4M6A
Nesta arquitetura ocorre o para"e"ismo de dados$ Uma 9nica instruo ; eLecutada
para"e"amente uti"i=ando 21rios dados$ Como eLemp"o podemos citar a tecno"ogia
Multimedia )xtension @MMGA encontrada nos processadores atuais e nos
computadores 2etoriais$
Mu"tip"e 4nstruction Mu"tip"e 6ata @M4M6A
X um mode"o de arquitetura para"e"a onde cada processador age independente+ com
seu proprio f"uLo de dados$ Portanto !1 21rias instru<es uti"i=ando 21rios dados
simu"taneamente$ *egundo 5anenbaum@?UUCA nesta categoria esto todos os
sistemas distribu'dos$ Podemos di2idir essa arquitetura em duas c"asses+ M4M6 de
mem(ria comparti"!ada e M4M6 com mem(ria distribu'da$
aA M4M6 de mem(ria comparti"!ada$
*o m1quinas que possuem 21rios processadores e comparti"!am um
mesmo espao de mem(ria$ A principa" 2antagem ; que o comparti"!amento
de dados entre os processos ; muito mais r1pido+ mas em contrapartida
esses computadores so muito mais caros+ a"em de eListir uma "imitao
f'sica na quantidade de processadores$
bA M4M6 com mem(ria distribu'da$
:era"mente c!amados de mu"ticomputadores+ so m1quinas que possuem
21rios processadores+ cada um com sua pr(pria mem(ria$ No eListe
nen!um tipo de mem(ria comum entre e"es+ a comunicao ; feita atra2;s
de dispositi2os de entradaKsa'da+ gera"mente com troca de mensagens entre
e"es$ Um dispositi2o formado por processador+ mem(ria "oca" e dispositi2os
de entrada e sa'da ; c!amado de n($ X poss'2e" construir m1quinas deste
tipo com mi"!ares de unidades processadoras$ A des2antagem do seu uso ;
a comp"eLidade de sua programao$
A programao para"e"a tem como principa" ob0eti2o transformar a"goritmos grandes e
comp"eLos em pequenas tarefas e distribu')"as para que se0am eLecutadas simu"taneamente
em 21rios processadores$ Por;m nem todas as ap"ica<es podem ser parcia"mente ou
tota"mente para"e"i=adas$
Programar para"e"amente ; muito dif'ci"+ tarefas eLecutadas em para"e"o aguardam a
fina"i=ao mutua para poder coordenar resu"tados+ trocar dados ou reiniciar uma no2a tarefa$
8a=er uma correta sincronia entre e"as ; fundamenta" e muito dif'ci"$
6 COMPUTAO EM CLUSTER
*egundo Pitanga @-..>A um c"uster ; compreendido+ na sua forma mais b1sica+ por um
sistema com no m'nimo dois computadores @denominados por nodosA que eLecutam
ap"ica<es ou outras tarefas de uma maneira em que o usu1rio o qua" est1 interagindo com o
sistema ten!a a i"uso que se trata de um recurso 9nico @Pcomputador 2irtua"QA$
Em uma definio mais simp"es+ c"uster ; um sistema onde dois ou mais computadores
traba"!am em con0unto para rea"i=ar um processamento pesado+ di2idem as tarefas de
processamento entre si e traba"!am como se fosse um 9nico computador$
8onte% @ueno+-..-A$
8igura ?$ ELemp"o de um c"uster de computadores$
A figura ? mostra um c"uster com seus nodos @back.endA @c?$$$cnA inter"igados por um
s%it! e contro"ados por um ser2idor @front.endA
A construo de um c"uster de computadores pode ser 2ista como uma a"ternati2a para
uni2ersidades e empresas que precisam obter processamento de a"to desempen!o na
reso"uo de prob"emas atra2;s de ap"ica<es que permitem ter seu processamento
para"e"i=ado com uma frao apenas do 2a"or de aquisio de um supercomputador
?
da
mesma c"asse de processamento$
?
Computador com grande capacidade de processamento$
>$? HAN5A:EN* E Y3EA* 6E AP&4CASTO 6A COMPU5ASTO EM C&U*5E3
As grandes corpora<es precisam de um a"to desempen!o dos computadores para
poderem+ por eLemp"o+ renderi=ar gr1ficos 2etoriais+ fa=erem pre2is<es meteoro"(gicas ou
simu"a<es de eLp"os<es de bombas at7micas e outras tarefas de processamento pesado
com um custo re"ati2amente baiLo$ ,1 a a"ta disponibi"idade de a"guns sistemas ;
imprescind'2e" para a"gumas empresas+ onde minutos com o sistema indispon'2e"
acarretariam em mi"!ares de d("ares em pre0u'=os @P45AN:A+-..-A$
A computao em c"uster oferece a"to desempen!o e to"erZncia a fa"!as enquanto a
uti"i=ao de apenas um supercomputador no garantiria essa segurana$
*egundo Pitanga@-..-A so a"gumas 2antagens da uti"i=ao de c"usters de
computadores$
A"to desempen!o
H1 uma grande diminuio do tempo de processamento com a uti"i=ao de prob"emas
comp"eLos atra2;s do processamento para"e"o$
Esca"abi"idade
O poder computaciona" do c"uster pode ser faci"mente acrescido+ caso !a0a
necessidade+ apenas com a adio de no2os componentes ou n(s ao mesmo$
5o"erZncia a fa"!as
O sistema+ como um todo+ ter1 um aumento de confiabi"idade+ caso a"guma parte
c!egar a fa"!ar$
aiLo custo
A uti"i=ao de computadores simp"es para a sua imp"ementao possibi"itando a
obteno de processamento de a"to desempen!o a um custo re"ati2amente baiLo se
comparado com supercomputadores com a mesma capacidade computaciona"$
4ndepend#ncia de fornecedores
A construo de um c"uster+ fa=endo o uso de soft%ares "i2res e a no uti"i=ao de um
!ard%are especifico+ o torna "i2re de depend#ncias de fabricantes e "icenas de uso$
Os c"usters podem ser uti"i=ados em qua"quer situao onde ti2ermos grandes
prob"emas computacionais e que o processamento para"e"o se0a considerado uma 2antagem$
:era"mente so ap"ica<es muito grandes+ que necessitam enormes quantidades de
mem(ria+ tempo de processamento gigantesco ou fa=em uso e"e2ado de comunicao e que+
pe"a dimenso de suas necessidades+ so tidas como imposs'2eis de se reso"2er sem o uso
de computadores para"e"os @P45AN:A+-..>A$
>$- 54PO* 6E C&U*5E3*
EListem di2ersos tipos e ap"ica<es para os c"usters+ neste capitu"o abordaremos os
principais tipos de c"usters uti"i=ados na atua"idade$
3.2.1 A$ta
dis4*)i#i$idade 9/A:
5er uma pre2iso de quando um computador ir1 ter prob"emas ou ir1 parar ; muito
dif'ci"$ *egundo Pitanga@-..BA a partir de >.$... !oras de uso a probabi"idade que um sistema
tem de apresentar fa"!as em seu !ardDare @discos+ fontes de a"imentao+ interfaces de rede
entre outrosA ; enorme$ X muito f1ci" de encontrar um administrador de sistema que 01 te2e a
not'cia de que um de seus ser2idores cr'ticos se encontra fora do ar bem no meio da
madrugada+ tendo de "e2antar e tomar as de2idas pro2id#ncias para a reati2ao do sistema
@P45AN:A+-..>A$
Atua"mente estamos muito dependentes de a"guns ser2ios "igados a computadores$ A
a"ta disponibi"idade ; fundamenta"+ principa"mente quando a maior funciona"idade de uma
empresa ; de a Poferta de a"gum ser2io computaciona"Q+ como sites de comercio e"etr7nico+
de noticias+ banco de dados entre outros @P45AN:A+-..>A$
Uma maneira de se manter a disponibi"idade de um ser2io ; imp"ementando um c"uster
de A"ta 6isponibi"idade para rep"icar os ser2ios e ser2idores$ Pode ser uti"i=ada a
redundZncia de !ardDare e uma reconfigurao de softDare+ fa=endo 21rios computadores
traba"!arem como se fossem um 9nico+ onde todos se monitoram+ e em caso de fa"!as
assumam os ser2ios do outro$ Esse monitoramento ; rea"i=ado por um softDare comp"eLo
que tem a responsabi"idade de monitorar as m1quinas de uma rede+ saber quais os ser2ios
que esto sendo eLecutados+ os computadores respons12eis por tais ser2ios e quais os
procedimentos a serem seguidos em caso de fa"!a$ No caso de uma fa"!a ocorrer+ o ob0eti2o
principa" ; a disponibi"idade dos ser2ios$ @P45AN:A+-..>A$
Nos c"usters de a"ta disponibi"idade os equipamentos so uti"i=ados em con0untos+
mantendo os ser2ios e os equipamentos sempre ati2os+ e2itando assim que m1quinas
fiquem ociosas esperando apenas que um dos ser2ios ou ser2idores fa"!e para que este se0a
substitu'do$
8onte% @P45AN:A+-..>A$
8igura -$ C"uster de A"ta disponibi"idade$
A figura - mostra um c"uster de a"ta disponibi"idade onde as esta<es+ independente do
sistema operaciona"+ acessam um ser2idor de arqui2os atra2;s de uma rede pub"ica de uma
forma transparente+ enLergando como se fosse apenas um computador$ Os ser2idores
554*3H? e 554*3H- monitoram)se atra2;s de uma rede pri2ada+ quando um de"es para+ o
outro assume os ser2ios que o ser2idor rea"i=a2a$ Poder1 !a2er uma perda de desempen!o
mas a disponibi"idade dos ser2ios ser1 garantida$
3.2.2Ba$a)'ea2e)t* de 'aga 9LO:
Com a ascenso da internet e o aumento no trafego de dados gerados por e"a+ !ou2e
um grande congestionamento nos ser2idores que prestam ser2ios em uma rede$ Ana"isando
qua"quer porta" de internet+ notamos que eListem 21rios ser2idores para a eLecuo de um
mesmo con0unto de tarefas+ cada um com fun<es e capacidades diferentes$ Norma"mente
apenas eListe a redundZncia de ser2ios+ mas muito poucos se preocupam com o
ba"anceamento de cargas @P45AN:A+-..>A$
Uma so"uo que est1 em crescente uti"i=ao para pro2er um aumento na capacidade
de rede e aumento de performance ; o ba"anceamento de carga entre ser2idores$ A
!ospedagem de sites e o comercio e"etr7nico 01 de2em conter como parte integrante de seus
pro0etos o ba"anceamento+ mas esta tecno"ogia no se de2e deter apenas a pro2edores$ Esse
ba"anceamento ; rea"i=ado atra2;s de um softDare que fa= mais do que apenas
redirecionamento do trafego de rede para os ser2idores+ e"e de2e pro2er de caracter'sticas de
suporte a esca"abi"idade do 2o"ume de trafego 2erificando a comunicao e a redundZncia
entre ser2idores$ Este ba"anceamento de2e ficar de forma transparente para o usu1rio+
fa=endo a i"uso de que se trata de apenas um ser2idor @P45AN:A+-..>A$
3.2.3C*2#i)a+,* /A e Ba$a)'ea2e)t* de 'aga
O A"to desempen!o e o ba"anceamento de carga no significam necessariamente a"ta
disponibi"idade$ H1 casos onde eListe necessidade de se ter um sistema em ati2idade 2inte e
quatro !oras por dia+ sete dias por semana e+ a";m disto+ possuir um sistema que possibi"ite
um ba"anceamento no trafego de dados entre os ser2idores$ Por isso este c"uster combina as
caracter'sticas de dois tipos de c"uster% A"ta disponibi"idade e a"anceamento de carga$ X
uti"i=ado gera"mente em ser2idores Deb+ e)mai"+ neDs+ ftp entre outros @P45AN:A+-..>A$
8onte% @P45AN:A+-..>A$
8igura >$ C"uster A"ta 6isponibi"idade e a"anceamento de Carga @HA[&OA
A figura > mostra a estrutura de um c"uster misto de A"ta 6isponibi"idade e
a"anceamento de carga onde ; feita um ba"anceamento de carga nos ser2idores !ttp
rodando apac!e
-
e com uma a"ta disponibi"idade dos ser2idores de dados que se monitoram
atra2;s da t;cnica de !earbeat
/
00
3.2.4 P*'essa2e)t*
4aa$e$* 9A$ta Pe>*2a)'e C*24uta'i*)a$ D /PC:
aseia)se basicamente em um mode"o de c"uster uti"i=ado gera"mente para a rea"i=ao
de grandes tarefas computacionais que eLigem a"ta capacidade de processamento$ Esse
c"uster di2ide grandes processos em 21rios processos menores que so distribu'dos entre os
nodos$ Cada n( do c"uster pode ser um simp"es computador+ sem a necessidade de grandes
recursos computacionais+ como os encontrados em supercomputadores tradicionais$ Um
eLemp"o desse tipo de c"uster ; o pro0eto Beo%ulf da NA*A @P45AN:A+ -..>A$
Os c"usters de a"ta performance so pro0etados para aumentar o poder de
processamento uti"i=ando a computao para"e"a para a so"uo de determinado prob"ema$
EListem muitos eLemp"os de computadores cient'ficos que uti"i=am 21rios processadores de
baiLo custo para eLecutar um grande n9mero de opera<es$ 4sto ; c!amado de computao
para"e"a ou para"e"ismo @8O36 et a""+-..-A$
*egundo 8O36 et a"" @-..-A esse tipo de c"uster+ ; composto tipicamente de um grande
n9mero de n(s$ C"usters com centenas de n(s no so incomuns$ 8requentemente neste
ambiente+ um usu1rio interage com um n( espec'fico @front.endA para iniciar ou programar um
traba"!o ser eLecutado$ A ap"icao+ 0untamente com 21rias fun<es dentro do c"uster+
determina como este traba"!o ser1 distribu'do atra2;s dos 21rios n(s do c"uster+ fa=endo uso
dos recursos dispon'2eis para a"canar o resu"tado dese0ado$
*egundo Pitanga@-..>A+ os principais componentes para se construir um c"uster de a"ta
performance so%
computadores de A"ta Performance @PCs+ -orkstations ou *MPsA\
-
Apac!e ; um ser2idor -eb1 "i2re e compat'2e" com o protoco"o !ttp$
>
Hearbeat 2 um soft%are de monitoramento utili3ado entre os nodos de um cluster0
sistemas operacionais @baseados em um micro)Ferne" ou em camadasA\
redes de comunicao de a"ta performance @:igabit+ MMrinet e outrasA\
p"acas de rede compat'2eis com a tecno"ogia empregada\
ser2ios e protoco"os de comunicao @ Acti2e e 8ast Messages A\
c"uster Middle%are @4magem 9nica e disponibi"idade do sistemaA\
ap"ica<es e subsistemas @gerenciamento+ sistema de arqui2os para"e"oA\
softDare de gerenciamento de recursos e esca"onamento de tarefas @OpenP*+
CON6O3 e outrosA\
bib"iotecas ara passagem de mensagens e ferramentas @compi"adores+ PHM+
MP4 e outrosA\
ap"ica<es seqNenciais e para"e"as$
3.2.4.1 eoDu"f
A origem do nome Beo%ulf 2em do nome de um !er(i ing"#s muito 2a"ente+ que derrotou
o mostro de :rende"$ Esse foi o nome esco"!ido para um c"uster primeiramente fundamentado
pe"a NA*A com fina"idades especificas de processar informa<es espaciais @A&EC34M+-..BA$
O uso de computadores pessoais @PCA para eLpandir a fora de processamento para"e"o
foi o"!ada pe"a NA*A como uma so"uo para as ap"ica<es de misso criticas e tamb;m
conseguia atender os ob0eti2os da empresa de a"to desempen!o com baiLo custo$
Beo%ulf ; um c"uster de processamento para"e"o+ esca"12e"+ baseado em um con0unto
de !ardDare fracamente acop"ado
B
em uma rede de comunicao pri2ada atra2;s de troca de
mensagens e uti"i=ando softDares "i2res @&inuLA$ @ME3]E^+-..OA
O pro0eto Beo%ulf foi pro0etado por seus idea"i=adores+ 6ona"d ecFer e 5!omas
*ter"ing+ como uma a"ternati2a para os a"tos custos dos supercomputadores$ O prot(tipo inicia"
era um c"uster de computadores que consistia em ?/ processadores 6GB conectados por uma
B
Computadores independentes que se comunicam atra2;s de troca de mensagens por uma
rede$
rede Et!ernet
C
dedicada$ Y m1quina foi um sucesso imediato e a sua id;ia de sistemas
baseados na uti"i=ao de microcomputadores para satisfa=er a eLig#ncias computacionais
especificas se espa"!ou rapidamente atra2;s da NA*A e das comunidades acad#micas e de
pesquisa @ME3]E^+-..OA$
*egundo Pitanga@-..>A podemos citar a"gumas 2antagens da uti"i=ao de um c"uster
eoDu"f+$
A uti"i=ao de componentes de grande disponibi"idade no mercado+ e2itando
assim a sua monopo"i=ao por certo fabricante e permitindo a reduo de
custos e faci"itando a sua manuteno$
Continuidade 5ecno"(gica+ pois seus componentes so faci"mente encontrados$
8"eLibi"idade de configurao+ o c"uster pode ser adequado a sua ap"icao e ao
oramento dispon'2e"$
Esca"abi"idade+ tornando poss'2e" a eLpanso do c"uster com a adio de mais
computadores+ conforme a necessidade de aumento de poder de
processamento$
A"ta disponibi"idade+ pois cada n(@escra2oA traba"!a de uma forma independente+
caso um 2en!a a fa"!ar no afetara a disponibi"idade gera" do c"uster$
8onte% @A&EC34M+ -..BA$
8igura B$ C"uster Beo%ulf
C
Et!ernet ; uma tecno"ogia pra interconeLo para redes "ocais$
A figura C demonstra um esquema simp"es de um c"uster Beo%ulf onde os N(s @NodosA
esto inter"igados por um s%itc! et!ernet e contro"ados ou gerenciados por uma estao
@Front.end40
Para um c"uster poder ser considerado um eoDu"f e"e precisa atender a a"gumas
caracter'sticas$
Os componentes uti"i=ados no podem ser sob encomenda\
4ndepend#ncia de fornecedores de !ard%are e soft%are5
Os perif;ricos de2em ser esca"12eis\
Uti"i=ao de softDare "i2re e com c(digo aberto\
Uti"i=ao de ferramentas e bib"iotecas para computao distribu'da "i2res e sem
grandes modifica<es\
3etorno comunidade do pro0eto as me"!orias desen2o"2idas$
Uma das caracter'sticas c!a2e dos clusters Beo%ulf ; a uti"i=ao do sistema
operaciona" "i2re &inuL e as bib"iotecas de "i2re distribuio para as trocas de mensagens @MP4
e PHMA$
8 COMPUTAO EM GRIDS 9GRID COMPUTING:
Os :rids computacionais so a pr(Lima gerao da computao distribu'da$ O seu
ob0eti2o ; criar a i"uso de um sistema pr(prio simp"es+ por;m grande e poderoso que contro"a
um computador 2irtua" eLterno formado por uma grande co"eo de sistemas !eterog#neos
conectados que comparti"!am seus recursos @8E33E43A et a""+ -..CbA$
*egundo 8oster@-..CA o status atua" da computao pode ser comparada em a"guns
aspectos com a e"etricidade por 2o"ta de ?U?.$ Naque"e tempo+ a gerao de energia e";trica
era poss'2e"+ e os no2os dispositi2os que eram p"ane0ados 01 dependiam da energia e";trica+
mas a necessidade de cada usu1rio construir e operar um gerador e";trico in2iabi"i=a2a o seu
uso$ O desen2o"2imento 2erdadeiramente re2o"ucion1rio no era a e"etricidade em si+ mas as
tecno"ogias associadas a sua transmisso e distribuio$ Esses ser2ios agrupados forneciam
um acesso de baiLo custo e de confiana a um ser2io padroni=ado$ E como resu"tado+ tornou
a energia e";trica mundia"mente acess'2e"$ Na 2erdade+ foi desta ana"ogia que partiu a
nomenc"atura Grid+ baseado nas ma"!as de inter"igao dos sistemas de energia e";trica$
*egundo Minetto@-..CA :rids so usu1rios geograficamente separados mas que
comparti"!am de uma forma dinZmica seus recursos computacionais$ 3emo2endo as
coneL<es fiLas entre ap"ica<es+ ser2idores+ bases de dados+ entre outros+ tratando tudo como
se fosse um ser2io 2irtua"i=ado$ Esses dispositi2os podem ser distribu'dos geograficamente
pe"o mundo+ pertencer a diferentes empresas ou institui<es e uti"i=ar diferentes sistemas
operacionais ou p"ataformas de !ardDare$
Em uma definio mais forma" e mais comp"eta+ a computao em grids pode ser 2ista
como um mode"o computaciona" distribu'do que suporta o conceito de organi=a<es
dinZmicas 2irtuais fornecendo o acesso seguro e coordenado+ comparti"!ando de recursos
!eterog#neos e geograficamente distribu'dos+ tais como ap"ica<es+ dados+ poder de
processamento+ de "argura banda+ de capacidade de arma=enamento e de outras+ sobre uma
rede a";m dos "imites organi=acionais+ usando padr<es e protoco"os abertos$ Os usu1rios do
grid 2#em estes recursos como se fosse apenas um computador 2irtua" grande$ A
padroni=ao das comunica<es entre sistemas !eterog#neos causou a eLp"oso da 4nternet$
A r1pida padroni=ao para comparti"!ar recursos+ 0unto com a disponibi"idade de uma "argura
de banda maior+ est1 "e2ando a uma poss'2e" e2o"uo da computao em grids tornando)a
igua"mente grande @8E33E43A et a""+ -..CbA$
A computao em grids tem e2o"u'do desde sua definio no inicio dos anos U.$
Naque"e tempo+ computao em grids era apenas um conceito que comea2a a ser
imp"ementado nas uni2ersidades$ Ho0e+ ; uma rea"idade que pode ser usada no somente em
ambientes acad#micos ou cient'ficos+ mas em empresas que necessitam de uma so"uo de
ponta para seus c"ientes @8E33E43A+ et a""+ -..>A$
Muitas coisas aconteceram da ;poca do conceito inicia" at; sua imp"ementao$ Nos
anos seguintes ao seu inicio+ os grids foram usados em "aborat(rios e gan!ando maturidade
at; se tornarem um mode"o$ Esse mode"o iniciou uma no2a maneira de pensar da
comunidade de 54 que a0udaram a reso"2er eLig#ncias dos usu1rios finais$ 6efini<es como
Server Grid + &eskto# Grids + &ata Grids e outras apareceram$
Conforme 8erreira et a"" @-..CbA as principais caracter'sticas de um :rid so%
Mode"o computaciona" distribu'do$
O ambiente grid ; baseado na computao distribu'da+ isto ;+ sua infra)estrutura no ;
centra"i=ada+ pois seus recursos so distribu'dos geograficamente$
Uti"i=a uma rede de comunicao$
A rede ; a estrutura f'sica que interconecta os recursos distribu'dos$
Padr<es e protoco"os abertos$
A uti"i=ao de padr<es e protoco"os abertos fornece mecanismos para a comunicao
entre componentes desen2o"2idos por 2endedores diferentes+ permite tamb;m que os
co"aboradores se concentrem mais na programao "(gica do que nas rotinas de
comunicao$
Uso de recursos comparti"!ados$
Como uti"i=a de uma mode"o de computao distribu'da os grids fornecem a !abi"idade
de comparti"!ar recursos$ A"em de recursos b1sicos como processador centra"+ discos e
mem(ria+ e"es podem en2o"2er ainda outros e"ementos+ tais como redes+ bases de dados+
dispositi2os de arma=enamento e outros$ Este comparti"!amento de recursos atra2;s de uma
rede permite a obteno de um sistema !omog#neo composto de recursos !eterog#neos$
Organi=a<es dinZmicas 2irtuais$
Iuando um usu1rio requer um ser2io do grid+ pode uti"i=ar o recurso so"icitado de um
segundo partido que pertena a uma outra organi=ao$ Por a"gum tempo+ estes dois partidos
pertencero a mesma organi=ao+ uma organi=ao 2irtua" que tem a pretenso de fornecer
o recurso so"icitado$ As organi=a<es 2irtuais precisam ser dinZmicas+ pois o se o usu1rio
so"icitar mais recursos que o fornecedor tem capacidade de fornecer o grid de2e procurar por
mais recursos+ eLpandindo essa organi=ao para suprir as necessidades do usu1rio$
Acesso seguro$
A uti"i=ao de organi=a<es 2irtuais dinZmicas requer mecanismos para assegurar a
proteo de todos os e"ementos comparti"!ados$ X necess1rio garantir a identidade dos
atores+ assegurando a autenticao dos consumidores e dos fornecedores+ bem como garantir
que a informao transferida pe"a rede no se0a modificada ap(s a sua entrega$ A segurana
de2e reforar a pri2acidade+ certificando que somente quem tem direito a informao poder1
ter acesso a mesma$
Acesso coordenado
Um acesso coordenado tra= a id;ia de um agendamento de traba"!os+ processos ou
unidades de processamento mais e"e2ado como tarefas$ A coordenao ; uma maneira de
fornecer mecanismos para qua"idade de ser2io @Io*A$ Apesar de Io* no ser uma
qua"idade origina" de um grid ; ob2io que se o grid puder assegurar Io* cumprir1 seus
ob0eti2os de uma forma mais efica=$ Como eLemp"o seria separar os usu1rios de um grid
como regu"ares e superiores$ Estes usu1rios superiores iriam se beneficiar de um Io* mais
e"e2ado+ garantindo que seus traba"!os se0am agendados com uma prioridade mais a"ta$
8onte% @8E33E43A et a""+ -..CaA
8igura C$ 3ecursos computacionais independentes e !eterog#neos$
A figura C mostra a maneira de como um grid pode ser constru'do de recursos
computacionais !eterog#neos interconectados pe"a internet mas sem re"ao nen!uma entre
e"es$
B$? MO6E&O* 6E :346*
Os mode"os de grids podem ser identificados baseados nos tipos de ser2ios fornecidos
e os eLigidos pe"os requisitantes$ EListem tamb;m a"guns mode"os fundamentais de grids
baseados no tipo de ser2io fornecido$ Estes recursos podem ser poder computaciona"+
fornecidos por usu1rios ou computadores indi2iduais+ capacidade de arma=enamento+ por
dep(sitos de informao eKou de dados+ ou por "argura de banda+ por infra)estruturas de rede$
Natura"mente+ um grid pode ser concebida para assegurar di2ersos tipos de recursos$ X
poss'2e" tamb;m imp"ementa<es maiores+ adicionando ser2ios baseados em um ou mais
destes mode"os @8E33E43A+ et a""+ -..>A$
4.1.1 Gids
'*24uta'i*)ais
*egundo 8erreira+ et a""@-..>A um grid computaciona" ; uma infra)estrutura que permite
que os recursos doem seu poder computaciona" sempre que eLigido$ Esta infra)estrutura ;
apropriada para as ap"ica<es que eLigem poder de processamento adiciona"+ tanto quanto
poss'2e"+ durante determinados per'odos de tempo onde uma 9nica m1quina no consegue
fornecer ou !1 um custo muito a"to$ X associado gera"mente com a uti"i=ao de recursos de
m1quinas deskto#s ociosas$
:rids computacionais so assim comumente c!amados por uti"i=arem principa"mente
cic"os de processamento como recurso computaciona" dispon'2e"$ Os processadores podem
2ariar em 21rios fatores como arquitetura+ 2e"ocidade e p"ataforma de softDare$ Podem)se
uti"i=ar os recursos de um grid computaciona" basicamente de tr#s formas$ A primeira seria
esco"!endo uma m1quina dispon'2e" no grid+ independentemente de sua "oca"i=ao+ para a
eLecuo de uma determinada ap"icao$ A segunda seria eLecutando o ap"icati2o
para"e"amente dentro do grid+ quebrando esse ap"icati2o em partes menores e di2idindo)o
entre as m1quinas$ A terceira seria rodando uma ap"icao 21rias 2e=es em diferentes
m1quinas do grid @M4NE55O+ -..CA$
4.1.2 Gids de
a2aCe)a2e)t* *u Data Gids
O segundo recurso comum mais uti"i=ado em um grid ; o arma=enamento de dados$ Um
grid pode oferecer uma 2iso integrada do arma=enamento de dados+ que ; comumente
c!amada de &ata Grid0 Cada m1quina dispon'2e" no grid gera"mente possui a"guma
quantidade de arma=enamento para comparti"!ar+ mesmo que pro2isoriamente$ Esse
arma=enamento pode ser mem(ria 3AM+ acesso muito r1pido mas tempor1rio+ ou pode ser
um Parma=enamento secund1rioQ em disco r'gido ou outros meios de arma=enamento
permanente$ O arma=enamento em mem(ria ; me"!or uti"i=ado como um cac!e de dados do
grid+ ser2indo como um arma=enamento pro2is(rio para ap"ica<es que esto em eLecuo$
O arma=enamento secund1rio pode ser uti"i=ado de muitas maneiras para aumentar a
capacidade+ o desempen!o e a confiabi"idade dos dados @8E33E43A+ et a""+ -..>A$
*egundo Minetto@-..CA+ esse espao de arma=enamento pode ser uti"i=ado como se
fosse um 9nico sistema de arqui2os+ faci"itando a "oca"i=ao de determinado arqui2o+ sendo
que este pode estar di2idido e espa"!ado pe"as m1quinas do grid+ superando prob"emas como
taman!o m1Limo de arqui2os em certos sistemas operacionais$ Os dados podem ser
dup"icados por um sistema de gerenciamento para aumentar a segurana atra2;s da
redundZncia$ Pode se tamb;m+ ao uti"i=ar uma m1quina para eLecutar determinada ap"icao+
esco"!er a que esti2er com os dados requisitados pe"a mesma$
4.1.3 Gids de
'*2u)i'a+,* *u Network Grids
Um dos recursos mais importantes dentro de um grid ; a capacidade de transmisso de
dados$ 4nc"uindo comunica<es internas e eLternas ao grid$ A"gumas 2e=es+ ap"ica<es
necessitam processar uma quantidade muito grande de dados+ e estes+ as 2e=es podem no
se encontrar na mesma m1quina onde o ap"icati2o est1 sendo eLecutado$ Nestes casos os
dados de2em ser en2iados atra2;s do grid 0unto com o eLecut12e"$ A "argura de banda
dispon'2e" para tais comunica<es pode se tornar um recurso critico e pode "imitar a uti"i=ao
do grid$ Ento+ m1quinas que esto com coneL<es ociosas podem ser uti"i=adas para
transmitir esses dados+ tanto em comunica<es internas do grid quanto em en2ios de dados
para fora+ como a internet$ :rids que possuem como principa" fina"idade fornecer o recurso de
a"ta performance e redundZncia de comunica<es so gera"mente c!amados de net%ork grids
@M4NE55O+-..CA
B$- COMPA3ASTO EN53E :346* E C&U*5E3*
*egundo Pitanga@-..>A as diferenas entre um c"uster e um grid ; que um ambiente
c"uster constitui)se de um sistema formado por !ardDare e softDare conectados "oca"mente+
a"tamente acop"ados+ ser2indo a pro0etos espec'ficos$ Em um c"uster tamb;m eListe um ponto
contro"ador ou uma entidade centra" gerenciando todos os recursos dispon'2eis+ dando a
noo de uma imagem 9nica do sistema e de onde pode)se uti"i=ar todo o poder de
processamento do c"uster$ Os c"usters so mais usados em ati2idades de pesquisa+
reso"2endo prob"emas comp"icados e na renderi=ao de gr1ficos >6$
,1 um ambiente grid uti"i=a uma arquitetura mais democr1tica+ pois temos um ambiente
fundamenta"mente cooperati2o+ geograficamente distribu'do+ onde empresas+ uni2ersidades e
at; mesmo grupos de usu1rios comparti"!am seus recursos ociosos em troca de poder uti"i=ar
do poder do grid quando necessitar$ Em um grid+ cada POrgani=ao Hirtua"Q fa= o
gerenciamento de seus pr(prios recursos+ no tendo uma 2iso de imagem 9nica de
sistema$Cada n(+ possu' seu pr(prio gerente recursos e suas po"'ticas de a"ocao$
Em um grid computaciona" as ap"ica<es tendem a ser mais "e2es+ pois requisitam
re"ati2amente menos das redes$ A rede de dados torna)se um garga"o fundamenta" para a
eLecuo de ap"ica<es pesadas que possuem um a"to f"uLo de dados+ comprometendo+ em
a"guns casos+ a performance do supercomputador 2irtua"$
- FERRAMENTAS DE DESENVOLVIMENTO 9TOOLKITS:
C$? :&OU*
O :"obus ; um toolkit de c(digo aberto uti"i=ado para construir ap"ica<es e sistemas
para Grids$ E"e ; desen2o"2ido pe"a Globus Alliance e por muitos programadores em todo o
mundo$@5HE :&OU*WA&&4ANCE+-..CA$
A principa" meta do :"obus ; o desen2o"2imento de uma infra)estrutura b1sica para
ap"ica<es geograficamente distribu'das sem sacrificar a autonomia do sistema "oca"+
possibi"itando o comparti"!amento de poder computaciona"+ bases de dados+ entre outros$ O
:"obus atua como um middle%are que permite ap"icao ser eLecutada de uma forma
autenticada e faci"itada na infra)estrutura disponibi"i=ada @M4NE55O+ -..CA$
O Globus toolkit @:5A foi desen2o"2ido para suportar o desen2o"2imento de ap"ica<es
computacionais distribu'das orientadas a ser2ios e infra)estruturadas$ Os componentes do
n9c"eo do :5+ dentro de uma estrutura padro+ basicamente so re"acionados segurana+
acesso a recursos+ ger#ncia de recursos+ mo2imentao de dados e assim por diante$ Estes
componentes permitem um rico eco)sistema de ferramentas que constroem ou se inter)
re"acionam com uma grande 2ariedade de ap"ica<es em muitas 1reas$
Ao "ongo das 2ers<es o :5 sofreu profundas modifica<es em sua estrutura+ no
apenas no intuito de e2o"uir sua gama de ferramentas+ mas sim uma mudana comp"eta em
seus m(du"os interfaces e protoco"os$
5.1.1 C*24*)e)tes d*
G$*#us T**$;it
*egundo 8O*5E3+ ]E**E&MAN @-..CA e 8E33E43A et a""@-..>A possui uma estrutura
como a eLpressada na figura abaiLo$
8onte% @8E33E43A et a""+-..>A
8igura /$ Componentes do g"obus 5oo"Fit$
O :"obus 5oo"Fit fornece componentes para imp"ementar a ger#ncia de recursos+
ger#ncia de dados e os ser2ios de informao$ Os componentes podem ser usados tanto em
con0unto quanto independentemente no desen2o"2imento de ferramentas e de ap"ica<es para
um ambiente grid$
*egundo 8E33E43A et a""@-..>A e M4NE55O@-..CA abaiLo esto os principais
componentes do Globus Toolkit$
Grid Resource Allocation Manager @:3AMA
O :3AM ; um m(du"o que fornece a eLecuo e gerenciamento remoto das tarefas$
E"e age como uma interface entre os ser2ios "ocais e g"obais+ tradu=indo recursos gen;ricos
em comandos espec'ficos para um sistema "oca"$ Iuando um traba"!o ; submetido por um
c"iente+ o pedido ; en2iado ao !ost remoto e segurado pe"o softDare gatekee#er
6
$ Ento o
gateFeeper cr'a um processo (ob manager
E
para comear e monitorar o traba"!o$ Iuando o
traba"!o ; terminado+ o (ob manager en2ia o status do traba"!o de 2o"ta ao c"iente e fina"i=a)o$
/
O softDare gatekee#er ; uma interface entre o :3AM e o usu1rio+ ; funo do gateFeeper
pro2er segurana+ confiabi"idade+ criao e gerenciamento de ser2ios @M4NE55O+-..CA$
E
7ob manager ; um processo criado pe"o gateFeeper+ a sua funo ; contro"ar a a"ocao e
gerenciamento dos recursos "ocais+ como um agendador de tarefas @8E33E43A et a""+-..>A$
O :3AM uti"i=a a "inguagem para a submisso de traba"!os@(obsA o Globus Resource
S#ecification $anguage @3*&A$ 5odos os parZmetros e informa<es necess1rias para a
eLecuo do traba"!o so en2iados com essa "inguagem+ como por eLemp"o a memoria
necess1ria para eLecutar um traba"!o em uma m1quina remota @8E33E43A et a""+-..>A$
Metacom#uting &irector Service @M6*A
O M6* ; um con0unto de ferramentas para a configurao e para obter informa<es
de sistemas e redes$ Com e"e ; poss'2e" se obter di2ersas informa<es como carga de rede+
processos em eLecuo+ sistema operaciona" de determinada m1quina+ entre outros$ X
baseado no protoco"o de ser2io de diret(rio &6AP$ E"e ; composto pe"o Grid Resource
Information Service @:34*A e o Grid Index Information Service @:44*A$ O :34* ; um
reposit(rio de informao sobre os recursos "ocais e o :44* ; um reposit(rio indeLado de
informa<es @M4NE55O+ -..CA$
Grid Securit Infrastructure @:*4A
O :*4 fornece e"ementos para autenticao e uma comunicao segura em um grid$
*ua infra)estrutura ; baseada no protoco"o Secure Socket $aer @**&A+ criptografia com c!a2e
p9b"ica e no protoco"o de autenticao L$C.U+ o qua" fa= uso de certificados @8E33E43A et
a""+-..>A$
E"e possui um ser2io de autenticao do tipo single sign on+ com suporte a contro"e
"oca"+ de"egao e mapeamento de credenciais$ *uas principais fun<es so autenticao+
autori=ao e de"egao de credenciais para computa<es remotas @M4NE55O+ -..CA$
:rid85P
O :rid85P fornece transfer#ncia de dados segura e de confiana entre n(s do grid$ E"e
; um protoco"o uti"i=ado em quase todas as transfer#ncias de dados do grid$ aseado no
protoco"o 85P
V
mas com a adio de a"gumas funciona"idades para sua adaptao para grid+
uti"i=ando)se do mode"o de segurana pro2ido pe"o :"obus$
5.1.2 G$*#us T**$;it 6
9GT6:
V
8i"e 5ranfer Protoco"% protoco"o usado para transfer#ncia de arqui2os$
O :5> fa= um uso eLtensi2o dos mecanismos de -eb Services+ sob o conceito de grid
services+ para definir suas interfaces e estruturar seus componentes$ Os -eb Services
fornecem f"eLibi"idade e mecanismos baseados em )xtensible Marku# $anguage @GM&A
U
para
descre2er+ descobrir e in2ocar ser2ios de rede+ a";m de seus protoco"os serem orientados a
intera<es fracamente acop"adas+ o que muitas discuss<es di=em ser prefer'2e" em sistemas
distribu'dos robustos$
AbaiLo a"guns conceitos ap"icados no :5>$
'#en Grid Services Arc!itecture @O:*AA
O O:*A ; uma arquitetura de ser2ios b1sicos para a construo de um grid$ *eu
principa" ob0eti2o ;+ atra2;s de um con0unto de padr<es e interfaces+ padroni=ar os ser2ios
que so freqNentemente encontrados em uma ap"icao de grid$ O O:*A ; atua"i=ado e
gerenciado pe"o Global Grid F8rum @::8A @8E33E43A et a""+-..>A$
O O:*A ; baseado na arquitetura dos -eb Services e uti"i=a uma interface definida em
uma "inguagem GM& c!amada -eb Services &escri#iton $anguage @J*6&A$
As interfaces definidas pe"o O:*A faci"itam a 2irtua"i=ao de recursos e ser2ios+
possibi"itando com isso a uti"i=ao de 21rios tipos de recursos de uma forma mais
transparente$
'#en Grid Services Infrastructure @O:*4A
O:*4 ; a especificao concreta da infra)estrutura O:*A$ 6efine as interfaces b1sicas
@construir+ gerenciar e eLpandir os ser2iosA e os comportamentos de um Grid Service0
-eb Services
-eb Services ; uma tecno"ogia que possui 21rios componentes que possibi"itam
opera<es de acesso a rede+ permitindo a criao de ap"ica<es distribu'das c"ienteKser2idor
uti"i=ando os protoco"os GM& e H55P+ ambos abertos e amp"amente uti"i=ados$ *eu ob0eti2o ;
faci"itar a comunicao entre programas$ Com e"e ; poss'2e" eLecutarmos ser2ios atra2;s de
uma 4ntranet ou at; mesmo pe"a 4nternet+ deiLando transparente ao c"iente deta"!es re"ati2os a
imp"ementao e a "oca"i=ao$ Ao c"iente basta apenas saber a U3& de acesso ao ser2io+
seus m;todos e tipos de dados$ Como protoco"o de comunicao os Jeb *er2ices se uti"i=am
o Sim#le 'b(ect Access Protocol @*OAPA+ o qua" ; baseado em GM& e uti"i=a H55P como
transporte$
U
GM&% "inguagem uti"i=ada para arma=enar dados em um documento$
O -orld -ide -eb "onsortium @J>CA ; o grupo respons12e" pe"a definio dos
padr<es dos -eb Services$ Para definir esse padro foi criada a "inguagem J*6&$ Neste
padro esto contidos os m;todos+ parZmetros+ tipos de dados+ protoco"o para transporte e o
,niform resource identifier @U34A do ser2io$
Grid Services
O :rid *er2ices ; um padro baseado nos Jeb *er2ices$ Como demostra a figura U
e"e foi definido no O:*A e especificado no O:*4$
8onte% @*O5OMA^O3+-..BA
8igura E$ Grid Services
Os Grid Services possuem a"gumas caracter'sticasKcomponentes adicionais aos -eb
Services+ inc"u'dos para uma me"!or adaptao e faci"idade no desen2o"2imento de ap"ica<es
em um ambiente grid$ Conforme M4NE55O @-..CA abaiLo esto a"gumas dessas
caracter'sticasKcomponentes$
aA Nomeao% para a identificao 9nica de um ser2io+ assim como os -eb
Services uti"i=am as U34s+ os Grid Services uti"i=a o Grid Service Handle
@:*HA$ Mas o :*H possui apenas o endereo+ no contendo informa<es
deta"!adas$ Por isso+ o :*H associa)se ao Grid Service Reference @:*3A
que contem os deta"!es e requisitos da comunicao foi o criado$ O :3* ;
um documento J*6& que contem esses deta"!es$
bA 6ados do *er2io% um Grid Service+ quando instanciado+ possui 21rios dados
associados a e"e+ os quais podem ser acessados pe"os usu1rios do ser2io$
Estes dados so c!amados de Service &ata )lements @*6EA$
cA Notifica<es% um mecanismo de notificao permite a um ser2io en2iar
mensagens a outros+ mediante uma inscrio por parte do destino$
5.1.3 G$*#us T**$;it 8
9GT8:
A 2erso B$. do Globus toolkit+ c!amada de :5B foi "anada no segundo semestre de
-..C$ Essa 2erso ; baseada diretamente sob o conceito de Jeb *er2ices e ; uma
imp"ementao do -eb Services Resource Frame%ork @J*38A+ que ; um sucessor do
padro O:*4$ O J*38 tenta corrigir a"gumas des2antagens do padro O:*4+ mas os
ser2ios definidos no O:*A continuam tendo a mesma interface e especificao
@&AU*CHNE3+-..CA$
Apesar de esta ser a 2erso mais no2a do Globus toolkit e"a no ser1 uti"i=ada neste
pro0eto+ pois o :5>+ por ser mais antigo+ possui uma gama maior de documentos e artigos a
serem estudados neste momento$
C$- &E:4ON
O &egion ; um ambiente de programao+ iniciado em ?UU> e mantido pe"a ,niversit of
*irginia+ orientado a ob0etos+ onde tudo+ mem(ria+ capacidade de processamento+ espao de
arma=enamento+ entre outros so considerados ob0etos$ Estes ob0etos comunicam)se atra2;s
da in2ocao de m;todos remotos$ A id;ia principa" ; uma arquitetura de grid transparente
para o usu1rio+ criando uma 9nica m1quina 2irtua" para suas ap"ica<es @M4NE55O+-..CA$
O softDare do &egion+ atra2;s de suas ferramentas+ oferece uma 2ista !omog#nea do
grid ao programador$ O conceito do sistema de arqui2os do &egion ; uma 2antagem no
desen2o"2imento$ No &egion o sistema de arqui2os uti"i=a um 9nico identificador para cada
ob0eto$ 6essa forma+ fornecendo aos programadores da ap"icao mais faci"idade de acesso
aos arqui2os distribu'dos+ somente usando seus nomes$ Ou se0a+ o usu1rio uti"i=a apenas o
nome do arqui2o+ que pode estar arma=enado "oca"mente ou em uma m1quina remota
@6AN5A*+-..>A$
Nesse ser2io 9nico e g"oba" de identificao os ob0etos podem ser nomeados em tr#s
n'2eis$ No n'2e" mais a"to+ os ob0etos so identificados por cadeias de caracteres c!amadas de
context names$ O context name em um n'2e" intermedi1rio ; mapeado por um ob0eto c!amado
$egion 'b(ect Identifier @&O46A+ onde gan!a um identificador bin1rio que possui uma c!a2e
p9b"ica 3*A associada ao ob0eto quando da sua criao$ No terceiro n'2e"+ como o &O46 no
possui todas as informa<es necess1rias para que os ob0etos possam se comunicar em uma
rede+ o ob0eto ; associado ao &egion Ob0ect Address @&OAA$ O &OA ; um endereo f'sico que
contem informa<es para que os ob0etos possam se comunicar em uma rede+ como endereo
4P+ n9mero de porta+ entre outros @P45AN:A+-..>A$
Esse ser2io de identificao g"oba" fa= com que o &egion possa simu"ar um sistema de
arqui2os tradiciona"$ Os arqui2os so g"oba"mente acess'2eis aos usu1rios+ no importando a
sua "oca"i=a"o$
As defini<es de segurana+ como o contro"e de acesso+ esto definidas no &O46 de
cada ob0eto$ O mode"o de segurana do &egion ; composto por dois n'2eis% n'2e" de
mensagem e n'2e" de MaM"$ O n'2e" de mensagem ; respons12e" pe"a segurana na
comunicao entre os ob0etos+ uti"i=ando m;todos de criptografia de c!a2e pub"ica do sistema
3*A$ O MaM" ; respons12e" pe"a segurana dos ob0etos+ tomando decis<es sobre as
permiss<es e os tipos de acesso aos m;todos$
O &egion se destaca pe"o a suporte ap"ica<es para"e"as$ E"e possui uma
imp"ementao das bib"iotecas MP4 e PHM$ Para se uti"i=ar um programa escrito com uma
dessas "inguagens+ basta apenas recompi"1)"o uti"i=ando as bib"iotecas fornecidas pe"o &egion$
4sso permite que a migrao da infra)estrutura antiga para a infra)estrutura do &egion se0a
praticamente instantZnea @P45AN:A+ -..>A$
C$> OU3:346
Our:rid ; aberto e "i2re+ um grid cooperati2o em que os "aborat(rios doam seus
recursos computacionais inati2os em troca de usar recursos inati2os de outros "aborat(rios
quando necessitados @OU3:346 >$. U*E3 MANUA&+ -..BA$
X uma so"uo que permite que 2oc# combine recursos computacionais distribu'dos em
um grid que tem suporte a ap"ica<es ag)of)5asFs @o5A
?.
$ Como usu1rio+ 2oc# precisa
?.
ag)of)5asFs @o5A so ap"ica<es para"e"as que cu0a as tarefas so independentes+ ou se0a+
as tarefas no necessitam comunicar)se para prosseguir com seu processamento$ Apesar de sua
simp"icidade+ as ap"ica<es o5 possuem 21rias uti"i=a<es+ como minerao de dados+ buscas
macias+ 2arreduras de parZmetro+ simu"a<es de Monte)Car"o+ computao bio"(gica+ processamento
saber apenas a"guns conceitos para fa=er suas pr(prias ap"ica<es para"e"as no Our:rid$ E"e
; f1ci" de insta"ar+ configurar e de usar$
Our:rid ; formado por uma comunidade ponto)a)ponto onde um site doa seus recursos
ociosos a comunidade$ Natura"mente+ quando !a2er necessidade de recursos+ o site se
beneficiar1 de recursos ociosos de outra parte da na comunidade$ O Our:rid d1 garantias que
os "ocais que mais doarem seus recursos tero prefer#ncias nos recursos da comunidade
quando necessitarem$ A";m disso+ os pedidos "ocais tero prioridade e interrompero
imediatamente o pedido da comunidade$ ConseqNentemente+ usar o Our:rid nunca
degradar1 seu desempen!o "oca"$
O Our:rid ; formado por tr#s componentes principais% :uMs+ fornecedores de :uMs e
MMgrid$
Os :uMs so as m1quinas reais onde as tarefas so eLecutadas durante a eLecuo
de um traba"!o no Our:rid$ Na pr1tica+ todo o computador que esti2er conectado a Internet
pode ser usado como um :uM+ mesmo que se encontrar em um dom'nio diferente ou
protegido por um fire%all @OU3:346 >$. U*E3 MANUA&+ -..BA$
Os :uMs que pertencem ao mesmo dom'nio so organi=ados e fornecidos por um
8ornecedor de :uMs @GuM ProviderA$ Para o usu1rio+ o fornecedor de :uMs ; um ser2io de
rede que fornece dinamicamente as :uMs para eLecutar suas tarefas$ 6a perspecti2a
administrati2a+ o fornecedor :uM a0usta as m1quinas para que est1s possam ser uti"i=adas
como :uMs$ Na figura U eListe um fornecedor para cada dom'nio administrati2o$ Esta
arquitetura permite que administradores diferentes uti"i=em po"'ticas diferentes ao uso de seus
:uMs$
de imagens+ entre outros$
8onte% @OU3:346 >$. U*E3 MANUA&+ -..BA$
8igura V$ Estrutura de um :rid Our:rid
O terceiro componente importante da so"uo Our:rid ; c!amado de MM:rid$ O MM:rid
; o front.end do usu1rio do Our:rid$ E"e fornece toda a sustentao necess1ria para
descre2er+ eLecutar e monitorar traba"!os nos :uMs$ 6urante a eLecuo de um traba"!o+ o
MM:rid usa :uMs sob)demanda 2indos de fornecedores a que e"e est1 conectado$ X pape" do
MM:rid programar tarefas para funcionarem nos :uMs e mandar e receber os dados para os
:uMs+ antes e depois das eLecu<es das tarefas$
0 BIBLIOTECAS PARA TROCAS DE MENSAGENS
A programao para"e"a consiste em di2idir grandes e comp"icados a"goritmos em
processos menores que so distribu'dos entre 21rios processadores e eLecutados
simu"taneamente$ Para que !a0a uma correta sincroni=ao das tarefas em eLecuo+ ;
necess1rio que e"es se comuniquem$ O uso de uma bib"ioteca especifica no ; obrigat(ria+
mas permite que o programador no ten!a que se preocupar com deta"!es muito espec'ficos
de como ser1 feita essa comunicao e como as mensagens sero en2iadas entre os
processos$
*egundo 8rosi @-...A+ eListem dois grandes padr<es de bib"iotecas para processamento
para"e"o+ o MP4 @Message Passing 4nterfaceA e o PHM @Para""e" Hirtua" Mac!ineA$ Esta u"tima
foi o padro na uti"i=ao por muito tempo+ mas o MP4 2em tomando espao+ mesmo com
paradigmas de comunicao muito diferentes do PHM$
A computao em grid tamb;m permite a uti"i=ao de t;cnicas de programao
para"e"a atra2;s da passagens de mensagens$ A"gumas bib"iotecas para programao
para"e"a tem as suas 2ers<es para serem uti"i=adas em grids+ como o MP4$ ,1 a"gums
ambientes de programao possuem 2ers<es pr(prias das bib"iotecas 01 eListentes+ como ; o
caso do ambiente &egion+ onde bastamos apenas recompi"ar nossas ap"ica<es MP4 ou PHM
uti"i=ando as bib"iotecas de"e+ fa=endo essa migrao quase sem nen!uma modificao$
6e2ido a a"ta "at#ncia na comunicao entre processos+ causada pe"a grande
di2ersidade de redes uti"i=adas em um grid+ as ap"ica<es de2em ser constru'das com uma
granu"aridade pro0etada de ta" forma que se comuniquem o m'nimo poss'2e"$ As ap"ica<es
mais adequadas aos :rids so as que possuem tarefas baseadas no conceito de bag of
tasks+ pois as tarefas so independentes umas das outras+ podendo ser eLecutadas em
qua"quer ordem$
/$? PARA$$)$ *IRT,A$ MA"HI9) @PHMA
A m1quina 2irtua" para"e"a @PHMA ; uma bib"ioteca de programao para"e"a
desen2o"2ida pe"o esforo con0unto do OaF 3idge Nationa" &aboratorM+ Uni2ersitM of 5enesse+
EmorM Uni2ersitM e Carneige Me""on Uni2ersitM no Heterogeneous NetDorF Pro0ect em ?UVU$ A
bib"ioteca PHM possibi"ita os programadores a desen2o"2er ap"ica<es para"e"as uti"i=ando o
conceito de passagem de mensagens entre uma rede de sistemas !eterog#neos
@computadores com arquiteturas e sistemas operacionais di2ersosA ou sistemas MPP
@Processamento Massi2amente Para"e"oA @P45AN:A+-..-A$
Na bib"ioteca PHM os recursos de um c"uster gan!am um endereamento g"oba"$ A
mem(ria e os processadores so representados como se pertencessem a uma 9nica m1quina
com capacidade equi2a"ente a soma dos recursos de cada m1quina indi2idua"$ Para o
programador+ a mem(ria e os demais recursos do c"uster so acessados como se fossem
"ocais em cada m1quina$ O PHM se encarrega da passagem de mensagens para fa=er
transparecer a rea" arquitetura$ O PHM se baseia em duas primiti2as b1sicas% *EN6 @en2iar
mensagemA e 3ECE4HE @receber mensagemA$
/$- M)SSAG) PASSI9G I9T)RFA") @MP4A
A interface de troca de mensagens @MP4A ; um padro desen2o"2ido pe"o f(rum de
interface de troca de mensagens @MP48A+ tamb;m c!amado de MP4 8(rum$ E"e especifica
uma interface port12e" para programas de troca de mensagens+ 2isando praticidade+ efici#ncia
e f"eLibi"idade ao mesmo tempo$ O MP48 com a a0uda de mais B. organi=a<es+ comeou a
traba"!ar no padro em ?UU-$ Em ?UUB foi pub"icada a sua primeira 2erso$ A segunda 2erso
@MP4)-A foi "anada em ?UUE pe"o MP48 adicionando ao padro a criao de processos
dinZmicos e a"gumas outras opera<es simp"es$ @AoMama+NaFano+?UUUA$
*egundo AoMama+NaFano @?UUUA os ob0ei2os do pro0eto MP4 so%
pro0etar uma interface para programao de ap"ica<es @no necessariamente para
compi"adores ou bib"iotecas de sistemaA\
permitir uma comunicao eficiente e2itando a copia mem(ria))mem(ria\
permitir a sua uti"i=ao em um ambiente !eterog#neo\
rea"i=ar uma interface de comunicao de confiana+ o usu1rio no necessita "idar com
as fa"!as de comunicao$ 5ais fa"!as so tratadas por um subsistema de
comunicao sub0acente\
definir uma interface que no se0a muito diferente das 01 eListentes+ como PHM+ NG+
ELpresso+ PB e outros+ e fornecer eLtens<es que permitam uma maior f"eLibi"idade\
definir uma interface para muitas p"ataformas de diferentes fabricantes+ sem mudanas
significati2as nos programas de comunicao ou de sistema\
a interface de2e ser independente da "inguagem uti"i=ada\
de2e ser pro0etada para permitir t!read.safet
::
$
EListem diferentes imp"ementa<es do MP4+ para 21rias p"ataformas de !ardDare e
softDare$ 4sso permite a construo de c"usters com as mais 2ariadas arquiteturas e usar o
MP4 para reso"2er o prob"ema de uma forma distribu'da$ O MP4 imp"ementa um (timo
mecanismo de portabi"idade e independ#ncia de sistema operaciona"$ Por eLemp"o+ um c(digo
MP4 desen2o"2ido para uma arquitetura *PA3C com o *$O *o"aris pode ser portada+ com
quase nen!uma modificao em seu c(digo fonte+ para um PC com o *$O &inuL$
Para que se0a poss'2e" a troca de mensagens entre m1quinas de arquiteturas
diferentes+ as quais possuem seus pr(prios tipos internos de dados+ o MP4 possui seus
pr(prios tipos b1sicos de dados+ independentes da arquitetura rea" da m1quina$ 8ica a cargo
do MP4 con2erter esses tipos de dados para os tipos internos correspondentes a arquitetura
uti"i=ada$
A tabe"a abaiLo cont;m os tipos b1sicos de dados do MP4$
5ipos de dados MP4
MP4_CHA3
MP4_*HO35
MP4_4N5
MP4_&ON:
MP4_UN*4:NE6 CHA3
MP4_UN*4:NE6 *HO35
MP4_UN*4:NE6
MP4_UN*4:NE6 &ON:
MP4_8&OA5
MP4_6OU&E
MP4_&ON: 6OU&E
MP4_^5E
MP4_PAC]E6
8onte% @&U:A3RO+-..>A
5abe"a ?$ 5ipos b1sicos de dados do MP4
Como na programao para"e"a em gera"+ a computao para"e"a ; decomposta em
processos concorrentes$ Criar e iniciar processos no esto definidos no MP4 padro+ estes
ficaram a cargo das diferentes imp"ementa<es$ No MP4)? apenas a criao de processos
est1ticos so suportados$ 4sto significa que todos os processos de2em ser definidos antes da
??
ELecuo de 21rias t!reads simu"taneamente$
eLecuo e iniciados 0untos$ ,1 no MP4)-+ foi introdu=ida a criao de processos dinZmicos
com a rotina MPI;"omm;s#a%n<4 como uma caracter'stica a2anada$
Embora o MP4 se0a um sistema comp"eLo+ um amp"o con0unto de prob"emas podem ser
reso"2idos uti"i=ando apenas / fun<es+ que ser2em basicamente para% iniciar+ terminar+
eLecutar e identificar processos+ en2iando e recebendo mensagens$
MP4_4N45 4nicia uma eLecuo MP4
MP4_84NA&4RE 8ina"i=a a eLecuo
MP4_COMM_*4RE 6etermina o n9mero de processos
MP4_COMM_3AN] 6etermina a identificao de processos
MP4_*EN6 En2iar as mensagens
MP4_3ECH 3eceber mensagens
8onte% @&U:A3RO+-..>A
5abe"a -$ 8un<es b1sicas do MP4
5odos os procedimentos da tabe"a -+ eLceto os dois primeiros+ possuem um
manipu"ador de comunicao como argumento$ 4nicia"mente todos os processos esto
registrados em um uni2erso c!amado MPI;"'MM;-'R$&+ onde cada processo recebe um
identificador 9nico+ um n9mero de . Nprocessos ` ?$ Para um programa simp"es+ o
comunicador padro+ MPI;"'MM;-'R$&+ ; suficiente$ Contudo+ outros comunicadores
podem ser estabe"ecidos para um grupo de processos$ Esse manipu"ador identifica o grupo de
processos e o conteLto das opera<es que sero eLecutadas$ Os comunicadores
proporcionam o mecanismo para identificar um subcon0unto de processos+ durante o
desen2o"2imento de programas modu"ares+ assegurando que as mensagens+ p"ane0adas para
diferentes prop(sitos+ no se0am confundidas$ @&U:A3RO+-..>A
As fun<es MP4_4N45 e MP4_84NA&4RE so usadas+ respecti2amente+ para iniciar e
fina"i=ar uma eLecuo MP4$ A MP4_4N45 de2e ser c!amada antes de qua"quer funo MP4 e
de2e ser acionada por cada processador$ 6epois de ser acionada a MP4_84NA&4RE+ no se
pode acessar outras fun<es da bib"ioteca$
A funo MP4_COMM_*4RE determina o n9mero de processos que esto sendo
eLecutados e a MP4_COMM_3AN] os identifica+ usando um n9mero inteiro$ As fun<es
MP4_*EN6 e MP4_3ECH so usadas para en2iar e receber mensagens$
O MP4 pode eLecutar processos em modo Sim#le Program Multi#le &ata @*PM6A ou
Multi#le Program Multi#le &ata @MPM6A$ Uti"i=a)se da arquitetura *PM6 quando um 9nico
programa ; eLecutado em todos os processos+ podendo+ baseado na identificao do
processo+ rea"i=ar diferentes tarefas$ No modo MPM6 os processos diferentes eLecutam
programas diferentes$
AbaiLo um eLemp"o de como o MP4 pode ser uti"i=ado em modo *PM6$
#include <stdlib.h>
#include mpi.h
main ( int argc, char *argv[ ]) /* un!"# main, #brigat$ria e %nica */
&
int m'id(
)*+,+nit(-argc, -argv)( /* iniciali.and# # )*+ */
/**r#cura a id d# pr#cess# */
)*+,/#mm,ran0()*+,/1)),21345, -m'id)(
+6 (m'id 77 8)& /* 9e id 7 8 : # pr#cess# mestre */
c#dig#mestre()(
; else &
c#dig#escrav#()(
;
)*+,inali.e()( /* inali.a # )*+ */
;
Iuadro ?$ ELemp"o de um programa uti"i=ando MP4
A"goritmos para"e"os+ freqNentemente+ precisam de opera<es coordenadas en2o"2endo
m9"tip"os processos$ Por eLemp"o+ todos os processos podem precisar transpor uma matri=
distribu'da ou somar um con0unto de n9meros distribu'dos em cada um dos processos$
C"aramente+ as opera<es podem ser imp"ementadas por um programador+ uti"i=ando)se
fun<es de recebimento e en2io de fun<es$ Por comodidade e para permitir imp"ementa<es
otimi=adas+ o MP4 tamb;m fornece uma serie de fun<es especia"i=adas de comunicao que
eLecutam opera<es comuns desse tipo$ @PACHECO+?UUVA
A"gumas dessas fun<es so%
MPI;BARRI)R< 4% uti"i=ada para sincroni=ar a eLecuo dos processos de um grupo$
Os processos de2em ficar esperando+ inati2os+ at; que todos e"es ten!am passado por
esta barreira$ Essa ; uma forma de separar etapas de uma eLecuo e2itando que no
!a0a confuso entre as mensagens geradas$ Como eLemp"o+ essa funo poderia ser
usada antes de uma segunda operao de en2io de uma mensagem$
MPI;B"AST< 4= transmite os dados de um processo de origem para todos os outros
processos$Uti"i=a uma disperso dos dados do tipo um para muitos$
MPI;GATH)R< 4= reco"!e os dados de todos os processos em um 9nico processo+
inc"uindo os dados deste$
MPI;S"ATT)R< 4= transmite 21rios dados de um processo de origem para todos os
outros processos+ atua fa=endo o oposto de MP4_:A5HE3@A$ Uti"i=a uma disperso de
dados do tipo muitos para muitos$
MPI;R)&,")< 4= Combina 2a"ores fornecidos de todos os processos+ uti"i=ando
opera<es especificas e retorna a apenas um processo de origem$ Essas opera<es
espec'ficas inc"uem o m1Limo+ o m'nimo @MP4_MAG+ MP4_M4NA+ soma+ produto
@MP4_*UM+ MP4_P3O6A e as opera<es "(gicas$
O padro MP4 possui ainda muitas outras fun<es+ que no foram descritas pois
ob0eti2amos os princ'pios b1sicos de uma imp"ementao$ A"gumas caracter'sticas no
cobertas so% a possibi"idade de comunicao ass'ncrona+ quando um c1"cu"o acessa
e"ementos de uma estrutura de dados comparti"!ados em um modo no estruturado\ a
composio modu"ar usada quando so imp"ementados programas grandes de sistemas
comp"eLos onde m(du"os so imp"ementados independentemente\ o uso de ferramentas que
a0udam a me"!orar o desempen!o dos a"goritmos+ in2estigando o ambiente dentro do qua"
esto sendo eLecutados\ o uso de diferentes tipos de dados+ usados por eLemp"o para fa=er a
con2erso entre diferentes representa<es de dados em ambientes !eterog#neos$
@PACHECO+?UUVA
6.2.1 MPIC/
MP4CH ; uma imp"ementao bastante popu"ar do padro MP4$ X uma bib"ioteca de
a"ta performance+ bastante port1ti"+ desen2o"2ida em con0unto pe"o &aborat(rio Naciona" de
Argonne e a Uni2ersidade Estadua" do Mississipi+ os quais ainda traba"!am na pesquisa e no
desen2o"2imento do MP4CH buscando me"!orar seu desempen!o e sua funciona"idade$
O ob0eti2o do MP4CH ; fornecer uma imp"ementao de MP4 para p"ataformas
importantes+ inc"uindo c"usters e processadores maciamente para"e"os$ A sua distribuio
"i2re e sua grande portabi"idade contribu'ram para a adoo do padro MP4 pe"a comunidade
de computao para"e"a$ @]A3ON4*+ et a""+ -..-A
A no2a 2erso do MP4CH+ o MP4CH- ; uma imp"ementao tota"mente no2a do MP4+ foi
pro0etada para possuir suporte a ap"ica<es de a"ta performance desen2o"2idas com
funciona"idades dos padr<es MP4)? e MP4)-$ A";m das caracter'sticas contidas no MP4CH+ o
MP4CH- inc"ui o suporte para a criao de processos dinZmicos+ opera<es co"eti2as entre
comunicadores e a opera<es para"e"as de 4KO$
O MP4CH- substitui tota"mente o MP4CH+ sa"2o casos onde !1 estruturas de dados
!eterog#neos @por eLemp"o+ 4nteiros com taman!os diferentes ou diferentes ordenamento de
bMtesA$ O MP4CH- ainda no suporta esses sistemas+ mas esta correo est1 p"ane0ada para
o fina" de -../$ @MP4CH-+-../A
6.2.2 MPIC/DG1
O MP4CH):- ; uma imp"ementao do padro MP4 que usa o Globus Toolkit para
oferecer efici#ncia e transpar#ncia na eLecuo de ap"ica<es em grids !eterog#neos$ E"e ;
baseado na imp"ementao MP4CH+ o que pode ser considerada uma 2antagem por ser o
MP4CH 01 amp"amente desen2o"2ido e testado$
Para me"!orar seu desempen!o+ o MP4CH):- uti"i=a as suas bib"iotecas de
comunicao internas enquanto for poss'2e" e apenas fa= uso da comunicao atra2;s do
:"obus se os processos esti2erem em diferentes dom'nios$@ONA+-..BA
Antes de iniciar uma ap"icao com MP4CH):-+ o usu1rio de2e usar o :*4 e obter uma
credencia" para se autenticar$ O usu1rio pode ainda uti"i=ar o M6* para se"ecionar os
computadores que sero uti"i=ados+ de acordo com a configurao e conecti2idade com a
rede$ Para descre2er como os traba"!os sero eLecutados o MP4CH):- uti"i=a o 3*&$
< ESTUDOS DE CASO
Como proposto+ migramos um ap"icati2o desen2o"2ido para ser eLecutado em um
ambiente c"uster de modo que funcionasse corretamente em um ambiente grid$ Neste
traba"!o+ estudamos basicamente tr#s formas de rea"i=ar ta" migrao$ A primeira consistiu
na eLecuo de um programa desen2o"2ido para um ambiente c"uster em um ambiente grid
sem a a"terao em seu c(digo$ A segunda foi a eLecuo da 2erso estruturada @mono)
processadaA do ap"icati2o+ sem nen!um para"e"ismo+ remotamente pe"o grid+ fa=endo com
que e"e se0a eLecutado+ por eLemp"o+ em uma m1quina com maior poder de processamento$
A terceira forma consiste em re)escre2er o programa uti"i=ando bib"iotecas especificas de
um determinado ambiente grid+ o qua"+ por sua comp"eLidade+ no ser1 tota"mente
imp"ementado$
Para o estudo da migrao C"uster)a:rid uti"i=amos como eLemp"o o programa
desen2o"2ido pe"o professor &uciano Car"os 8rosi+ o qua" 2isa a mu"tip"icao de matri=es
quadradas em ambientes distribu'dos e programao para"e"a uti"i=ando a bib"ioteca de
passagem de mensagem MP4CH$ Este programa consiste+ basicamente+ em um processo
mestre ou pai que distribui matri=es aos pares para os processos fi"!os$ Estes+ por sua 2e=+
fa=em a mu"tip"icao destas matri=es recebidas e en2iam ao processo mestre a matri=
resu"tante$ Este processo se repete at; que reste apenas uma matri= resu"tante$
Uti"i=aremos tamb;m uma 2erso seme"!ante do programa+ mas desta 2e= desen2o"2ido de
forma estruturada+ sem uti"i=ar para"e"ismo$ Os c(digos fonte destes ap"icati2os na sua
integra"idade esto nos AneLo ? e - deste traba"!o$
A esco"!a da uti"i=ao destes programas de2e)se pe"o fato de terem sido
desen2o"2idos para um ambiente c"uster+ onde foram testados e estudados no pro0eto de
monografia submetido a Uni2ersidade do Oeste de *anta Catarina ` UNOE*C sob o tema
PComparao entre bib"iotecas para processamento para"e"o com base em um c"uster
eoDu"fQ pe"o ento acad#mico &uciano Car"os 8rosi$
8rosi ainda uti"i=ou um ap"icati2o com a mesma fina"idade+ por;m desen2o"2ido com a
bib"ioteca de passagem de mensagens PHM+ o qua" no ser1 estudado neste momento+ pois
no encontramos na documentao suporte a essa tecno"ogia com o grid esco"!ido para a
migrao$
Na esco"!a de qua" ambiente grid a ser uti"i=ado a primeira opo foi o Ourgrid+ por ser
de f1ci" insta"ao+ ser desen2o"2ido por uma equipe brasi"eira e ter um futuro bastante
promissor$ Ap(s a"gumas pesquisas e de con2ersar com um dos membros da equipe que o
desen2o"2e conc"u'mos que a sua uti"i=ao no iria ser poss'2e"+ pois o mesmo traba"!a
sobre o conceito de A:s @ag of tasFA e ainda no possui suporte ao padro MP4 ou
bib"iotecas de passagem de mensagens+ o que de2er1 ser incorporado em 2ers<es futuras$
A segunda opo foi a uti"i=ao do :"obus+ o qua" possui suporte ao padro MP4+ a";m
de possuir todos os recursos e ser2ios necess1rios para a eLecuo da ap"icao no
ambiente grid$ A 2erso do :"obus 5oo"Fit insta"ada foi a >$-$?+ a qua" pode ser encontrada
no site da Globus Alliance em !ttp%KKDDD$g"obus$org0 Esta 2erso no ; a 2erso mais atua"
da ferramenta+ que encontra)se na 2erso B$L+ mas a 2erso >$-$? ; a 2erso mais est12e" e
bem documentada eListente$ A";m disto+ as diferenas entre a s;rie >$L e a B$L so a"gumas
no2as features que no teriam grande impacto no desen2o"2imento deste traba"!o+ por isso+
ac!amos que uti"i=ar a referida 2erso seria mais interessante$
E$? 4N*5A&ASTO 6O :&OU* 5OO&]45
Neste t(pico ; apresentado um pequeno resumo das principais tarefas necess1rias
para se insta"ar o :"obus 5oo"Fit$ O guia comp"eto de insta"ao encontra)se no site da
ferramenta$
Antes de iniciar a insta"ao do :"obus 5oo"Fit a"guns programas de suporte tamb;m
ti2eram de ser pre2iamente insta"ados$ *o e"es+ ,a2a *6] ?$B$-+ :NU 5ar+ AN5+ ,unit e o
compi"ador :CC+ os quais no sero estudados neste momento pois fogem ao escopo do
traba"!o$
A insta"ao requer a criao de pe"o menos dois usu1rios a";m do usu1rio ProotQ+ o
usu1rio Pglobus> para ser uti"i=ado pe"o grid e a"gum outro qua"quer+ o qua" ser1 uti"i=ado
para a submisso de 0obs ao grid$
Ap(s a descompresso do arqui2o+ que pode ser obtido "i2remente em
!ttp%KKDDD$g"obus$org+ uti"i=ando o usu1rio PglobusQ setamos as 2ari12eis de ambiente
AN5_HOME e ,AHA_HOME e tamb;m um diret(rio para a insta"ao do :"obus na 2ari12e"
:&OU*_HOME$ Neste caso essas 2ari12eis ficaram da seguinte forma%
ANT_HOME=/opt/ant
JAVA_HOME=/opt/java
GLOBUS_LOCATION=/opt/globus
Para a insta"ao do :"obus uti"i=amos os seguintes scripts%
/!nstall"gt# %GLOBUS_LOCATION
e
/!nstall"gt#"&&j's %GLOBUS_LOCATION
7.1.1 Cia+,* de
'eti>i'a+Hes e '*)>igua+Hes de segua)+a
Como estamos traba"!ando em um ambiente distribu'do+ ; necess1rio que todos os
e"ementos do grid se0am identificados+ por esse moti2o todos de2em ser recon!ecidos por
uma entidade certificadora$ Pode ser uti"i=ado uma entidade certificadora 01 recon!ecida ou
uti"i=ar a entidade que eListe no pacote de insta"ao do :"obus$ A entidade certificadora do
Globus Toolkit ; con!ecida como sim#le"A$ Esta entidade certificadora de2e ser insta"ada em
apenas uma das m1quinas ou nodos do grid$
Para insta"ar o simp"eCA usamos%
%GLOBUS_LOCATION/s(tup/globus/s(tup"s!&pl(")a
Ento ser1 so"icitado um emai"+ ao qua" sero en2iadas as so"icita<es+ o n9mero de
dias de 2ida do certificado @antes que e"e eLpireA e uma sen!a$
Para so"icitar um certificado para as m1quinas usa)se @como usu1rio ProotQA
g*!+")(*t"*(,u(st "-ost lab.T/0uno)-ap()o(+ub*
que criar1 os arqui2os
/(t)/g*!+"s()u*!t1/-ost2(1p(&
/(t)/g*!+"s()u*!t1/-ost)(*t_*(,u(stp(&
/(t)/g*!+"s()u*!t1/-ost)(*tp(&
e para assinar os certificados+ @com o usuario PglobusQA
g*!+")a"s!gn "!n -ost)(*t_*(,u(stp(& "out -osts!gn(+p(&
Co"ocando a sen!a quando so"icitada$
3enomeia)se o arqui2o !ostsigned$pem para !ostcert$pem+ substituindo o arqui2o
anterior$
Para poder inicia"i=ar ou en2iar 0obs para o :"obus ; necess1rio que cada usu1rio
possua uma certificao+ que tamb;m ser1 assinada pe"a CA$
Para criar as certifica<es para os usu1rios ; usa)se o comando @como usu1rio
norma"A
g*!+")(*t"*(,u(st
que criar1 os arqui2os
/-o&(/3usua*!o4/globus/us(*2(1p(&
/-o&(/3usua*!o4/globus/us(*)(*t_*(,u(stp(&
/-o&(/3usua*!o4/globus/us(*)(*tp(&
e para assinar os certificados+ @com o usuario PglobusQA
g*!+")a"s!gn "!n us(*)(*t_*(,u(stp(& "out s!gn(+p(&
Co"ocando a sen!a quando so"icitada$
3enomeia)se o arqui2o signed$pem para usercert$pem+ substituindo o arqui2o anterior$
O pr(Limo passo ; adicionar as permiss<es para os usu1rios+ para isso cria)se o
arqui2o 5/(t)/g*!+"s()u*!t1/g*!+"&ap'!l(6 como ProotQ onde adiciona)se os
assuntos das certifica<es e o nome dos usu1rio+ como no eLemp"o abaiLo$
7/O=uno)-ap()o/OU=uno)-ap()o(+ub*/CN=Usua*!o TCC7 t))
7/O=uno)-ap()o/OU=uno)-ap()o(+ub*/CN=T(st(7 t))
6esta forma ; feito um mapeamento entre o usu1rio do grid
87/O=uno)-ap()o/OU=uno)-ap()o(+ub*/CN=T(st(79 e o usu1rio "oca" da m1quina
em questo @tccA
7.1.2 I)i'ia$iCa+,* e
Su#2iss,* de K*#s
Primeiramente de2emos inicia"i=ar o proLM do grid com o comando
g*!+"p*o:1"!n!t
ento ser1 so"icitada a sen!a correspondente a certificao do usu1rio que est1 sendo
uti"i=ado para essa submisso$ Este comando ; respons12e" pe"a identificao do usu1rio no
grid$
Para obter informa<es sobre o status do proLM iniciado podemos uti"i=ar o comando
g*!+"p*o:1"!n'o
o qua" retornara informa<es sobre status do proLM e da certificao uti"i=ada$
Para destruir um proLM iniciado uti"i=amos
g*!+"p*o:1"+(st*o1
EListem duas op<es para o en2io de arqui2os 3*& para serem eLecutados no grid%
/opt/&p!)-"g//b!n/&p!*un ;globus*sl 3a*,u!vo*sl4
ou
globus*un ;' 3a*,u!vo*sl4
EListem ainda muitas outras formas de submisso de 0obs+ mas para este eLperimento
apenas os comando acima 01 so suficientes$
E$- E*5U6O 6E CA*O ?
3ea"i=amos a migrao do programa para mu"tip"icao de matri=es uti"i=ando a
bib"ioteca MP4CH+ desen2o"2ido para um ambiente c"uster para o ambiente grid sem a"terao
em seu c(digo$
Como a bib"ioteca MP4CH ; uma imp"ementao do padro MP4+ para ambientes
c"usters+ buscamos um ambiente grid onde fosse poss'2e" a uti"i=ao de bib"iotecas que
tamb;m imp"ementassem o padro MP4$ O :"obus possui uma imp"ementao do MP4
espec'fica$ Essa imp"ementao ; o MP4CH):-$
Para podermos compi"ar e submeter programas uti"i=ando MP4CH):- ; necess1rio
que e"e se0a insta"ado no :"obus$ O pacote a ser esco"!ido foi 2erso ?$-$E+ a qua" pode ser
encontrada "i2remente para doDn"oad em ftp%KKftp$mcs$an"$go2KpubKmpiK$
6epois de descompactar o arqui2o uti"i=amos os seguintes comandos para insta"ar%
/)on'!gu*( "<!t-"+(v!)(=globus/="'lavo*=g))#/+bg ;p*('!:=/opt/
&p!)-"g/
e
&a2(> &a2( !nstall
Os programas desen2o"2idos com MP4CH):- podem ser escritos e compi"ados em
21rias "inguagens+ como 8ortran+ C+ Cbb$ Para compi"ar programas escritos em C+ como o
nosso caso+ uti"i=amos o comando%
/opt/&p!)-"g//b!n/&p!)) "o 3(:()utav(l4 3a*,u!vo)4
Nesse caso a compi"amos com o comando%
/opt/&p!)-"g//b!n/&p!)) "o &ult&at*!? n&t:_&p!)
Para esse estudo foram uti"i=ados dois computadores+ disponibi"i=ados pe"a Uni2ersidade
Comunit1ria 3egiona" de C!apec( ` UNOCHAPECO+ com as seguintes configura<es%
processador 4N5E& Pentium 4H >+- M!= H5\
mem(ria 3AM de C?- Mb\
interface de rede Et!ernet ?..Mb 8u"" 6up"eL\
disco r'gido de V. :b\
sistema operaciona" CentO* B$?
O pr(Limo passo foi a criao do arqui2o 3*&+ o qua" ser1 respons12e" por passar as
informa<es e parZmetros de eLecuo ao grid$ Para a criao do rs" o arqui2o Pmac!inesQ
precisa ser criado ou copiado para o diret(rio do eLecut12e"$ Esse arqui2o cont;m os !osts
das m1quinas pertencentes ao grid e o n9mero m1Limo de processos que podem eLecutar$
Configurado para estes computadores o arqui2o Pmac!ines> est? como abaixo0
7lab.T/07 /@
7lab.T/A7 /@
Criamos o 3*&%
/opt/&p!)-"g//b!n/&p!*un "+u&p*sl &ult&at*!? B0 B00 4
&ult&at*!?*sl
Para a criao do arqui2o 3*& pode ser uti"i=ada a opo -dumprsl do comando mpirun,
mas teremos que editar o arqui2o 3*& para adicionar a"guns parZmetros$ Os argumentos C. e
C.. informam ao programa que de2ero ser mu"tip"icadas C. matri=es de taman!o C..LC..$
Como esse programa uti"i=a um processo para cada - matri=es+ e mais um que ser1 o
processo mestre+ precisamos criar+ no m'nimo+ MK- b ? processos para a eLecuo do
eLemp"o$
Ap(s o arqui2o 3*& ser editado e"e de2e se parecer com o seguinte%
C
8 D8*(sou*)(Manag(*Conta)t=7lab.T/079
8)ount=AE9
8lab(l=7subjob 079
8jobt1p(=&p!9
8(nv!*on&(nt=8GLOBUS_FU.OC_SUBJOB_INFEG 09
8LF_LIB.A.H_IATH /opt/globus/l!b/99
8a*gu&(nts= 7B07 7B0079
8(:()utabl(=7/-o&(/t))/t(st(_&p!/&ult&at*!?79
8st+out=7/t&p/sa!+aout79
8st+(**=7/t&p/sa!+a(**79
9
8 D8*(sou*)(Manag(*Conta)t=7lab.T/A79
8)ount=A/9
8lab(l=7subjob A79
8jobt1p(=&p!9
8a*gu&(nts= 7B07 7B0079
8(nv!*on&(nt=8GLOBUS_FU.OC_SUBJOB_INFEG A9
8LF_LIB.A.H_IATH /opt/globus/l!b/99
8(:()utabl(=7gs!'tp=//lab*t/0=/JAA/-o&(/t))/t(st(_&p!/&ult&at*!?7
9
8st+out=7gs!'tp=//lab*t/0=/JAA/t&p/sa!+aout79
8st+(**=7gs!'tp=//lab*t/0=/JAA/t&p/sa!+a(**79
9
Iuadro -$ 3*& para a submisso do programa ao grid$
As "in!as
8(:()utabl(=7gs!'tp=//lab*t/0=/JAA/-o&(/t))/t(st(_&p!/&ult&at*!?79
8st+out=7gs!'tp=//lab*t/0=/JAA/t&p/sa!+aout79
8st+(**=7gs!'tp=//lab*t/0=/JAA/t&p/sa!+a(**79
indicam aos processos eLecutando na m1quina "ab35-? que o eLecut12e" e os arqui2os
de sa'da encontram)se na m1quina "abrt-.$ Usando)se o protoco"o gsiftp estes processos iro
buscarKgra2ar os dados nesta m1quina+ no necessitando en2iar os arqui2os atra2;s do grid+
o que poderia ser feito caso dese0ado$
Para submeter o arqui2o 3*& ao grid uti"i=amos%
globus*un "' &ult&at*!?*sl
ou
/opt/&p!)-"g//b!n/&p!*un "globus*sl &ult!&at*!?*sl
Ap(s o t;rmino da eLecuo+ contido no arqui2o /t&p/sa!+aoutK temos o resu"tado
do programa en2iado+ o qua" retorna o tempo de eLecuo$
6urante os testes os seguintes resu"tados foram 2isua"i=ados$ 4nicia"mente foi
eLecutado o processamento nas duas m1quinas uti"i=ando o Ferne" norma" do *O$ O
resu"tado do processamento demorou ?C. segundos$ Ap(s+ foi no2amente eLecutado
o ap"icati2o+ mas usando)se o Ferne" *MP do *O+ o que diminuiu o tempo de
processamento para aproLimadamente ?.. segundos$ Apesar deste traba"!o no se
propor a fa=er compara<es de desempen!o+ este fato demonstra que aumentando)
se os processadores das m1quinas pertencentes ao grid o para"e"ismo do
processamento aumentaria a performance fina"$
E$> E*5U6O 6E CA*O -
ELecutamos um programa remotamente pe"o grid+ possibi"itando que este se0a
eLecutado+ por eLemp"o+ em um computador com maior capacidade computaciona"+ de forma
transparente para o usu1rio$
Para este estudo compi"amos o programa monoprocessado com um compi"ador da
"inguagem C disponi2e"$
g)) "o &onop*o)(ssa+o n&t:)
Podemos eLecutar um programa remotamente pe"o grid de 21rias maneiras+ abaiLo
a"gumas de"as$
globus"job"*un 3-ost4 3(:()utav(l4
ou
globus"job"sub&!t 3-ost4 3(:()utav(l4
e para 2er a saida do 0ob en2iado por g"obus)0ob)submit usamos
globus"job"g(t"output "out 3jobIF4
por n(s uti"i=adas da seguinte forma%
globus"job"*un lab.T/0 gs!'tp=//lab.T/A=/JAA/-o&(/t))/t(st(_&p!/
&onop*o)(ssa+o B0 B00
e
globus"job"sub&!t lab.T/0 gs!'tp=//lab.T/A=/JAA/-o&(/t))/
t(st(_&p!/&onop*o)(ssa+o B0 B00
globus"job"g(t"output "out -ttps=//lab*t/0uno)-ap()o(+ub*=
##/E//BAL#/AAEMJA/LM0/
Ainda podemos criar um arqui2o 3*& e submet#)"o uti"i=ando o comando Pg"obusrunQ
como abaiLo$
globus*un "' &onop*o)(ssa+o*sl
sendo que o arqui2o Pmonoprocessado$rs"Q contin!a as seguintes "in!as%
C
8 D8*(sou*)(Manag(*Conta)t=7lab*t/079
8)ount=A9
8lab(l=7subjob 079
8(nv!*on&(nt=8GLOBUS_FU.OC_SUBJOB_INFEG 09
8LF_LIB.A.H_IATH /opt/globus/l!b/99
8a*gu&(nts=7A07 7A0079
8(:()utabl(=7gs!'tp=//lab.T/A=/JAA/-o&(/t))/t(st(_&p!/
&onop*o)(ssa+o79
8st+out=7gs!'tp=//lab.T/A=/JAA/-o&(/t))/t(st(_&p!/
&onop*o)(ssa+oout79
9
EListem ainda a"guns 0obmanagers que possuem a"gumas funciona"idades eLtras para
ambientes !eterog#neos+ onde+ por eLemp"o+ podemos e esco"!er onde o programa ir1 ser
eLecutado atra2;s de restri<es co"ocadas no 3*&$
Umas destas funciona"idades so os parZmetros P!ost_tMpesQ e PmemorMQ que
especificam um ou mais grupos de nodos baseados em suas propriedades$ EL%
8-ost_t1p(s=6!a@E")o&put(6 5!a#/")o&put(69
8&(&o*14=A/J9
No primeiro parZmetro especificamos a arquitetura uti"i=ada @>- ou /B bitsA+ enquanto no
segundo restringimos a eLecuo a nodos que possuam ?-V Mb ou mais de mem(ria 3AM
dispon'2e"$
E$B E*5U6O 6E CA*O >
Nesse estudo de caso+ que tem por fina"idade apenas dar uma 2iso gera"+ mostramos
uma das formas de fa=er a migrao do ap"icati2o de mu"tip"icao de matri=es uti"i=ando as
bib"iotecas nati2as do :"obus+ sem o auLi"io de outras bib"iotecas como o MP4 ou PHM$ Essa
operao eLige que o programa se0a tota"mente re)escrito+ pois no encontramos na
documentao do :"obus fun<es que ti2essem as mesmas fina"idades ou funciona"idades
das empregadas na construo do programa uti"i=ando o padro MP4 ou outro qua"quer de
passagem de mensagens$
Mostramos aqui um pseudoc(digo de como ficaria esse programa e quais as fun<es
que poderiam ser uti"i=adas na sua imp"ementao$ Essas fun<es fa=em parte das
bib"iotecas do :"obus 5oo"Fit >$-$?$
O programa seria "itera"mente di2idido em dois+ um que seria o programa pai+
respons12e" pe"a distribuio e concentrao das matri=es+ esco"!a dos !osts ou nodos a
serem uti"i=ados e pe"a submisso dos processos fi"!os ao grid$ O outro+ o programa fi"!o+
seria respons12e" pe"a mu"tip"icao das matri=es+ e o seu en2io ao processo pai$ Esse
programa fi"!o seria eLecutado em cada !ost uti"i=ado e geraria t!reads+ conforme o
necess1rio+ para rea"i=ar a mu"tip"icao de forma para"e"a$
Para a troca de dados entre o programa pai e os programas fi"!os seria uti"i=ado o
sistema de arqui2o+ onde os dados seriam arma=enados e en2iados ao destino$ Esta
operao de transfer#ncia de dados atra2;s de arqui2os deiLaria a eLecuo mais "enta+ por
possuir opera<es de "eitura e escrita no disco r'gido$ Mas como sero poucas no
in2iabi"i=ariam a sua uti"i=ao$
AbaiLo temos o pseudoc(digo de como seria o programa Pai ou *er2idor$
I*o)(+!&(nto &a!n8Da*g) Da*gv9
N
t(&po!n!)!al=-o*a>
L(*A*,u!voCo&Hosts8-ostsOP9> //l(!tu*a +o a*,u!vo &a)-!n(s *(to*nan+o
no v(to* -osts
Cal)ula*QuantasMat*!?(sIo*Host89> //,uantas &at*!?(s s(*Ro (:()uta+as
(& )a+a -ost
G(*a*A*,u!voF(Con'89> /Ssalva* (& a*,u!vo o NT&(*o +( &at*!?(s po*
-ost ( o Host ,u( (stU o p*o)(sso pa! ( o no&( +o a*,u!vo on+( (l( )olo)a*a
o *(sulta+oS/
(n,uanto8nu&(*oMat*!?(s 4 A9
N
pa*a )ont = A atV )ont 4= Nu&(*oHosts 'aWa
N
Env!aA*,u!voIa*aHost8a*,u!voK-ostO)ontP9> /S(nv!a* o a*,u!vo )o&
as )on'!gu*aWX(sS/
Sub&(t(*I*og*a&a8I*og*a&aY!l-oK -ostO)ontP9> /Ssub&(t( o
p*og*a&a Y!l-o pa*a os no+osS/
Z'!&pa*a
pa*a )ont = A atV )ont 4= Nu&(*oHosts 'aWa
N
(n,uanto8status[=\FONE\9
N
status=I(ga*Status8-ostO)ontP9> //(sp(*a* os p*o)(ssos
a)aba*(&
s( 8status==\YAIL\9(ntaoN '!nal!?a89>Z
Z'!& (n,uanto
Z'!&pa*a
nu&(*oMat*!?=Cal)ulaNu&(*oMat*!?89> // *()al)ula* ,uantas &at*!?(s
sob*a*a&
G(*aCon'Ia*a.((nv!o89>/Sp(ga o no&( +os a*,u!vos )o& as &at*!?(s
*(to*noS/
Z'!&(n,uanto
t(&po'!nal=-o*a>
I&p*!&(.(sulta+o8t(&po!n!)!alKt(&po'!nal9>
Z'!&p*og*a&a
Iuadro >$ Pseudoc(digo do programa Pai ou *er2idor$
No quadro seguinte 2emos como seria o pseudoc(digo do programa 8i"!o$
I*o)(+!&(nto &a!n89
N
L(*A*,u!voCon'89>//va! l(* o a*,u!vo )on' *()(b!+o ( s(ta* as
va*!av(!s
(n,uanto 8N&at*!?(s 4 A9
N
pa*a )ont=A atV N&at*!?(s// 'aWa
N
T*avaT-*(a+89>
Esp(*aCon+!)aoT-*(a+8)on+!)ao9>
In!)!al!?aMat*!?8&at*!?A9> /Ss( 'o* a p*!&(!*a v(? !n!)!al!?aK
s(nao p(ga a &at*!? *()(b!+aS/
In!)!al!?aMat*!?8&at*!?/9>
L!b(*aT*avaT-*(a+89>
C*!aT-*(a+89>
In!)!al!?aT-*(a+8t-*(a+O)ontPK&ult!pl!)a8&at*!?AK&at*!?/K
D*(sulta+oO)ontP99//!n!)!al!?a a t-*(a+
Z'!&pa*a
N&at*!?(s=N&at*!?(s//>
Z'!&(n,uanto
Env!aMat*!?.(sultant(89>//(nv!a* &at*!? *(sultant( ao p*o)(sso pa!
Z
I*o)(+!&(nto &ult!pl!)a8&at*!?AK&at*!/KS*(sulta+o9
N
T*avaT-*(a+89>
&at*!?AAu: = &at*!?A> //v(to* au:!l!a* pa*a po+(* l!b(*a* pa*a out*a
t-*(a+ )o&(Wa* a l(* a sua &at*!?
&at*!?/Au: = &at*!?/>
L!b(*aCon+!)ao8)on+!)ao9>
*(sulta+o=)al)ula8&at*!?AAu:K&at*!?/Au:9>
L!b(*aT*avaT-*(a+89>
Z
Iuadro B$ Pseudoc(digo do programa 8i"!o
Uma das formas de desen2o"2imento das fun<es uti"i=adas nesse pseudo)c(digo+ seria
a uti"i=ao da AP4 g"obus)"ibc dispon'2e" no :"obus 5oo"Fit$ E"a ; a 2erso da bib"ioteca "ibc
comum adaptada para o ambiente :"obus$ Essa AP4 fornece 21rias ferramentas para
assegurar t!read)safetM e portabi"idade para opera<es de 4KO de arqui2os+ a"ocao de
mem(ria e outras fun<es imp"ementadas na "ibc comum$
Poder'amos+ por eLemp"o+ uti"i=ar a funo globus_l!b)_op(n89 para abrir arqui2os
e globus_l!b)_'p*!nt'89 para escre2er ne"es$ As fun<es globus_l!b)_&allo)89 (
globus_l!b)_*(allo)89 para o a"ocamento de mem(ria$
Para a uti"i=ao de t!reads o :"obus possui a AP4 :"obus_t!read+ que possui as
fun<es necess1rias para a criao+ sincroni=ao e fina"i=ao de t!reads$ Essas fun<es
inc"uiriam globus_t-*(a+_)*(at(89K globus_t-*(a+_+(st*o189K
globus_&ut(:_lo)289 K globus_&ut(:_unlo)289K globus_)on+_<a!t89K
globus_)on+_s!gnal89 entre outras$
A troca de dados entre o programa pai @ser2idorA e os programas fi"!os+ que
estariam espa"!ados pe"os !osts+ poderia ser feita de 21rias formas+ pois no :"obus
podemos uti"i=ar 21rios protoco"os para o en2io de arqui2os como 85P+ 5CP+ H55P e
H55P*$ As AP4cs uti"i=adas dependeriam do protoco"o a ser usado$ A AP4
g"obus_g"ass ; de f1ci" uti"i=ao e ; baseada nos protoco"os H55P e H55P*+ 01 a AP4
g"obus_ftp+ baseada no :rid85P+ ; muito mais poderosa em recursos+ mas sua
uti"i=ao ; um pouco mais comp"icada$ Podemos ainda uti"i=ar a AP4 g"obus_io que
fa= uso do protoco"o 5CP com socFets$
5 CONSIDERAOES FINAIS
Ao decorrer deste traba"!o estudamos 21rias formas de computao distribu'da e
para"e"a$ Um dos paradigmas de programao mais popu"ares para estes sistemas ; o
baseado em troca de mensagens entre os processos$ Abordamos tamb;m os conceitos que
en2o"2em os ambientes c"usters e grids computacionais+ mostrando suas principais
caracter'sticas$
Atra2;s deste estudo+ definimos as tecno"ogias que foram uti"i=adas$ O :"obus foi o
ambiente grid esco"!ido por possuir todas as funciona"idades necess1rias para a rea"i=ao
dos tr#s estudos de caso$ O padro de troca de mensagens MP4 foi esco"!ido por ter uma
grande documentao e por possuir grande faci"idade para a migrao de ap"icati2os entre as
suas imp"ementa<es+ como foi o caso do MP4CH que ; uma imp"ementao do MP4 para um
ambiente c"uster e o MP4CH):- que ; uma imp"ementao do MP4 para ambientes grids+
como os dois seguem o mesmo padro+ s 2e=es apenas uma recompi"ao dos c(digos com
a no2a bib"ioteca 01 basta$
Uma grande dificu"dade encontrada foi a insta"ao e a configurao do :"obus 5oo"Fit+
a";m de ser pouco documentada+ foram encontrados 21rios erros e incompatibi"idades na
insta"ao$
Conc"u'mos que a migrao de um ap"icati2o desen2o"2ido para um ambiente c"uster
para um ambiente grid+ apesar de poss'2e" e ocorrer sem grandes prob"emas+ nem sempre ;
2anta0osa$ 4sto depende muito da ap"icao de ser1 migrada$ Ambientes c"usters se destacam
pe"a a"ta)performance+ e por isso+ so mais indicados ap"ica<es onde !1 grande
processamento+ muita comunicao entre os processos+ ou um enorme 2o"ume de dados a
serem processados$
,1 em um ambiente grid+ de2ido a restri<es na comunicao entre as esta<es+ que
podem estar distribu'das pe"o mundo+ ap"ica<es baseadas em O5@ag of 5asFsA so as
mais indicadas por possu'rem pouqu'ssima ou nen!uma comunicao entre seus processos$
Em contrapartida+ um ambiente grid ; mais democr1tico+ todos que esto doando seu poder
computaciona" tem direito de uti"i=arem o grid quando necessitarem$
Nos estudos de caso foi poss'2e" 2erificar que a migrao de ap"icati2os de ambientes
c"usters para ambientes grids ; faci"mente conseguida quando seguimos um determinado
padro+ nesse caso o MP4$ Iuando no uti"i=amos+ !1 um aumento consider12e" de
dificu"dade na imp"ementao+ pois o ap"icati2o teria que ser tota"mente reescrito uti"i=ando as
bib"iotecas especificas de cada ambiente$ 5amb;m 2erificamos a possibi"idade da eLecuo
de um programa remotamente pe"o grid+ o que poderia ser uma a"ternati2a na busca de maior
poder de processamento$
Como traba"!os futuros podemos sugerir%
rea"i=ao de um prot(tipo que uti"i=e apenas as bib"iotecas nati2as do :"obus
5oo"Fit ou fa=endo um estudo direcionado a uti"i=ao de Jebser2ices no
ambiente :"obus$
rea"i=ar um estudo sobre as formas de migrao entre os ambientes grids+ ou
se0a+ ap"icati2os desen2o"2idos para o :"obus+ serem eLecutados em outro
ambiente+ como o Ourgrid$
@ REFERANCIAS
ONA+ &uis Car"os E$ de$ /L4eGidM U2a P$ata>*2a Disti#uida e C*)>ia"e$ 4aa a
C*24uta+,* e2 Gade$ 5ese para obteno do grau de 6outor ` Coordenao de P(s)
:raduao em Engen!aria E";trica e 4nform1tica 4ndustria"+ Centro de Educao 5ecno"ogica
do Paran1+ Curitiba+ -..B$
UENO+ Andr;$ I)t*du+,* a* P*'essa2e)t* Paa$e$* e a* Us* de C$ustes de
N*;stati*)s e2 Siste2as GNUOLINUX! 8"orian(po"is% Uni2ersidade 8edera" de
*anta Catarina+ -..-$
CHE6E+ Ce=ar 5aurion$ Gid C*24uti)gM u2 )*"* 4aadig2a '*24uta'i*)a$! 3io de
0aneiro% rasport+-..B$
6AN5A*+ M+ A&&EMAN6+ ,$ e PA**O*+ &$ A) E"a$uati*) *> g$*#us a)d Legi*) S*>tFae
E)"i*)2e)ts! 6ispon'2e" em% d!ttp%KK!pcs-..>$ccs$us!erbrooFe$caKpapersK6antas_.?$pdf$
a$ Acesso em%?. Out$ -..C$
8E33E43A+ &uis+ et a""$ RedB**; D Gid C*24uti)g i) Resea'= a)d Edu'ati*)$ 4M
Corporation+-..Ca$ 6ispon'2e" em% d!ttp%KKDDD$ibm$com$brKredbooFsa$ Acesso em% ?C Out$
-..C$
8E33E43A+ &uis+ et a""$ RedB**; D Gid C*24uti)gP P*du'ts a)d Se"i'es$ 4M
Corporation+-..Cb$ 6ispon'2e" em% d!ttp%KKDDD$ibm$com$brKredboo"sa Acesso em% -> *et$
-..C$
8E33E43A+ &uis+ et a""$ RedB**; D I)t*du'ti*) t* Gid C*24uti)g Fit= G$*#us$ 4M
Corporation+-..>$ 6isponi2e" em% d!ttp%KKDDD$ibm$com$brKredboo"sa$ Acesso em% ?C Out$
-..C$
8O36+ Egan+ et a""$ RedB**; D Bui$di)g a Li)u% /PC C$uste Fit= %CAT$ 4M
Corporation+-..-$ 6isponi2e" em% d!ttp%KKDDD$ibm$com$brKredboo"sa$ Acesso em% ?C Out de
-..C$
8O*5E3+ 4an+ ]E**E&MAN+ Car"$ G$*#usM A Meta'*24uti)g I)>astu'tue T**$;it!
*d$ 6ispon'2e" em% dftp%KKftp$g"obus$orgKpubKg"obusKpapersKg"obus$pdfa$ Acesso em% .C
de No2$ -..C$
8O*5E3+ 4an$ C*24utati*)a$ Gids! 6ispon'2e" em%
d!ttp%KKDDD$g"obus$orgKresearc!KpapersKc!apter-$pdfa$ Acesso em -U *et$ -..C$
83O*4+ &uciano Car"os$ C*24aa+,* e)te #i#$i*te'as 4aa 4*'essa2e)t* 4aa$e$*
'*2 #ase e2 u2 '$uste Be*Fu$>$ Monografia @ac!are" em Ci#ncia da ComputaoA `
Centro de 5ecno"ogico+ Uni2ersidade do Oeste de *anta Catarina+ C!apec(+ -...$
:ONSA&HE*+ Pau"o 3oberto$PA64&HA+ 5!ere=a P$ P$ C*)'eit*s e I24$e2e)ta+,* de
u2 Siste2a C*)'*e)te Oie)tad* a O#Ket*! -..?$ 6ispon'2e" em d !ttp%KKDDD$u"bra)
to$brKensinoKB>.-.KartigosKanais-..-KEncoinfo-..-K*istema_Concorrente$pdfa Acesso
em ./ 0un$ -../$
]A3ON4*+ Nic!o"as 5+ et a""$ MPIC/DG1M A GidDE)a#$ed I24$e2e)tati*) *> t=e Message
Passi)g I)te>a'e$ &aboratorio Naciona" de Argonne +-..-$ 6isponi2e" em%
d!ttp%KKDDD$ibm$com$brKredboo"sa$ Acesso em% -. Abr$ -../$
&AU*CHNE3+ &aura$ A2#ie)tes de eDS'ie)se e a E"*$u+,* d*s PadHes de
AQuitetua de C*24uta+,* e2 Gade! -..C$ 6ispon'2e" em% d!ttp%KKDDD)di$inf$puc)
rio$brKeend"erKsem:*6KmonografiasKtanara)"ausc!ner$pdfa Acesso em% ?. No2$ -..C$
&U:A3RO+ :ui"!erme 5$ O$ MPI B A i)te>a'e de 4assage)s de Me)sage)s! -..>$
6ispon'2e" em d !ttp%KKsocrates$if$usp$brKeguiocK&ibrarMKMP4$pdf a Acesso em ?. Abri"$
-../$
ME3]E^+ P!i"$ Be*Fu$> /ist*L! 6ispon'2e" em%
d!ttp%KKDDD$beoDu"f$orgKo2er2ieDK!istorM$!tm"a Acesso em% ?C set$ -..C
M4NE55O+ E"ton &$ P*tais de gids '*24uta'i*)ais$ Monografia @Especia"ista em Ci#ncia
da ComputaoA ` Centro 5ecno"(gico+ Uni2ersidade 8edera" de *anta Catarina+
8"orianopo"is+ -..C$
MP4CH-$ 6ispon'2e" em%d !ttp%KKDDD)uniL$mcs$an"$go2KmpiKmpic!Ka Acesso em% ?.
Abr$ -../
OURGRID 6!? USER MANUAL$ Uni2ersidade 8edera" de Campina :rande+-..B$ 6ispon'2e"
em% d!ttp%KKdragao$"sd$ufcg$edu$brKtDiFi)pub"icKpubKOur:ridKOur6ocumentationKmanua"_>$.$
pd fa$ Acesso em ?V No2$ -..C$
PACHECO+ Peter *$ A UseRs Guide t* MPI! ?UUV$ 6ispon'2e" em d
!ttp%KKneLus$cs$usfca$eduKmpiK a Acesso em -. Mar$ -../$
P45AN:A+ Marcos$ C*24uta+,* e2 C$usteM * estad* da ate da '*24uta+,*$ 3io de
,aneiro% rasport+-..>$
P45AN:A+ Marcos$ C*)stui)d* Su4e'*24utad*es '*2 Li)u%$ 3io de 0aneiro%
rasport+-..-$
*O5OMA^O3+ or0a$ OGSAOOGSIP NSRF e G$*#us! -..B$ 6ispon'2e" em
d!ttp%KKpeop"e$cs$uc!icago$eduKebor0aK"ecturesKtoDards_ser2ice_oriented_grid$pdf$ a
Acesso em ?C No2$ -..C$
*IU^3E*+ ,eff$ MPI Me'=a)i'! 6ispon'2e" em% !ttp%KKcD$squMres$comK$ Acesso em
No2embro de -..C
*5A&&4N:*+ Ji""ian$ O4eati)g SLste2sM I)te)a$s a)d Desig) Pi)'i4$es$ NeD ,erseM%
Prentice Ha""+ ?UUV$
5ANENAUM+ AndreD *$ Disti#uted O4eati)g SLste)s! NeD ,erseM% Prentice Ha""+?UUC
5ANENAUM+ AndreD *$ Siste2as *4ea'i*)ais 2*de)*s$ -ed$ *o Pau"o%
Prentice Ha""+ -..>$
5HE :&OU*WA&&4ANCE$ 6ispon'2e" em%d!ttp%KKDDD$g"obus$orga Acesso em% ?-
No2$ -..C
(? ANEXOS
?.$? ANEGO 4 ` CO64:O 8ON5E 6O P3O:3AMA 6E MU&54P&4CASTO 6E
MA534RE* U54&4RAN6O MP4
/S
Mult!pl!)aWRo +( n &at*!?(s ,ua+*a+as
+( o*+(& & G & (& s!st(&as
&ult!p*o)(ssa+os usan+o a b!bl!ot()a +(
p*o)(ssa&(nto pa*al(lo MIICH As n &at*!?(s
sRo +!v!+as (& p p*o)(ssos 8+uas a +uas9K os
,ua!s )al)ula& s(u p*o+uto ( o *(to*na& ao
p*o)(sso S(*v!+o* Est( ago*a possu! n//
&at*!?(s ( *(p(t( (st(s passos atV *(sta* ap(nas
u&a &at*!? *(sultant(
F(s(nvolv!+o po* Lu)!ano Ca*los Y*os!
S/
/S
S T-!s p*og*a& !s '*(( so't<a*(> 1ou )an *(+!st*!but( !t an+/o* &o+!'1
S !t un+(* t-( t(*&s o' t-( GNU G(n(*al Iubl!) L!)(ns( as publ!s-(+ b1
S t-( Y*(( So't<a*( Youn+at!on> (!t-(* v(*s!on / o' t-( L!)(ns(K o*
S 8at 1ou* opt!on9 an1 lat(* v(*s!on
S
S T-!s p*og*a& !s +!st*!but(+ !n t-( -op( t-at !t <!ll b( us('ulK
S but ]ITHOUT ANH ]A..ANTH> <!t-out (v(n t-( !&pl!(+ <a**ant1 o'
S ME.CHANTABILITH o* YITNESS YO. A IA.TICULA. IU.IOSE S(( t-(
S GNU L!b*a*1 G(n(*al Iubl!) L!)(ns( 'o* &o*( +(ta!ls
S/
^!n)lu+( 3st+!o-4
^!n)lu+( 3t!&(-4
^!n)lu+( 7&p!-7
^+('!n( MAGNMTG B0 // NT&(*o &U:!&o +( p*o)(ssos
^+('!n( MAG.O] B00 // O*+(& &U:!&a +( u&a &at*!?
^+('!n( YMSGTAG / // Tag &(nsag(n '!l-os p/ Ia!
^+('!n( IMSGTAG AA // Tag &(nsag(& Ia! p/ '!l-os
// YunWX(s pa*a !n!)!al!?a* &at*!?(s
vo!+ !n!t&t:8+oubl( S&at*!:K !nt &K !nt n&t:9>
// YunWX(s s(*v!+o* ( )l!(nt( *(sp()t!va&(nt(
!nt g(*a8+oubl( S&at*!:K !nt &K !nt n&t:K !nt &1!+9>
!nt *()(b(8!nt &1!+9>
!nt &a!n8!nt a*g) K )-a* Sa*gvOP9
N
!nt n&t:> // Nu&(*o +( &at*!?(s a g(*a*
!nt &> // O*+(& +a &at*!?
+oubl( S&at*!:> // Iont(!*o pa*a o v(to* +( &at*!?(s
!nt !K jK 2K )AK )/K )#K 'lagK t&pK *(s>
t!&(_t sta*tK (n+> // Va*!Uv(!s p/ )Ul)ulo +( t(&po +( p*o)(ssa&(nto
)-a* p*o)(sso*_na&(OMII_MAG_I.OCESSO._NAMEP>
!nt nu&_p*o)(ssK &1!+K na&(l(n>
MII_Status status>
MII_In!t8Da*g)K Da*gv9>
MII_Co&&_s!?(8MII_COMM_]O.LFK Dnu&_p*o)(ss9>
MII_Co&&_*an28MII_COMM_]O.LFK D&1!+9>
MII_G(t_p*o)(sso*_na&(8p*o)(sso*_na&(K Dna&(l(n9>

!' 8&1!+ == 09 N

// In!)!a t(&po +( p*o)(ssa&(nto
sta*t = t!&(8NULL9>

// .()up(*a pa*_&(t*os passa+os ao p*og*a&a ( v(*!'!)a
// s( os &(s&os sRo l(ga!s Ta&bV& v(*!'!)a s( nT&(*o +(
// p*o)(ssos !n'o*&a+os na l!n-a +( )o&an+o )on+!? )o& a *(al!+a+( +o
p*og*a&a
!' 8a*g) == #9 N
n&t: = ato!8a*gvOAP9>
& = ato!8a*gvO/P9>
Z
(ls( N
p*!nt'87`nS!nta:(= as nu&"&at*!?(s o*+(&`n7K a*gvO0P9>
MII_Abo*t8MII_COMM_]O.LFK A9>
*(tu*n8"A9>
Z
!' 88& 3 A bb & 4 MAG.O]9 bb 8n&t: 3 / bb n&t: 4 MAGNMTG99 N
p*!nt'87`nIa*_&(t*os (:)(+!+os`n79>
MII_Abo*t8MII_COMM_]O.LFK A9>
*(tu*n8"A9>
Z
t&p = 8n&t://9CA>
!' 8nu&_p*o)(ss 3 t&p9 N
p*!nt'87`nNT&(*o +( p*o)(ssos nRo )o(*(nt(= a+`n 7K
nu&_p*o)(ss9>
MII_Abo*t8MII_COMM_]O.LFK A9>
*(tu*n8"A9>
Z

// Alo)a &(&c*!a pa*a &at*!:
&at*!: = 8+oubl(S9&allo)8s!?(o'8+oubl(9S&S&Sn&t:9>
!' 8[&at*!:9 N
p*!nt'87`nS(& &(&c*!a[`n79>
'*((8&at*!:9>
MII_Abo*t8MII_COMM_]O.LFK A9>
*(tu*n8"A9>
Z

// In!)!al!?a &at*!?(s
!n!t&t:8&at*!:K &K n&t:9>

// G(*a '!l-os
g(*a8&at*!:K &K n&t:K &1!+9>

// Y!nal!?a t(&po +( p*o)(ssa&(nto
(n+ = t!&(8NULL9>
p*!nt'87`n`nas L(vou a0' s(gun+os pa*a )on)lu!*`n7K a*gvO0PK
+!''t!&(8(n+K sta*t99>
// L!b(*aWRo +( &(&c*!a alo)a+a p(lo p*o)(sso s(*v!+o*
'*((8&at*!:9>
Z
// Sou u& '!l-o
(ls( N
+o
*(s = *()(b(8&1!+9>
<-!l( 8*(s9>
Z
MII_Y!nal!?(89>
*(tu*n809>
Z
// In!)!al!?a o v(to* +( &at*!?(s
vo!+ !n!t&t:8+oubl( S&at*!:K !nt &K !nt n&t:9
N
!nt !>
'o*8!=0> !38&S&Sn&t:9> !CC9
&at*!:O!P = AB>
Z
// F!st*!bu! ( *()(b( &at*!?(s na *(+( +( &U,u!nas
!nt g(*a8+oubl( S&at*!:K !nt &K !nt n&t:K !nt &1!+9
N
+oubl( v(tOMAG.O]SMAG.O]P>
+oubl( Sv(tsK Sv(t*> //
V(to*(s au:!l!a*(s
!nt !K jK 2K )ountK <-o>
!nt lastK n'!l-osK )AK )/K )#>
MII_Status status>
v(ts = 8+oubl(S9&allo)8s!?(o'8+oubl(9S&S&9>
v(t* = 8+oubl(S9&allo)8s!?(o'8+oubl(9S&S&9>
// S( nT&(*o +( &at*!?(s V d&pa*K &ult!pl!)a Tlt!&a &at*!? +o v(to*
// p(la p*!&(!*a &at*!? +o v(to* +( &at*!?(s
!' 8n&t: a /9 N
last = 8n&t:S&S&9"8&S&9>
'o* 8!=0> !3&S&> !CC9 N
v(t*O!P = &at*!:O!P>
v(tsO!P = &at*!:O!ClastP>
Z
)A = 0>
)/ = 0>
)# = 0>
'o* 8!=0> !3&> !CC9 N
'o* 8j=0> j3&> jCC9 N
&at*!:O)#P = 0>
'o* 82=0> 23&> 2CC9 N
&at*!:O)#P C= v(t*O2C)AP S v(tsOjC)/P>
)/ C= &>

Z
)/ = 0>
)#CC>
Z
)A C= &>
Z
Z
n'!l-os = n&t://>
+o N
)ount = 0>
<-o = A>
'o* 8!=0> !3n'!l-os> !CC9 N
'o* 8j=0> j3/> jCC9 N
'o* 82=0> 23&S&> 2CC9 N
v(tO2P = &at*!:O2C)ountP>
Z
MII_S(n+8D&K AK MII_INTK &1!+C<-oK IMSGTAGK
MII_COMM_]O.LF9>
MII_S(n+8Dn'!l-osK AK MII_INTK &1!+C<-oK IMSGTAGK
MII_COMM_]O.LF9>
MII_S(n+8v(tK &S&K MII_FOUBLEK &1!+C<-oK IMSGTAGK
MII_COMM_]O.LF9>
)ount C= &S&>
Z
<-oCC>
Z
// Agua*+o *(sposta +os '!l-os
)ount = 0>
'o* 8!=0> !3n'!l-os> !CC9 N
MII_.()v8v(tK &S&K MII_FOUBLEK MII_ANH_SOU.CEK YMSGTAGK
MII_COMM_]O.LFK Dstatus9>
'o* 8j=0> j3&S&> jCC9 N
&at*!:OjC)ountP = v(tOjP>
Z
)ount C= &S&>
Z
// S( nT&(*o +( '!l-os g(*a+os n(sta g(*aWRo 'o! d&pa*K (ntRo
-U u& nT&(*o
// d&pa* +( &at*!?(s Est( !' t(sta (sta )on+!WRo ( s( v(*+a+(
'a? Tlt!&a &at*!?
// +o v(to* +( &at*!?(s v(?(s Ae &at*!? ( a*&a?(na *(sulta+o na
Ae &at*!?
!' 8n'!l-os a / DD n'!l-os 4 A9 N
last = )ount " &S&>
'o* 8!=0> !3&S&> !CC9 N
v(t*O!P = &at*!:O!P>
v(tsO!P = &at*!:O!ClastP>
Z
)A = 0>
)/ = 0>
)# = 0>
'o* 8!=0> !3&> !CC9 N
'o* 8j=0> j3&> jCC9 N
&at*!:O)#P = 0>
'o* 82=0> 23&> 2CC9 N
&at*!:O)#P C= v(t*O2C)AP S v(tsOjC)/P>
)/ C= &>

Z
)/ = 0>
)#CC>
Z
)A C= &>
Z
Z
// CUl)ula nT&(*o +( '!l-os +a p*c:!&a g(*aWRo
n'!l-os = n'!l-os//>
Z <-!l(8n'!l-os 4 09>
*(tu*n809>
Z
// E'(tua )Ul)ulos sob*( &at*!?(s *()(b!+as +o p*o)(sso s(*v!+o*
!nt *()(b(8!nt &1!+9
N
!nt !K jK 2K )AK )/K )#K &K n'!l-os>
+oubl( v(tsOMAG.O]SMAG.O]P>
+oubl( v(t*OMAG.O]SMAG.O]P>
+oubl( v(tOMAG.O]SMAG.O]P>
MII_Status status>
'o*8!=0> !3/> !CC9 N
MII_.()v8D&K AK MII_INTK 0K IMSGTAGK MII_COMM_]O.LFK Dstatus9>
MII_.()v8Dn'!l-osK AK MII_INTK 0K IMSGTAGK MII_COMM_]O.LFK
Dstatus9>
!' 8! == 09
MII_.()v8v(tsK &S&K MII_FOUBLEK 0K IMSGTAGK
MII_COMM_]O.LFK Dstatus9>
(ls(
MII_.()v8v(t*K &S&K MII_FOUBLEK 0K IMSGTAGK
MII_COMM_]O.LFK Dstatus9>
Z
// Mult!pl!)a as +uas &at*!?(s *()(b!+as +( &1!+ 0>
)A = 0>
)/ = 0>
)# = 0>
'o* 8!=0> !3&> !CC9 N
'o* 8j=0> j3&> jCC9 N
v(tO)#P = 0>
'o* 82=0> 23&> 2CC9 N
v(tO)#P C= v(tsO2C)AP S v(t*OjC)/P>
)/ C= &>

Z
)/ = 0>
)#CC>
Z
)A C= &>
Z
// Env!a a &at*!? *(sultant( +( volta ao p*o)(sso s(*v!+o*
MII_S(n+8v(tK &S&K MII_FOUBLEK 0K YMSGTAGK MII_COMM_]O.LF9>
// S( &(u &1!+ 'o* &a!o* ,u( nT&(*o +( '!l-os +a p*c:!&a g(*aWRoK
(ntRo
// posso su!)!+a*"&(
!' 8n'!l-os// 3 &1!+9
*(tu*n809>
(ls(
*(tu*n8A9>
Z
Iuadro C$ C(digo fonte programa de mu"tip"icao de matri=es com MP4
?.$- ANEGO 44 ) CO64:O 8ON5E 6O P3O:3AMA 6E MU&54P&4CASTO 6E
MA534RE* *EM U54&4RA3 PA3A&E&4*MO
/S
Mult!pl!)aWRo +( n nat*!?(s ,ua+*a+as
+( o*+(& & G & (& s!st(&as &onop*o)(ssa+os
F(s(nvolv!+o po* Lu)!ano Ca*los Y*os!
S/
^!n)lu+( 3st+!o-4
^!n)lu+( 3t!&(-4
^+('!n( MAGNMTG B0 // NT&(*o &U:!&o +(
p*o)(ssos
^+('!n( MAG.O] B00 // O*+(& &U:!&a +( u&a
&at*!?
!nt !n!t&at*!:8+oubl( S&at*!:K !nt n&t:K !nt &9>
!nt )al)ula8+oubl( S&at*!:K !nt n&t:K !nt &9>
!nt &a!n8!nt a*g)K )-a* Sa*gvOP9
N
!nt n&t:>
!nt &>
!nt !K jK 2K *(s>
+oubl( S&at*!:>
t!&(_t sta*tK (n+>
sta*t = t!&(8NULL9>
!' 8a*g) == #9 N
n&t: = ato!8a*gvOAP9>
& = ato!8a*gvO/P9>
Z
(ls( N
p*!nt'87`nS!nta:(= a*gvO0P ^&at*!?(s o*+(&`n79>
*(tu*n8"A9>
Z
!' 88n&t: 3 A bb n&t: 4 MAGNMTG9 bb 8& 3 A bb & 4 MAG.O]99 N
p*!nt'87`nValo*(s (:)(+!+os`n79>
*(tu*n8"A9>
Z
&at*!: = 8+oubl(S9&allo)8s!?(o'8+oubl(9S&S&Sn&t:9>
!' 8[&at*!:9 N
p*!nt'87`nS(& &(&c*!a[`n79>
'*((8&at*!:9>
*(tu*n8"A9>
Z

*(s = !n!t&at*!:8&at*!:K n&t:K &9>
*(s = )al)ula8&at*!:K n&t:K &9>
(n+ = t!&(8NULL9>
p*!nt'87`nas l(vou a0' s(gun+os= `n7K a*gvO0PK +!''t!&(8(n+K
sta*t99>
p*!nt'87`na/l'`n7K &at*!:O0P9>
'*((8&at*!:9>
*(tu*n809>
Z
!nt !n!t&at*!:8+oubl( S&at*!:K !nt n&t:K !nt &9
N
!nt !K ta&>
ta& = &S&Sn&t:>
'o*8!=0> !3ta&> !CC9
&at*!:O!P = AB>
*(tu*n809>
Z
!nt )al)ula8+oubl( S&at*!:K !nt n&t:K !nt &9
N
!nt !K jK 2K )AK )/K )#K lK 'lagK )ount>
+oubl( S*(sultK St(&pAK St(&p/>
*(sult = 8+oubl(S9&allo)8s!?(o'8+oubl(9S&S&9>
t(&pA = 8+oubl(S9&allo)8s!?(o'8+oubl(9S&S&9>
t(&p/ = 8+oubl(S9&allo)8s!?(o'8+oubl(9S&S&9>
!' 8[8*(sult DD t(&pA DD t(&p/99 N
p*!nt'87`nS(& &(&c*!a[`n79>
'*((8*(sult9> '*((8t(&pA9> '*((8t(&p/9>
*(tu*n8"A9>
Z
)ount = 0>
'o* 8l=0> l38n&t:"A9> lCC9 N
!' 8[)ount9 N
'o* 8!=0> !3&S&> !CC9 N
t(&pAO!P = &at*!:O!P>
t(&p/O!P = &at*!:O!C&S&P>
Z
'lag = A>
Z
(ls(
'o* 8!=0> !3&S&> !CC9
t(&p/O!P = &at*!:O)ountC!P>

)A = 0>
)/ = 0>
)# = 0>
'o* 8!=0> !3&> !CC9 N
'o* 8j=0> j3&> jCC9 N
*(sultO)#P = 0>
'o* 82=0> 23&> 2CC9 N
*(sultO)#P C= t(&pAO2C)AP S t(&p/OjC)/P>
)/ C= &>

Z
)/ = 0>
)#CC>
Z
)A C= &>
Z
'o* 8!=0> !3&S&> !CC9 N
t(&pAO!P = *(sultO!P>
Z
!' 8'lag9 N
)ount C= &S&S/>
'lag = 0>
Z
(ls(
)ount C= &S&>
Z
'o* 8!=0> !3&S&> !CC9
&at*!:O!P = *(sultO!P>
'*((8*(sult9> '*((8t(&pA9> '*((8t(&p/9>
*(tu*n809>
Z
Iuadro /$ C(digo fonte programa de mu"tip"icao de matri=es sem para"e"ismo

Potrebbero piacerti anche