Escolar Documentos
Profissional Documentos
Cultura Documentos
RESUMO
1.
Nos u
ltimos anos, os principais fabricantes de processadores
comecaram
a
produzir
chips
com v
arios n
ucleos, denominados multicore que, por sua vez,
podem suportar mais de uma linha de execuca
o (thread ).
A tendencia por alguns anos consistiu em aumentar a
velocidade indefinidamente em um u
nico n
ucleo, mas por
raz
oes fsicas as pesquisas se voltaram para a utilizaca
o
de v
arios n
ucleos em um processador. O Paralelismo em
Nvel de Thread permite que partes especficas do programa
sejam distribudas entre diferentes n
ucleos e assim possam
executar simultaneamente. Existem diferentes formas de
implementaca
o do paralelismo em nvel de thread e estas
envolvem a maneira como os demais recursos disponveis
s
ao utilizados. Este trabalho apresenta uma vis
ao geral de
como o Power 7 da IBM utiliza os recursos da m
aquina
para formar uma plataforma que suporte o paralelismo em
nvel de thread. Neste trabalho tambem e apresentado um
pequeno exemplo da utilizaca
o dos cores por uma aplicaca
o
que n
ao foi desenvolvida para trabalhar com paralelismo.
Termos Gerais
Performance
Palavras-chave
INTRODUO
Nas u
ltimas anos, os processadores de u
ltima geraca
o vem
apresentando incrementos nos n
umeros de n
ucleos [1] (fato
previsto na Lei de Moore1 ): (2009) dois n
ucleos (dual-core)
e quatro n
ucleos (quad-core); (2010 2012) oito n
ucleos
(oct-core). Os processadores para servidores, em 2011 2012, tem apresentado de 10 a 16 n
ucleos em apenas um
chip (Intel Xeon processador E7 e AMD OpteronTM 6282
SE, respectivamente). De acordo com um relat
orio da Intel
[2], em 2015 um tpico chip de processador dever
a consistir
de dezenas e ate centenas de n
ucleos dedicados para fins
especficos.
A evoluca
o do paralelismo poderia ser resumida em 4
nveis, conforme apresentada em [3]: (a) paralelismo em
nvel de bits, onde o tamanho da palavra usada pelos
processadores para operaco
es aumentou gradualmente de 4
bits a 64 bits; (b) paralelismo por pipelining, onde a ideia
de pipelining em nvel de instruca
o e uma sobreposica
o
da execuca
o de m
ultiplas instruco
es; (c) paralelismo por
m
ultiplas unidades funcionais, onde muitos processadores
s
ao de emiss
ao m
ultipla e podem trabalhar em paralelo, tais
como processadores superescalares e processadores VLIW
[4]; (d) paralelismo em processo ou em nvel de thread.
As pr
oximas seco
es abordar
ao principalmente aspectos
relacionados ao TLP, a arquitetura foco deste trabalho.
Adicionalmente, os usu
arios est
ao interessados em se
beneficiar do aumento de desempenho fornecido pelos
processadores multicore. Os usu
arios podem facilmente
executar v
arias aplicaco
es ao mesmo tempo utilizando um
n
ucleo para cada aplicaca
o. Entretando seria interessante
executar uma u
nica aplicaca
o utilizando os v
arios n
ucleos de
modo que estes recursos sejam melhor aproveitados (Figura
2). Porem, a aplicac
ao deveria ser adequadamente escrita
para ser executada em v
arios n
ucleos.
2.1
A utilizaca
o de v
arias linhas de execuca
o simult
aneas recebe
o nome de multithreading. Com multithreading e possvel
ter v
arios threads compartilhando, de forma intercalada,
as mesmas unidades funcionais de um processador, onde o
processador duplica o estado independente de cada thread
[4]. O Paralelismo em Nvel de Thread envolve o controle
de m
ultiplas threads do processador, permitindo que partes
especficas do programa sejam distribudas entre diferentes
n
ucleos e possam ser executadas simultaneamente. Um dos
paradigmas implementados pelos processadores que usam
TLP e o Simultaneous MultiThreading (SMT), que aparece
como uma alternativa para o uso de multithreading e consiste
em executar m
ultiplas threads simultaneamente em um
ou mais n
ucleos[1]. De acordo com [4], um motivo para
utilizar SMT e que uma u
nica thread de controle geralmente
n
ao fornece suficiente paralelismo em nvel de instruca
o
para usar todas as unidades funcionais dos processadores
superescalares.
Em multithreading existem duas formas principais de
realizar a troca entre as threads: granularidade fina e
granularidade grossa, que ser
ao descritas nas seco
es 2.1.1
e 2.1.2.
Figura 2: Unica
aplica
c
ao em v
arios n
ucleos
http://www.devx.com/SpecialReports/Article/40965/1954
Esta seca
o apresenta uma breve introduca
o sobre aspectos
que tornam o paralelismo importante para a computaca
o
de alto desempenho, bem como um breve resumo hist
orico
sobre a evoluca
o do mesmo.
A seca
o 2 contem
fundamentos te
oricos sobre o paralelismo, com destaque
para o paralelismo em nvel de thread (foco deste trabalho)
e apresenta um breve exemplo da utilizaca
o dos n
ucleos de
uma m
aquina. A seca
o 3 apresenta os processadores que
suportam o TLP. A seca
o 4 aprofunda o assunto TLP ao
apresentar, de um modo geral, a arquitetura do processador
Power 7 da IBM, dando enfase na coerencia de cache. A
seca
o 5 apresenta a conclus
ao.
2.
1
PARALELISMO
2.2
Figura 4: Hyperthreading
http://www.techfrill.com/132/
hyper-threading-technology-introduction/
2.1.1
2.1.2
PROCESSADOR
IBM
Power 7[9]
DATA
CORES
THREAD
2010
32
2011
12
2011
10
20
2010
64
2011
6*
2011
16
16*
TM
R Core
Intel
i7
i7-3960X[10]
R Xeon
R E7
Intel
E7-8870[11]
Oracle
SPARC T4[12]
AMD PhenomTM II X6
Black 1100T[13]
AMD OpteronTM
6282 SE[14]
3.
PROCESSADORES
Nesta seca
o ser
a apresentado um panorama geral dos
processadores produzidos pela ind
ustria, especificamente
aqueles utilizados para construca
o de computadores mais
poderosos. A Figura 9 mostra a evoluca
o do uso da
tecnologia de diversos fabricantes de 1993 ate 2011. Podese observar que em 2011 somente 4 fabricantes ainda
prevaleciam no mercado: IBM, INTEL, ORACLE (SPARC)
e AMD.
4.
4.1
IBM Power 7
4.2
Coerncia de cache
5.
CONCLUSES
6.
REFERNCIAS
[1] Gudula R
unger Rauber Thomas. Parallel
Programming: for Multicore and Cluster Systems.
Springer-Verlag Berlin Heidelberg, 3ra edition, 2010.
[2] David J. Kuck. Platform 2015 software-enabling
innovation in parallelism for the next decade.
Technology@Intel Magazine, 2005.
[3] David Culler, J.P. Singh, and Anoop Gupta. Parallel
Computer Architecture: A Hardware/Software
Approach. Morgan Kaufmann, 1st edition, 1998.
[4] David A. Patterson John L. Hennessy. Computer
Architecture: A Quantitative Approach. ELSEVIER,
Morgan Kaufmann Publishers, 4ra edition, 2007.
[5] Lawrence Livermore National Laboratory
Blaise Barney. Introduction to parallel computing.
https://computing.llnl.gov/tutorials/parallel comp/,
2012. [Online; acessada 18-Mai-2012].
[6] Lin Gao. Multithreading.
http://www.cse.unsw.edu.au/ cs9244/06/seminars/05gaol.pdf, 2012. [Online; acessada
18-Mai-2012].
[7] Tianzhou Chen, Xingsheng Tang, Jianliang Ma, Lihan
Ju, Guanjun Jiang, and Qingsong Shi. Single thread
program parallelism with dataflow abstracting thread.
ICA3PP10. Springer-Verlag, Berlin, Heidelberg, 2010.
[8] RForge provide a colaborative environment for
R package developers. Multicore - parallel processing
in r on machines with multiple cores or cpus.
http://www.rforge.net/multicore/, 2011. [Online;
acessada 20-Mai-2012].
[9] IBM Corporation. Power7 processors: The beat goes
on.
http://www.ibm.com/developerworks/wikis/download/
attachments/104533501/POWER7++The+Beat+Goes+On.pdf, 2011. [Online; acessada
12-Mai-2012].
TM
R core
[10] Intel Corporation. Intel
i7-3960x processor
extreme edition.
http://www.intel.com/content/www/us/en/processorcomparison/processor-specifications.html?proc=63696,
2012. [Online; acessada 12-Mai-2012].
R xeon
R processor e7-8870.
[11] Intel Corporation. Intel
http://ark.intel.com/products/53580, 2011. [Online;
acessada 12-Mai-2012].
[12] ORACLE Corporation. Sparc t4 processor.
http://www.oracle.com/us/products/serversstorage/servers/sparc-enterprise/t-series/sparc-t4processor-ds-497205.pdf, 2010. [Online; acessada
12-Mai-2012].
[13] AMD Corporation. Amd phenomTM ii x6 black 1100t.
http://products.amd.com/enus/DesktopCPUDetail.aspx?id=726, 2010. [Online;
acessada 12-Mai-2012].
[14] AMD Corporation. Amd opteronTM 6282 se processor.
http://products.amd.com/enus/OpteronCPUDetail.aspx?id=756, 2011. [Online;
acessada 12-Mai-2012].
[15] HP Hewlett-Packard Development Company. Amd
R xeon
R x86 processors in
opteronTM and intel
industry-standard servers.
http://h20000.www2.hp.com/bc/docs/support/
SupportManual/C02731435/C02731435.pdf, 2012.
[Online; acessada 20-Mai-2012].
[16] AMD Corporation. Intel hyper-threading vs. amd true
core scalability.
http://blogs.amd.com/work/2010/03/30/intel-hyperthreading-vs-amd-true-core-scalability/, 2010. [Online;
acessada 12-Mai-2012].
[17] IBM Corporation. Advances in simultaneous
multithreading testcase generation methods.
http://www.research.ibm.com/haifa/conferences/
hvc2010/present/Advances in Simultaneous
Multithreading Testcase Generation Methods.pdf,
2011. [Online; acessada 30-Mai-2012].
[18] Carlo Costantini Volker Haug Cesar Diniz Maciel
John T Schmidt An Ding Chen, James Cruickshank.
IBM Power 795: Technical Overview and
Introduction. ibm.com/redbooks, 1ra edition, 2010.
[19] IBM Corporation. Whats this multi-core computing
really? http://www-03.ibm.com/systems/resources/
pwrsysperf WhatIsMulticoreP7.pdf, 2011. [Online;
acessada 30-Mai-2012].
[20] IBM Corporation. Simultaneous multi-threading on
power7 processors. http://www03.ibm.com/systems/resources/pwrsysperf SMT4OnP7.pdf,
2011. [Online; acessada 30-Mai-2012].
[21] IBM Corporation. Under the hood: Of power7
processor caches.
http://www-03.ibm.com/systems/resources/ systems power software i perfmgmt underthehood.pdf,
2011. [Online; acessada 30-Mai-2012].