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'