Multicore e energia
Potência, energia, temperatura, Amdahl e desequilíbrio de trabalho.
Quatro núcleos recebem 10, 10, 10 e 30 unidades de trabalho. Mesmo que três acabem cedo, a tarefa só termina quando o quarto concluir as suas 30 unidades. Acrescentar núcleos exige distribuir trabalho e conservar capacidade nos recursos partilhados.
Um CPU multicore reúne vários núcleos no mesmo circuito integrado; um multiprocessador pode reunir vários CPUs e um cluster liga computadores separados. O tempo, a potência e a energia precisam de contas distintas.
Potência, energia e temperatura
Potência mede energia por segundo, em watts. Energia , em joules, se P for constante. Um CPU de 40 W durante 3 s consome 120 J; outro de 60 W durante 1,5 s consome 90 J. Ou seja, menor potência não garante menor energia.
Densidade de potência é potência/área. Para 20 W em 50 mm², são 0,4 W/mm². Um modelo térmico estacionário usa:
Com ambiente 25°C, resistência térmica 0,8°C/W e potência 60 W, a junção chega a 73 °C. Para limite 85°C, a potência máxima do modelo é W. Resistência térmica depende do caminho de dissipação e da montagem; não é a condutividade do material. Densidades acima de cerca de 1,5 W/mm² atingem o limite do arrefecimento a ar, o que trava a frequência antes de travar a contagem de transístores.
Potência dinâmica
O modelo de comutação é , com atividade , capacitância C, tensão V e frequência f. Há também potência estática; esta expressão não a inclui.
Com V fixa, P cresce proporcionalmente a f. Sob a aproximação adicional , cresce como :
Aumentar f em 20% com V fixa multiplica P por 1,2. Se V também aumenta 20%, o fator é . Não apliques a lei cúbica quando o enunciado fornece outra relação entre tensão e frequência.
Dois núcleos a metade da frequência, cada um com metade da tensão, dissipam juntos da potência dinâmica original. Com duas vezes a área, a densidade torna-se 1/8. Só mantêm o throughput original se a carga se dividir perfeitamente e os recursos partilhados suportarem essa execução.
Rapidez com vários núcleos
Se a fração serial do tempo original é , com n núcleos ideais:
Com s=0,10 e n=8, , não 8. A eficiência é . Comunicação, sincronização e desequilíbrio aumentam o tempo além deste modelo ideal.
Se os núcleos também mudam de frequência, compara a rapidez de cada um. Para uma parte perfeitamente paralela, com CPI e trabalho iguais, o débito é proporcional a : dez núcleos a 2,4 GHz contra oito a 2,5 GHz dão razão de tempos . O segundo conjunto demora 20% mais.
A energia conta potência vezes tempo. Com potência por núcleo proporcional a , a configuração alternativa tem unidades de potência, face às 10 originais: menos potência instantânea, mas durante mais tempo. A energia relativa é , maior 8,5% neste modelo.
O núcleo mais lento determina o fim
No exemplo inicial, transferir 5 unidades do núcleo carregado para um dos que tem 10 deixa cargas 10, 10, 15 e 25. O total continua a ser 60 e a média continua a ser 15, mas o tempo baixa de 30 para 25 porque diminui o maior quinhão.
Se cada núcleo recebe fração do trabalho e a rapidez é igual, o tempo paralelo é proporcional a , não à média. A soma das frações continua 1, mas a última tarefa só acaba no núcleo mais carregado.
Com 10 núcleos, um recebe 9%; os outros dividem 91%, ou 10,111% cada. A razão face à divisão ideal 10% é 1,01111: aumento de tempo 1,111%. Se o primeiro recebe 20%, a razão é 2.
Em geral:
Núcleo 1: 9%. Cada um dos outros nove: 10,111%. Tempo relativo: 1,0111; aumento: 1,11%.
A linha tracejada marca os 10% da divisão equilibrada. A barra mais longa determina o fim da tarefa.
Quando o primeiro núcleo tem menos de 10%, os outros nove determinam o fim; acima de 10%, passa a ser ele. O mesmo desvio absoluto não tem o mesmo efeito: retirar trabalho de um distribui-o por nove, acrescentar trabalho concentra-o num só.
Para obter aumento percentual, calcula 100×(razão −1). Multiplicar só a razão por 100 dá percentagem do tempo original.
Escalabilidade e recursos partilhados
Strong scaling fixa o tamanho do problema e acrescenta núcleos. Weak scaling aumenta o problema com o número de núcleos. Não compares os tempos como se medisse a mesma tarefa.
Memória, barramento e capacidade de cache podem limitar o conjunto. Núcleos idênticos de um multiprocessador simétrico não implicam, por si só, acesso uniforme à memória: UMA e NUMA descrevem o custo de acesso. O algoritmo deve considerar onde estão os dados e como comunica.
Exercícios
Separar tensão e frequência
Capacitância/atividade fixas. Frequência e tensão aumentam 20%. Qual é o fator da potência dinâmica?
Pista
Solução
Fator 1,728, ou aumento 72,8%. Com tensão fixa, o fator seria apenas 1,2.
Erros frequentes
Elevar sempre frequência ao cubo sem condição sobre tensão.
Determinar potência admissível
Temperatura de junção máxima 85°C, ambiente 25°C, RθJA=0,8°C/W. Qual potência máxima no modelo estacionário?
Pista
Solução
75 W, porque o modelo considera resistência térmica fixa e regime estacionário.
Erros frequentes
Multiplicar pela resistência em vez de dividir ou confundir W com J.
Usar o maior quinhão
Dez núcleos iguais. Um recebe 9% do trabalho; os outros dividem 91%. Quanto aumenta o tempo face à divisão 10% por núcleo?
Pista
Solução
Razão 1,011111; aumento 100×(razão −1)=1,111111%. O núcleo de 9% termina antes.
Erros frequentes
Responder 101,111% como aumento ou usar a média 10%.
Menor potência pode gastar mais energia
Carga perfeitamente paralela, mesmo CPI. Base 10 núcleos 2,4 GHz; alternativa 8 núcleos 2,5 GHz; potência por núcleo proporcional a f³. Calcula energia alternativa/base.
Pista
Solução
Energia relativa≈0,9042245×1,2=1,0850694. A energia sobe 8,51%, apesar da potência menor.
Erros frequentes
Equilibrar trabalho conservando a tarefa
Quatro núcleos executam uma unidade por ms e recebem 10,10,10,30 unidades independentes. Move cinco unidades do quarto para o terceiro. Calcula o novo tempo e a média de cargas. Sem custo de redistribuição e permitindo dividir livremente o trabalho, qual é o menor tempo possível e que distribuição o atinge?
Solução
As cargas passam a 10,10,15,25, logo a tarefa termina aos 25 ms. A soma mantém-se em 60 e a média em 15. O máximo não pode ser menor do que a média; distribuir 15 por núcleo atinge esse limite, dando 15 ms. A média nunca diminuiu, ao contrário do máximo.
Confere a tua resposta:
- Conservei 60 unidades e média 15.
- Obtive tempo 25 após mover cinco unidades.
- Justifiquei o mínimo ideal 15 com quatro parcelas iguais.