Você está na página 1de 7

Paralelismo em Nvel de Thread

Eliana Alves Moreira


(RA 120437)
eliana@unifei.edu.br

Gerson Nunho Carriel


Julin E. Gutirrez P.
(RA 123789)
(RA 134097)
gerson.carriel@gmail.com ra134097@ic.unicamp.br

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.

O paralelismo e o termo utilizado para indicar que


uma arquitetura permite v
arias execuco
es simult
aneas.
De acordo com Thomas Rauber em seu livro Parallel
Programming: for Multicore and Cluster Systems[1], o
paralelismo tem sido bem utilizado na computaca
o cientfica
de alto desempenho em diversas aplicaco
es, tais como
simulaco
es de clima, desenvolvimento de medicamentos,
simulaco
es de colis
ao pela ind
ustria automotiva, aplicaco
es
em computaca
o gr
afica, entre outras.
Ainda segundo
[1], nos u
ltimos anos as pesquisas sobre alto desempenho
incluram novos desenvolvimentos em tecnologias paralelas
de hardware e software, bem como programaca
o paralela
(descrita brevemente na Seca
o 2.2) .

Categorias e Descritores de Contedo


C.1.2
[Computer
Systems
Organization]:
PROCESSOR ARCHITECTURES Multiple Data Stream
Architectures (Multiprocessors);
C.1.4
[Computer
Systems
Organization]:
PROCESSOR ARCHITECTURES Parallel Architectures

Termos Gerais
Performance

Palavras-chave

INTRODUO

Atualmente, os fabricantes de processadores comecaram a


produzir, por raz
oes fsicas, chips, denominados multicore,
com v
arias unidades de computaca
o (n
ucleos ou cores) [2]
ao inves de aumentar a velocidade indefinidamente em um
u
nico n
ucleo, como foi a tendencia durante alguns anos.
Os autores [1] e [2] citam as seguintes raz
oes fsicas para
esta mudanca: (a) o aumento do n
umero de transistores em
um chip implica no aumento do consumo de energia e da
produc
ao de calor; (b) o tempo de acesso de mem
oria n
ao
poderia ser reduzido no mesmo ritmo da taxa do perodo
de clock do processador; (c) a velocidade de transferencia
de sinal e afetada pelo aumento do comprimento do fio do
processador interno para transferir o controle de dados entre
as unidades funcionais do processador; (d) a largura de
banda entre CPU e mem
oria principal est
a limitada pelo
o n
umero de pinos que, por sua vez, est
a limitado pelo
tamanho fsico do chip do processador. A Figura 1 mostra
os pinos que constam no Intel Xeon E7.

Multicore, Lei de Moore, TLP, IBM Power 7, Thread


Apresentado ao Prof. Dr. Paulo Cesar Centoducatte
IC/UNICAMP - Disciplina Arquitetura de Computadores I
(MO401) Universidade Estadual de Campinas Instituto
de Computaca
o Av. Albert Einstein, 1251 - Cidade
Universit
aria Campinas/SP - Brasil

garantida a permisso para copiar, distribuir e/ou modificar este


documento sob os termos da Licena de Documentao Livre GNU
(GNU Free Documentation License ), verso 1.3 ou qualquer verso
posterior publicada pela Free Software Foundation. A licena est
disponvel em http://www.gnu.org/copyleft/fdl.html.
Este texto foi produzido usando exclusivamente software livre: sistema
operacional Linux (distribuies Mint, Debian e Ubuntu), compilador de
texto LATEXe gerenciador de referncias BibTEX.

Figura 1: Processador Intel Xeon E7


http://www.memory4less.com/images/
products/Img0922/BX80615E74870-lg.jpg

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.

Uma das arquiteturas que implementam o paralelismo e o


Paralelismo em Nvel de Thread (TLP, do ingles Thread
Level Parallelism), que envolve o controle de m
ultiplas
linhas de execuca
o (comumente chamadas de threads) do
processador, permitindo que partes especficas do programa
sejam distribudas entre diferentes n
ucleos e possam ser
executadas simultaneamente.

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

Paralelismo em Nvel de Thread (TLP)

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

A Lei de Moore e uma observaca


o emprica, feita por
Gordon Moore em 1965, afirmando que o n
umero de
transistores de um chip de processador tpico dobra a
cada 18-24 meses, sendo acompanhado por um aumento na
velocidade de clock.

De acordo com pesquisas realizadas [5], quando uma thread


e colocada em execuca
o, tem-se alguns limites alcancados
em relaca
o a
` programaca
o paralela, limites estes que est
ao
relacionados com a porca
o de c
odigo paraleliz
avel. Conforme
pode-se observar na Figura 3, para uma proporca
o de 25%
de c
odigo paraleliz
avel, n
ao se tem melhoras significativas
independente da quantidade de n
ucleos. Por outro lado,
em um c
odigo 95% paraleliz
avel tem-se uma melhora
significativa quando uma thread e colocada em processadores
de ate 256 n
ucleos. Qualquer quantidade de processadores
acima de 256 n
ucleos apresenta melhora insignificante no
desempenho.
Uma implementaca
o propriet
aria para o SMT e chamada
R
Hyperthreading (HT) para os processadores Intel .
O
HT permite que um processador fsico seja dividido em mais
processadores l
ogicos que compartilham unidades funcionais
(Figura 4). Neste caso, o sistema operacional ve e gerencia
dois processadores em vez de apenas um processador
fsico. O sistema operacional deve ter suporte para m
ultiplos
processadores (SMP, do ingles Symmetric Multiprocessing),
caso contr
ario, recomenda-se desabilitar o HT. Nem todos
os fabricantes de processadores, como por exemplo AMD,

Figura 5: Granularidade Fina - FMT


http://www.realworldtech.com/page.cfm?ArticleID=RWT122600000000

Figura 3: Limites do Paralelismo


https://computing.llnl.gov/tutorials/parallel comp/

desempenho de uma thread individual e menos afetado.


Porem, esta arquitetura possui um pipeline limitado para
despachar instruco
es de uma u
nica thread e assim, a cada
troca de threads, o pipeline precisa ser esvaziado, e portanto,
esta tecnica traz benefcios em casos onde o stall e mais
demorado que o tempo do preenchimento do pipeline [4].
Portanto, neste tipo de arquitetura e difcil fazer um
balanceamento eficiente de carga [6].

oferecem suporte de HT.

Figura 6: Granularidade Grossa - CMT


http://www.realworldtech.com/page.cfm?ArticleID=RWT122600000000

2.2
Figura 4: Hyperthreading
http://www.techfrill.com/132/
hyper-threading-technology-introduction/

2.1.1

Multithreads com granularidade fina


(Fine-grained Multithreads - FMT)

Uma arquitetura e de granularidade fina quando a troca


entre threads ocorre em curtos espacos de tempo (Figura
5), normalmente a cada ciclo de clock. A vantagem desta
arquitetura e que, em casos de paradas (stalls) curtas e
longas, ela permite ocultar a perda em largura de banda,
uma vez que, assim que uma thread entra em stall, instruc
oes
de outra thread podem ser executadas, sendo mais f
acil
fazer um balanceamento eficiente de carga [6]. Porem, a
desvantagem desta arquitetura e que ela atrasa a execuca
o
de threads de forma individual, pois uma thread ter
a sua
execuca
o atrasada por instruco
es de outras threads, mesmo
que estivesse preparada para ser executada sem stall [4].

2.1.2

Multithreads com granularidade grossa


(Corse-grained Multithreads - CMT)

Uma arquitetura e de granularidade grossa quando a troca


para uma pr
oxima thread ocorrer pelo fato de a thread que
est
a em execuc
ao utilizar uma operac
ao de longa latencia
(Figura 6), como por exemplo, o acesso a
` mem
oria principal
devido a um miss cache. Neste tipo de arquitetura o

Programao Paralela: um complemento

Para que haja um maior aproveitamento dos n


ucleos (e
suas respectivas threads) disponveis nos processadores,
e necess
ario que as aplicac
oes que ser
ao executadas nos
mesmos sejam implementadas para utilizarem estes recursos.
A situaca
o ideal seria que existisse um mecanismo que
transformasse um programa sequencial em um programa
paralelo [1]. Um exemplo do mecanismo que poderia
ser usado e apresentado em [7].
A experiencia tem
mostrado que n
ao e possvel extrair suficiente paralelismo
automaticamente em muitos programas sequenciais [1],
devido `
a porca
o de c
odigo paraleliz
avel de cada programa.
Por este motivo, a programaca
o paralela deve se tornar
a tendencia das tecnicas de desenvolvimento de software,
pois programas paralelos podem usar mais eficientemente o
importante ressaltar que para
recurso disponibilizado [1]. E
alguns programas, os benefcios da tecnologia de m
ultiplos
n
ucleos e significativa, enquanto que para outros n
ao.
Para este trabalho foram realizados alguns experimentos
com uma aplicaca
o para a a
rea estatstica, denominada
R, para que fosse possvel observar como a aplicaca
o
utiliza a tecnologia multicore. R e um exemplo de uma
aplicaca
o que n
ao foi projetada inicialmente para tirar todo
o proveito da tecnologia multicore. Em sua vers
ao para
o Windows 7, somente um core e utilizado na simulaca
o
que dura cerca de 16 horas, mesmo que exista capacidade
para outros cores. A Figura 7 mostra que este programa,
em uma simulaca
o estatstica, n
ao usa todos os n
ucleos

durante sua execuca


o. A Figura 8 mostra todos os cores
sendo utilizados, porem 4 simulaco
es diferentes est
ao sendo
executadas simultaneamente.

Figura 9: Tecnologia de chip


http://www.top500.org/static/lists/2011/11/TOP500 201111 Poster.pdf

PROCESSADOR
IBM
Power 7[9]

Figura 7: Ferramenta R - Uma execu


c
ao

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]

Tabela 1: Exemplos de processadores


(*) AMD Escalabilidade N
ucleo verdade[15]
(n
ao suportam a tecnologia Hyperthread )[16]

Figura 8: Ferramenta R - Quatro execu


co
es
simult
aneas
Este exemplo serve para evidenciar que e possvel haver uma
melhora no desempenho de muitas aplicaco
es. Como as
pessoas est
ao interessadas em se beneficiar desta melhora,
projetistas tem se esforcado para adicionar o paralelismo
como requisito a
` programaca
o e assim tentar melhorar o
desempenho geral das aplicaco
es [8].

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.

Alguns exemplos de processadores destes fabricantes s


ao
mostrados na Tabela 1. Os processadores SPARC s
ao os
que suportam o maior n
umero total de threads, bem como
o maior n
umero de threads por n
ucleo, seguido pela IBM
Power 7, cujo processador foi tomado como objeto de estudo
deste trabalho e ser
a apresentado na seca
o 4.
Uma observaca
o final realizada nesta Tabela 1 e que os
processadores AMD n
ao suportam Hyperthread.

4.

IBM - FAMLIA DE PROCESSADORES


POWER

A IBM possui uma famlia de processadores denominados


Power [17]. A Figura 10 mostra a evoluca
o da famlia ao
longo dos anos. Em 2001, aparece o processador Power 4
o qual e Dual Core e possui multiprocessamento simetrico
implementado em um u
nico chip (CMP, do ingles Chip
Multiprocessing). Em 2004, a IBM lancou o Power 5,
que possua como caracterstica de destaque o SMT2, que
consistia em 2 linhas de execuca
o simult
aneas. Em 2007,
aparece o processador que a IBM denominou Power 6 onde

ainda eram utilizadas 2 threads. Em 2010, a IBM apresentou


o Power 7, que possua como caracterstica o SMT4 e que
consistia em 4 linhas de execuca
o simult
aneas.

2X vezes mais do que o fornecido quando um thread executa


sozinho no core [20][19].
O Power 7, alem da configuraca
o da quantidade de thread,
tambem suporta CUoD (Capacity Upgrade on Demand ), que
permite a configurac
ao da quantidade de n
ucleos que podese realmente querer utilizar [20]. Muitas aplicaco
es n
ao
utilizam todos os recursos disponveis e desativar o recurso
n
ao utilizado pode ser u
til para diminuir o consumo de
energia e a emiss
ao de calor na m
aquina.

Figura 10: Famlia de processadores Power [17]


Para melhor compreens
ao das caractersticas da evoluc
ao
dos multiprocessadores da IBM, pode-se observar a Figura
11, a qual mostra que em 1995 existia apenas um thread. Em
1997, pode-se observar que o hardware permitia a execuca
o
de 2 threads separadas. Em 2003 e 2009 j
a existia a
utilizac
ao de SMT, com 2 e 4 linhas de execuc
ao simult
aneas,
respectivamente.

O processador, no melhor dos casos, apresenta uma taxa de


cinco instruc
oes por ciclo (IPC ) com as seguintes unidades
funcionais (duas de ponto fixo, duas de load/store, quatro
de ponto flutuante de dupla precis
ao, uma de operaco
es
vetoriais, uma de registrador condicional, uma de branch
e uma de ponto flutuante decimal) organizadas em [20]:
(a) dois pipelines para execuca
o de instruco
es com acesso
a armazenamento; (b) dois pipelines para execuca
o de
instruco
es aritmeticas nos conte
udos dos registradores; (c)
um pipeline para instruco
es de desvio.
As threads em execuc
ao em um processador muitas vezes
requerem o compartilhamento de informaco
es.
Esse
compartilhamento pode ser feito no Power 7, por meio das
caches. O Power 7 suporta um novo tipo de gerenciamento
de cache, denominado lateral cast-out. Este projeto de
cache permite armazenar dados mais antigos dentro da cache
de outros cores do mesmo chip, de modo a manter os dados
na cache do chip por um pouco mais de tempo [21].
Cada core possui sua pr
opria cache de nvel 1 (L1),
sendo que esta, por sua vez, possui espaco especfico para
dados e especfico para instruco
es, conforme Figura 12.
Outra caracterstica apresentada e de que a velocidade de
frequencia do processador e o mesma velocidade de acesso a
`
cache L1. Para o acesso a
` cache de nvel 2 (L2), perdem-se
poucos ciclos para o acesso, mas para o acesso a
` cache de
nvel 3 (L3), s
ao necess
arios mais de 50 ciclos [21].

Figura 11: Evolu


c
ao de SMT em IBM[18]

4.1

IBM Power 7

O IBM Power 7 suporta 4 threads simult


aneas (4-way
SMT ), em 8 n
ucleos (SMP ) o que significa um total de
32 threads por processador. Ainda, v
arios processadores
Power 7 podem se interligar para formar um sistema mais
potente. Cada um destes n
ucleos pode ser reconfigurado
manualmente ou automaticamente para fornecer todos
seus recursos para menos threads ou para uma u
nica
thread. O Sistema Operacional conhece as caractersticas
de desempenho do SMT e pode organizar as threads para
executarem sozinhas no core [19]. O Power 7 trabalha
baseado em granularidade fina (FMT ), mencionada na
Seca
o 2.1.1.
O SMT4 prove uma melhora media no throughput de 1.5X -

Figura 12: Armazenamento no Power 7[21]

4.2

Coerncia de cache

Como os cores podem compartilhar dados entre suas caches


L2, e necess
ario ter mecanismos para garantir a coerencia
entre os dados. No Power 7 este compartilhamento e
completamente autom
atico. Todos os cores recebem uma
c
opia dos mesmos dados e estes existem tambem na mem
oria
fsica. Quando um core, dentre aqueles que possuem cache
L2 compartilhando um determinado dado, faz uma operac
ao
que modifica o valor atualmente armazenado, o hardware
automaticamente marca o dado como inv
alido nas outras
caches L2 que compartilham o dado. Quando ocorre um
cache miss , o hardware verifica se o dado e compartilhado e,

em caso afirmativo, obtem uma c


opia do mesmo a partir da
cache L2 que tem o dado v
alido, minimizando a penalidade
de miss. Caso n
ao seja compartilhado, o hardware continua
o processamento normal, procurando-o na cache L3. O
seguinte exemplo ilustra uma situaca
o em que o mecanismo
e usado para a coerencia de cache (Figura 13).

se tornar a tendencia das tecnicas de desenvolvimento de


software. Um dos motivos para esta observac
ao e que a
experiencia da investigaca
o em paralelizaca
o tem mostrado
que, para muitos programas sequenciais n
ao e possvel
extrair suficiente paralelismo automaticamente, de modo
que a melhora no desempenho seja significativa.

1. Os cores A e B obtem uma c


opia do mesmo bloco de
mem
oria em suas respectivas caches;

Pesquisas mostraram que nem todas as aplicaco


es obtem
a mesma proporca
o de melhora no desempenho quando
executadas com paralelismo, pois isto depende diretamente
da quantidade de c
odigo paraleliz
avel que a aplicaca
o possui.

2. O core A executa uma instruc


ao store neste bloco, com
a intenca
o que a mudanca permaneca nesta cache;
3. O pr
oximo acesso do core B a este dado tem a
expectativa de ver a mudanca;
4. Para assegurar que o core B acesse o novo valor de
dado e n
ao o antigo, o hardware invalida a bloco de
cache do core B que contem o dado;
5. O core A agora possui uma vers
ao exclusiva do bloco
de mem
oria;
6. O core B, ao requisitar subsequentemente o bloco de
mem
oria, requisita uma c
opia do bloco do core A. B
agora possuir
a uma c
opia exclusiva por executar uma
instruca
o que modificar
a o valor previamente copiado;
7. O core A acessa o bloco e mem
oria e obtem uma c
opia
compartilhada.

Figura 13: Coer


encia de cache[21]

5.

CONCLUSES

Pode-se observar que os processadores multicore s


ao o futuro
dos processadores por raz
oes fsicas.
Outro ponto a ser observado e que existem limites reais sobre
o aumento do desempenho por meio do paralelismo e, devido
a isso, a programaca
o paralela e um aspecto que deve vir a

O TLP permite que os recursos da m


aquina que estariam
ociosos durante a execuca
o de somente uma thread sejam
utilizados por outras threads, otimizando, a priori, o sistema.
N
ao existe uma u
nica forma de implementar TLP, pois os
fabricantes o desenvolvem baseados na arquitetura de suas
respectivas m
aquinas, de modo a utilizar os recursos das
mesmas.

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].

Você também pode gostar