• Nenhum resultado encontrado

Modelo de Custo para Processadores Multi-core Homogêneos e Processadores Single-core

3.2 Processamento Paralelo em Processadores Multi-core

3.2.5 Modelo de Custo de Hill e Marty

3.2.5.1 Modelo de Custo para Processadores Multi-core Homogêneos e Processadores Single-core

O processador multi-core homogêneo típico possui todos os núcleos construídos com a mesma quantidade de recursos. Assim, para uma provisão de n BCEs haveria possivelmente diversas formas de distribuir esses recursos igualmente entre seus núcleos, como no exemplo em que o processador é formado por um total de n núcleos básicos com 1 BCE alocado para cada um deles.

16 Ou, no sentido inverso dos tempos, a relação entre seus desempenhos.

17 Nesse mesmo sentido, os resultados encontrados por Hill e Marty em suas análises para funções

similares a√r = r1/2(como r1/1,5, por exemplo) não sofreram alterações importantes (HILL; MARTY, 2008).

Capítulo 3. Arquiteturas Multi-core e Processamento Paralelo 67 De forma mais generalizada, como mostrado naFigura 19, com os mesmos n BCEs, se um processador usar r BCEs por núcleo, então terá n/r núcleos, cada um deles com desempenho perf(r).

Figura 19 – Distribuição de n BCES para processadores multi-core homogêneos

Recursos Totais: n BCEs

Recursos por Núcleo: r BCEs

Quantidade de Núcleos: n/r Desempenho por Núcleo: perf(r) Desempenho Total: (n/r)*perf(r)

r

r

r

r

Desse modo, se o recurso máximo for fixado, sua distribuição poderá ocorrer no sentido de formar mais núcleos com menos recursos para cada um deles ou, então, menos núcleos com mais recursos para cada um. Logo, se n = 8 BCEs, então uma distribuição dos recursos apenas com quantidades inteiras18 de BCEs possibilitaria a formação de: a) 8 núcleos com 1 BCE; ou b) 4 núcleos com 2 BCEs; ou c) 2 núcleos com 4 BCEs.

Em particular, se os n BCEs da provisão total forem utilizados para a construção de um único núcleo, então o processador deixa de ser um processador multi-core homogêneo e passa a se constituir em um processador single-core, com apenas 1 núcleo de n BCEs, conforme apresentado na Figura 20.

Figura 20 – Distribuição de n BCES para processadores single-core

Recursos Totais: n BCEs

Recursos por Núcleo: n BCEs

Quantidade de Núcleos: 1 Desempenho por Núcleo: perf(n) Desempenho Total: perf(n)

n

Com relação ao desempenho total a ser alcançado pelo processador, para encontrá-lo é preciso somar o desempenho de todos os seus núcleos, lembrando que o desempenho individual de cada núcleo é calculado pela função perf(.).

Assim, no caso do processador single-core que possui somente um núcleo com

n BCEs, seu desempenho total é simplesmente dado por perf(n). Para o caso generalizado

do processador multi-core homogêneo da Figura 19, são (n/r) núcleos e cada núcleo tem um desempenho perf(r), levando a um desempenho global dado por (n/r) · perf (r).

18 A quantidade de BCEs a distribuir não precisa ser necessariamente inteira. A princípio, a restrição a

Capítulo 3. Arquiteturas Multi-core e Processamento Paralelo 68 Esses cálculos de desempenho são úteis para que os speedups de Hill e Marty possam ser calculados, indicando o ganho que se pode obter com possíveis rearranjos de recursos. Com os speedups, os modelos de potência podem ser aplicados e o comportamento energético das possíveis combinações construtivas pode ser avaliado.

A base dos cálculos dos speedups são os tempos de execução das tarefas. Assim, para a execução de códigos que possuem uma fração f totalmente paralelizável e um complemento sequencial 1 − f , o tempo de execução de uma tarefa em um processador

multi-core homogêneo (Tho) construído com n BCEs, distribuídos em n/r núcleos de

r BCEs cada um, é definido como função do tempo de execução da mesma tarefa sendo

executada em um núcleo básico (Tbc), ambos com a mesma frequência de operação Fho,

como segue19: Tho(Fho, n, r) = Tbc(Fho) 1 − f perf (r) + f perf (r) · nr ! . (3.9)

Nota-se que a fração paralela f de Tbc é acelerada por todos os n/r núcleos com

desempenho perf(r) cada um. O speedup Sho alcançado pela arquitetura homogênea é dado

pela razão entre os tempos Tbc e Tho,

Sho =

Tbc(Fho)

Tho(Fho, n, r)

,

da qual se obtém o chamado Speedup Simétrico de Hill e Marty20:

Sho(f, n, r) = 1 1 − f perf (r) + f · r perf (r) · n . (3.10)

Lembrando que um processador single-core pode ser considerado matematicamente como um caso especial da arquitetura homogênea quando r = n, então o speedup alcançado por tal processador é dado por:

Ssc(n) = Tbc(Fho) Tho(Fho, n, n) = 1 1 − f perf (n) + f · n perf (n) · n = perf (n). (3.11)

19 Neste capítulo, as sequências de passos relacionando os tempos de execução de uma tarefa seguem o

mesmo esquema utilizado na definição do speedup de Amdahl (Subseção 3.2.2), acrescido da proporção relacionada ao desempenho, de modo que, idealmente, se um núcleo básico com desempenho 1 executa uma tarefa num tempo Tbc, então um núcleo com desempenho X executaria a mesma tarefa num

tempo Tbc/X.

20 Também denotado por S

Capítulo 3. Arquiteturas Multi-core e Processamento Paralelo 69 AsFiguras 21 e22a seguir21correspondem às curvas de S

ho(f, n, r) para r variando

de 1 a n, quando n vale 16 e 256, respectivamente. A fração paralela f , com valores de 0.5 a 0.999, foi utilizada para a parametrização das curvas. Nota-se que o Speedup single-core da Equação (3.11), perf(n), é representado em cada gráfico pelo pontos de convergências das curvas, à direita, nos valores r = 16 e r = 256, correspondentes a speedups de valores Ssc(16) = perf (16) =

16 = 4 e Ssc(256) = perf (256) =

256 = 16, respectivamente.

Figura 21 – Curvas do speedup simétrico Sho(f, n, r) para n = 16 BCEs e parametrização

produzida pela fração paralela f , de acordo com aEquação (3.10)

2 4 8 16 2 4 6 8 10 12 14 16 S ho r (BCEs) 0.999 0.99 0.975 0.9 0.5

Pode-se observar nos dois gráficos que o valor do speedup varia significativamente com o valor de r, seja para n = 16 ou n = 256. Além disso, a fração paralela f (parâmetro das curvas) também produz um grande impacto nos resultados. O propósito almejado de maximização do speedup ocorre em diferentes valores de r, conforme anotado na Tabela 2, e varia de acordo com o valor da fração f .

Nessa tabela, o valor de rmáx indica em qual r foi alcançado o máximo speedup,

representado por “máx Sho”. Nota-se que rmáx tanto assume valores extremos (1, 16 e 256)

quanto valores intermediários (acima de 1 e abaixo de 16 para n = 16; acima de 1 e abaixo de 256 para n = 256).

Quanto à dependência de rmáx com f , parece bem sugestiva, de acordo com as

seguintes observações:

• Quanto maior for a fração paralela, menor é o valor de rmáx;

Capítulo 3. Arquiteturas Multi-core e Processamento Paralelo 70 Figura 22 – Curvas do speedup simétrico Sho(f, n, r) para n = 256 BCEs e parametrização

produzida pela fração paralela f , de acordo com aEquação (3.10)

2 4 8 16 32 64 128 256 50 100 150 200 250 S ho r (BCEs) 0.999 0.99 0.975 0.9 0.5

Tabela 2 – Valores dos speedups máximos obtidos nasFiguras 21 e22 com os respectivos valores de r que os produziram (rmáx)

n f rmáx máx Sho 16 0,999 1,0 15,8 0,990 1,0 13,9 0,975 1,0 11,6 0,900 1,8 6,7 0,500 16,0 4,0 256 0,999 1,0 204,0 0,990 2,6 80,4 0,975 6,6 51,2 0,900 28,4 26,7 0,500 256,0 16,0

• Se a fração paralela tender a um valor muito alto, rmáxtende a ser igual a 1, sugerindo

que a melhor opção consiste em gerar uma quantidade maior de núcleos (tendendo à quantidade máxima possível), de modo que a paralelização seja beneficiada pela geração de mais elementos de processamento (núcleos), mesmo que seja com alguma perda no desempenho de cada núcleo;

• Se a fração paralela tender a um valor muito baixo, o valor de rmáx tende a ser igual

Capítulo 3. Arquiteturas Multi-core e Processamento Paralelo 71 processamento da porção serial do código. Cabe lembrar que no extremo em que

rmáx = n, o processador multi-core homogêneo comporta-se, na realidade, como se

fosse um processador single-core, uma boa opção quando a porção serial apresenta forte predomínio.

Nossa hipótese de que os valores de r e de f influenciam fortemente o consumo relativo de energia dos processadores foi discutida em (BARROS et al.,2015) e apresentada parcialmente nas simulações do Capítulo 6.

As observações desta subseção são importantes como referência para as discussões a respeito da distribuição de recursos em projetos de processadores, simbolizada pelos valores que o parâmetro r pode assumir e as consequências que isso pode produzir. Nosso interesse, que será visto em detalhes, consiste em escolher um novo rmáx que seja capaz de

produzir uma economia máxima de energia, foco deste trabalho.

3.2.5.2 Modelo de Custo para Processadores Multi-core Heterogêneos

O processador multi-core heterogêneo típico referenciado neste trabalho tem um núcleo mais poderoso que os outros. Neste tópico está sendo assumido que os núcleos mais simples são todos replicações do núcleo básico e, portanto, são construídos com 1 BCE. Nesse caso, para uma provisão de n BCEs, com r BCEs disponibilizados para o núcleo maior, haverá um total de n − r + 1 núcleos, sendo n − r núcleos pequenos de 1 BCE e 1 núcleo grande de r BCEs, como sugerido pelaFigura 23.

Figura 23 – Distribuição de n BCES para processadores multi-core heterogêneos com núcleos menores do tipo básico

Recursos Totais: n BCEs

Recursos para o Núcleo Maior: r BCEs

Recursos para cada Núcleo Menor: 1 BCE

Recursos para o conjunto de Núcleos Menores: n-r BCEs

Quantidade de Núcleos: 1 grande n-r pequenos

Desempenho para o Núcleo Maior: perf(r) Desempenho para cada Núcleo Menor: 1 Desempenho do conjunto de Núcleos Menores: n-r Desempenho Total: perf(r) + n-r

1

1 1

r

A porção serial, cuja fração corresponde a 1 − f , é acelerada somente pelo núcleo avançado, com desempenho perf(r). Entretanto, a porção paralela, com fração f , é acelerada tanto por todos os n − r núcleos básicos com desempenho 1 quanto pelo núcleo avançado com desempenho perf(r).

Capítulo 3. Arquiteturas Multi-core e Processamento Paralelo 72 Assim, o tempo de execução de uma tarefa nesta arquitetura (The) é definido como

uma função do tempo de execução da mesma tarefa executando em um núcleo básico (Tbc), ambas operando na mesma frequência de trabalho Fhe, como segue:

The(Fhe, n, r) = Tbc(Fhe) 1 − f perf (r)+ f perf (r) + n − r ! . (3.12)

Dentro desse contexto, portanto, o speedup do processador multi-core heterogêneo é dado pela razão entre os tempos Tbc e The,

She =

Tbc(Fhe)

The(Fhe, n, r)

,

da qual se obtém o chamado Speedup Assimétrico de Hill e Marty22:

She(f, n, r) = 1 1 − f perf (r)+ f perf (r) + n − r . (3.13)

Observe que na Equação (3.13), como aconteceu com a (3.10), existe um caso particular que matematicamente coincide com o estado do processador single-core. Isso ocorre quando r = n, transformando She em Ssingle=perf(n).

As Figuras 24e 25a seguir23 correspondem às curvas de S

he para r variando de 1

a n, quando n vale 16 e 256, respectivamente. A exemplo da subseção anterior, a fração paralela f também foi utilizada para a parametrização das curvas.

A análise desses gráficos da aplicação do modelo de custo para processadores

multi-core heterogêneos é muito parecida com a que foi realizada na subseção anterior para

processadores homogêneos, resumindo-se em:

a) O valor do speedup varia significativamente com o valor de r, seja para n = 16 ou n = 256. b) O valor da fração paralela f (parâmetro das curvas) também produz um grande impacto

nos resultados.

c) A maximização do speedup ocorre em diferentes valores de r, denotados rmáx, e varia de acordo com o valor da fração f .

d) O rmáx assume um valor extremo uma única vez: 1 para n = 16. Todos os outros valores de rmáx são valores intermediários, embora sejam mantidas as mesmas tendências do caso homogêneo, porém com menos intensidade:

22 Também denotado por S

h(asym)ou Sasymmetric ou ainda, pelos próprios autores, de Speedupasymmetric. 23 Também são equivalentes às curvas originais do artigo de Hill e Marty.

Capítulo 3. Arquiteturas Multi-core e Processamento Paralelo 73 Figura 24 – Curvas do speedup assimétrico She(f, n, r) para n = 16 BCEs e parametrização

produzida pela fração paralela f , de acordo com a equação (3.13)

1 2 4 8 16 0 2 4 6 8 10 12 14 16 S he r (BCEs) 0.999 0.99 0.975 0.9 0.5

Figura 25 – Curvas do speedup assimétrico She(f, n, r) para n = 256 BCEs e parametrização

produzida pela fração paralela f , de acordo com aEquação (3.13)

1 2 4 8 16 32 64 128 256 0 50 100 150 200 250 S he r (BCEs) 0.999 0.99 0.975 0.9 0.5

d.1) Quanto maior for a fração paralela f , menor é o valor de rmáx;

Capítulo 3. Arquiteturas Multi-core e Processamento Paralelo 74 d.3) Se f tender a um valor muito baixo, rmáx tende a ser igual a n, mas menos do que antes.

A principal diferença entre este caso heterogêneo e o anterior homogêneo diz respeito à maior flexibilidade que a estrutura heterogênea oferece, de modo que, em termos de quantidade de núcleos e seus desempenhos, suas combinações intermediárias existem em maior quantidade e, portanto, é mais provável do que antes que se encontre um rmáx

nesta região. Esse comportamento também foi verificado na busca da redução da energia consumida, a ser apresentado numericamente no Capítulo 6.

3.3

Resumo do Capítulo

Neste capítulo foram expostos alguns conceitos úteis à discussão da pesquisa relacionada a este trabalho, tais como a arquitetura dos processadores multi-core, as frações paralela e serial de um código e o speedup. Além disso, foram apontados os fatores que mais diretamente afetam o resultado da paralelização.

Em seguida, a classificação dos processadores multi-core quanto à homogenei- dade/heterogeneidade dos seus núcleos foi apresentada com detalhes, indicando como se pretende utilizá-los com vista à redução do consumo de energia.

Uma classificação geral do speedup também foi apresentada, englobando-se os tipos linear, sublinear e superlinear. Ainda com relação ao speedup, a Lei de Amdahl foi explicada com detalhes, inclusive seus efeitos e suas limitações, tais como as ponderações de Gustafson a respeito das considerações sobre o tamanho do problema e a importante extensão realizada por Hill e Marty para a Era Multi-core.

Por último, o modelo de custo de Hill e Marty foi apresentado pormenorizadamente, mostrando-se como foi utilizado pelos autores para examinar a influência da distribuição de recursos no desempenho global do processador, além de se mencionar a forma como tal modelo foi utilizado neste trabalho para discutir a influência dessa distribuição no consumo de energia dos processadores.

75

4 Modelos de Potência Propostos

Neste capítulo são apresentados dois conjuntos de modelos de potência para processadores digitais, desenvolvidos e utilizados neste trabalho para avaliar o consumo relativo de energia entre diferentes tipos de processadores.

Construídos com base nas considerações presentes no Capítulo 2, os conjuntos se distinguem pela presença ou ausência da potência Pleak: enquanto o primeiro (M1) é

formado apenas pela potência dinâmica (Pdin), o segunto (M2) é composto pela soma de

Pdin com Pleak.

Para cada um dos modelos foi elaborado um total de 4 variantes, desenvolvidas de acordo com o tratamento dado à Tensão threshold Vth e ao valor do expoente h na

Equação (2.7), Fmax∝ (V − Vth)h/V , nos termos da Tabela 3.

Tabela 3 – Caracterização das variantes dos Modelos M1 e M2

Variante Valor de Vth Expoente h

Básica Fixo e aproximado para zero 2 Intermediária Fixo e aproximado para zero livre

Superior Fixo e não nulo 2

Avançada Fixo e não nulo livre

Os valores de h, Vth, F e V estão relacionados pela expressão (2.7), que estabelece

um limite para a frequência com base em considerações físicas, nos termos que se seguem. Se o valor de V aumentasse (ou diminuisse), então o valor de Fmax também variaria no

mesmo sentido, isto é, aumentaria (ou diminuiria).

Dessa forma, a utilização do F com o valor de Fmax seria justificada pelo fato de a

economia de energia nos processadores passar pelas melhores combinações de (Fmax,V ),

transformando-se a relação (2.7) em

F = k

(V − Vth)h

V , (4.1)

em que k1 é a constante de proporcionalidade da relação.

Com efeito, isso conduz matematicamente a uma relação direta em que F = k(V ), sendo k(.) a função que associa F e V e, no sentido inverso, V = k−1(F ). Mas como nosso maior interesse é o de estabelecer uma relação do tipo P (F ), então, para tornar o texto mais claro, foi realizada uma substituição de k(.) e k−1(.) por g−1(.) e g(.), respectivamente, de

Capítulo 4. Modelos de Potência Propostos 76 modo que essas mesmas relações possam ser registradas genericamente como F = g−1(V ) e, principalmente,

V = g(F ), (4.2)

que corresponde à forma geral da relação entre V e F , e assume um valor distinto para cada uma das variantes.