Você está na página 1de 3

Universidade do Estado de Mato Grosso

Campus Universitrio de Barra do Bugres


Curso Bacharelado em Cincia da Computao
Docente: Leandro Santos
Discentes: Maurinho Junior de Souza Neves, Anderson da Costa Ritter
RESUMO
Aspectos de Programa!o Para"e"a em M#$uinas NUMA
%&'N(RO)U*+O
Os ltimos anos tm sido marcados por avanos cient!"icos as #uais e$igem% cada ve& mais%
um maior poder computacional' Com aumento do poder computacional dos computadores de
prateleira e a disponi(ilidade dos e#uipamentos de intercone$o% os clusters de computadores
se tornaram (astante populares' ) os multiprocessadores sim*tricos +,M-s. permitem o
emprego do paradigma de programao por mem/ria compartilhada% mais "amiliar a maioria
dos programadores' 0 desvantagem dos ,M-s est no seu custo mais elevado e na limitao
do nmero de processadores #ue o comp1e' O 2inu$ e o Open,olaris so dois e$emplos de
sistemas operacionais #ue o"erecem suporte para m#uinas 3UM0' 0m(os constroem
a(stra1es de grupos de recursos +processadores e mem/ria. de acordo com um crit*rio de
latncia de acesso 4 mem/ria e usam essas a(stra1es no escalonamento e na alocao de
mem/ria'
, - Ar$uiteturas Para"e"as
5radicionalmente% os sistemas operacionais so organi&ados em torno de um conceito
"undamental: o processo' Um processo possui um "lu$o de controle +thread. #ue "ornece a
ordem em #ue as instru1es so e$ecutadas so(re um con6unto de dados'
-ara se o(ter processamento paralelo * necessrio #ue% de alguma "orma% vrios
processos ou "lu$os de controle +threads. se6am e$ecutados simultaneamente' -ara melhor
compreender o tipo de paralelismo a ser e$plorado% em 789:% prop;s uma ta$onomia #ue
classi"icava as m#uinas de acordo com uma com(inao de duas dimens1es' Considerando
#ue em cada uma dessas duas dimens1es * poss!vel ter duas op1es% nico "lu$o ou vrios
"lu$os% o(t*m<se as #uatro com(ina1es'
Os computadores de "lu$o nico de instru1es% "lu$o nico de dados% so as
m#uinas de =on 3euman tradicionais (aseadas em processadores como um >ntel ?@A?B%
onde um processador (usca uma instruo por ve& e a e$ecuta so(re um nico dado' Um
computador de "lu$o mltiplo de instru1es% "lu$o nico de dados% seria capa& de e$ecutar um
con6unto de instru1es so(re um mesmo dado' Coi empregado o condicional +seria. por#ue% na
prtica% at* ho6e% no e$iste nenhuma m#uina com essa capacidade% "icando apenas como
uma classe te/rica' -or "im% os computadores de "lu$o mltiplo de instru1es% "lu$o mltiplo
de dados% #ue constituem a plata"orma de computao paralela mais comum ho6e em dia' Os
multicomputadores% os multiprocessadores e os processadores multicore so representantes
t!picos dessa classe' D poss!vel classi"icar as m#uinas M>MD em duas categorias:
Cortemente acoplada e Cracamente acoplada' 5ipicamente% os sistemas "ortemente acoplados
so denominados de sistemas de processamento paralelo e os sistemas "racamente acoplados
de sistemas distri(u!dos' Em um sistema "ortemente acoplado todos os processadores
acessam% atrav*s de uma malha de intercone$o% um mesmo espao de endereamento
compartilhado' ,urge ento as ar#uiteturas denominadas de UM0 +Uniform Memory Access.
e 3UM0 +Non-Uniform Memory Access.' Uma m#uina UM0 * caracteri&ada por "ornecer
um tempo de acesso idntico a todas posi1es de mem/ria para todos os processadores do
sistema' ) em uma m#uina 3UM0% a mem/ria * "isicamente composta por vrios (ancos de
mem/ria% podendo estar% cada um% vinculados a um processador'
Um outro ponto importante nas m#uinas 3UM0 di& respeito 4 mem/ria cache' D
comum% por #uest1es de desempenho% cada processador possuir uma mem/ria cache' 0s
m#uinas cc<3UM0 +cache coherent 3UM0. so pro6etadas para garantir a coerncia entre o
valor arma&enado em uma cache e na sua posio original' 0s ar#uiteturas ncc<3UM0 +non-
cache coherent 3UM0. no provem esse suporte'
E$istem dois outros tipos de ar#uitetura: COM0 +cache only memory architecture. e
3OEM0 +non-remote memory access.' Em uma m#uina COM0% todas as mem/rias locais
esto estruturadas como mem/rias caches e possuem% por hardFare% uma replicao de um
(loco de cache em todos os n/s' 0s ar#uiteturas 3OEM0% por sua ve&% salientam o aspecto de
cada processador ter uma mem/ria pr/pria no compartilhada com os demais'
,.% - Ar$uiteturas UMA
0s m#uinas UM0 so caracteri&adas pelo "ato de #ue a mem/ria * centrali&ada e acess!vel
por todos os processadores da mesma "orma' 0 rede de intercone$o usada * o (arramento% o
#ue gera um gargalo de acesso 6 #ue s/ pode haver um processador por ve& reali&ando
acessos 4 mem/ria' Entretanto% h "ormas de redu&ir esse con"lito de acesso como% por
e$emplo% o uso de outras redes de intercone$o% o emprego de mem/rias multiportas%
organi&ao da mem/ria em (ancos% mem/rias cache etc' 0s caches% al*m de melhorem o
desempenho do sistema% contri(uem para redu&ir o gargalo do (arramento' 0penas os acessos
4s posi1es de mem/ria no mantidas em cache necessitam disputar o uso do (arramento'
Entretanto% o uso de cache introdu& o pro(lema de coerncia de cache: sempre #ue uma
posio de mem/ria "or modi"icada% sua c/pia mantida em #ual#uer cache deve ser invalidada
para #ue o processador se6a "orado a (uscar o novo valor na mem/ria E0M'
Os multiprocessadores sim*tricos +,Gmmetric Multi-rocessors H ,M-.% dispon!veis
comercialmente% so e$emplos t!picos de m#uinas UM0' 3essas m#uinas * comum
encontrar uma rede de intercone$o do tipo (arramento' Esse (arramento% implementa um
ar(itrador e um protocolo de coerncia de cache' O ar(itrador serve para coordenar o acesso
de um processador 4 mem/ria E0M atrav*s do (arramento impedindo acessos simultIneos e
con"lituosos entre processadores' ,empre #ue um processador modi"icar um dado contido em
uma linha de cache% ca(e ao protocolo de coerncia de cache propagar essa modi"icao at* a
mem/ria E0M e invalidar toda e #ual#uer outra linha de cache #ue mant*m uma c/pia dessa
posio de mem/ria modi"icada'
,., - Ar$uiteturas NUMA
0s m#uinas 3UM0 so constru!das interconectando vrios m/dulos compostos por
processadores e mem/rias' * poss!vel se perguntar #ual a di"erena entre uma m#uina
3UM0 e um cluster de computadores' E$istem duas grandes di"erenas' -rimeiro% em uma
m#uina 3UM0 e$iste um nico sistema operacional gerenciando todos os recursos em um
cluster% cada n/ +computador. * uma m#uina independente com o seu pr/prio sistema
operacional' ,egundo% o espao de endereamento de uma m#uina 3UM0 * nico e
compartilhado% isto *% as mem/rias dos di"erentes m/dulos comp1em a mem/ria total do
sistema% Em um cluster% cada m#uina tem um espao de endereamento privativo'
Em uma m#uina 3UM0 todos os processadores Jen$ergamK o mesmo espao de
endereamento% por*m algumas posi1es so mais demoradas de se acessar #ue outras'
,e por um lado% as m#uinas 3UM0 tem a vantagem de agregar mais paralelismo
real adicionando mais processadores sem aumentar o con"lito e gargalo de acesso ao
(arramento% comuns aos ,M-% ela apresenta a desvantagem de "ornecer um acesso no<
uni"orme 4 mem/ria' Esse acesso no uni"orme * importante para o desempenho da aplicao
e deve ser avaliado'
Uma "orma (astante comum de medir a no<uni"ormidade de acesso 4 mem/ria * o
"ator 3UM0'para uma aplicao e$ecutar de "orma e"iciente em uma ar#uitetura 3UM0 *
dese6vel #ue os processos se6am escalonados nos processadores mais pr/$imos poss!veis da
"ai$a de endereamento #ue eles acessam para redu&ir o "ator 3UM0' * necessrio estimar o
"ator 3UM0 de alguma "orma e o sistema operacional deve usar essa in"ormao na sua
deciso de escalonamento'
-ara m#uinas 3UM0% e$istem ta(elas #ue medem esse "ator 3UM0% as ta(elas
mais relevantes so a ,E05 +,Gstem Eesource 0""initG 5a(le. e a ,2>5 +,Gstem 2ocalitG
>n"ormation 5a(le.'
0 ,E05 "oi de"inida para ser usada em sistemas operacionais dedicados a m#uinas
3UM0 para permitir #ue na tare"a de alocao de mem/ria os dados se6am alocados o mais
pr/$imo% em latncia de mem/ria% do local onde o processo +ou thread. ser e$ecutado' 0
,2>5% por sua ve&% "ornece a distIncia relativa +latncia de mem/ria. entre di"erentes dom!nios
ou localidades% isto *% processadores% controladores de mem/ria e pontes'
0lguns sistemas operacionais% entre eles% o 2inu$ e Open,olaris% de"inem a distIncia
entre m/dulos usando a(stra1es pr/prias como dom!nios e lgroup% respectivamente'