A diferença entre a escala forte e fraca está na forma como o tamanho do problema é ajustado à medida que o número de processadores aumenta e como isso afeta a eficiência geral da computação paralela.
Escala forte: *
Objetivo: Reduza o tempo para a solução para um tamanho * fixo * do problema, aumentando o número de processadores. O problema permanece o mesmo.
* cenário
: Você tem um problema específico que deseja resolver o mais rápido possível. Você joga mais recursos (processadores), na esperança de reduzir drasticamente o tempo de execução.
*
Eficiência: A forte eficiência de escala é medida por quanto o tempo de execução diminui à medida que você aumenta o número de processadores. Idealmente, duplicar os processadores pela metade do tempo de execução. No entanto, isso raramente acontece perfeitamente.
* Fórmula
: `Eficiência =(aceleração) / (número de processadores)`
* `Speedup =(tempo de execução em 1 processador) / (tempo de execução em n processadores)`
* Uma eficiência de 1 (ou 100%) é uma escala forte perfeita.
*
Limitações: A escala forte tem limites inerentes. À medida que você adiciona mais processadores, o trabalho que cada processador precisa fazer se torna cada vez menor. Eventualmente, a sobrecarga de comunicação, sincronização e tempo ocioso (processadores que aguardam outras pessoas) dominam os benefícios da paralelização. Você chega a um ponto em que a adição de mais processadores na verdade * aumenta * o tempo de execução. Isso se deve à lei da AMDAHL, que afirma que a aceleração de um programa é limitada pela proporção do programa que é inerentemente sequencial (não pode ser paralelizado).
*
Impacto no desempenho: *
positivo (inicialmente): Tempo de execução reduzido para o mesmo tamanho de problema.
*
negativo (eventualmente): Retornos decrescentes como a sobrecarga da comunicação domina. Pode até aumentar o tempo de execução além de um certo número de processadores. Os gargalos em recursos compartilhados (por exemplo, barramento de memória) se tornam mais proeminentes.
Escala fraca: *
Objetivo: Mantenha um tempo de execução * constante * aumentando o tamanho do problema * e * o número de processadores proporcionalmente. Cada processador idealmente lida com a mesma quantidade de trabalho.
* cenário
: Você tem um problema que deseja resolver em um nível de desempenho específico e deseja resolver versões cada vez mais grandes desse problema, mantendo esse desempenho. Você adiciona processadores e aumenta o tamanho do problema de acordo.
*
Eficiência: A eficiência de escala fraca é medida pelo quão bem o tempo de execução permanece constante à medida que você aumenta o número de processadores e o tamanho do problema. Se o tempo de execução permanecer constante, você terá uma escala fraca perfeita.
* Fórmula
: `Eficiência =(tempo de execução para n processadores e problema em escala) / (tempo de execução para 1 processador e problema de base)`
* Uma eficiência de 1 (ou 100%) indica uma escala fraca perfeita (tempo de execução constante). Mais praticamente, você mede o quão perto 1 a eficiência permanece ao escalar o problema.
*
Vantagens: A escala fraca geralmente é mais fácil de alcançar do que a escala forte, especialmente para problemas muito grandes. Como a quantidade de trabalho por processador permanece relativamente constante, a sobrecarga de comunicação e sincronização não se torna tão dominante. É particularmente útil para problemas em que você deseja explorar um espaço maior de parâmetros ou simular um sistema maior dentro de um período fixo de tempo.
*
Limitações: A escala fraca só faz sentido se o problema puder ser escalado adequadamente. Alguns problemas têm limitações inerentes ao seu tamanho ou complexidade.
*
Impacto no desempenho: *
positivo: Permite resolver problemas muito maiores em uma quantidade razoável de tempo sem um aumento significativo no tempo de execução. Demonstra a escalabilidade do algoritmo e sistema paralelo.
*
negativo: Não reduz o tempo para resolver um * problema fixo * específico. A eficiência pode se degradar à medida que o problema e a contagem de processadores aumentam devido aos custos de comunicação que acabam se tornando significativos.
em resumo: | Recurso | Escala forte | Escala fraca |
| ---------------- | -------------------------------------------------- | -------------------------------------------------- |
| Tamanho do problema | Fixado | Aumenta proporcionalmente com o número de processadores |
| Objetivo | Reduza o tempo de execução para um problema fixo | Mantenha o tempo de execução constante para problemas em escala |
| Foco | Aceleração para uma determinada tarefa | Escalabilidade do sistema e algoritmo |
| Pergunta -chave | Quão mais rápido posso resolver esse problema? | Qual é o tamanho do problema, posso resolver em um determinado momento? |
| Eficiência | Diminui à medida que a sobrecarga da comunicação aumenta | Permanece relativamente constante se a escala for eficiente |
| Lei de Amdahl | Restrição significativa | Menos restrição |
Exemplo: *
Escala forte: Simulando o clima para uma cidade específica pelas próximas 24 horas. Você deseja obter a previsão mais precisa o mais rápido possível. Você aumenta o número de processadores para acelerar o cálculo.
*
Escala fraca: Simulando o clima para uma região. Você deseja simular o clima em uma área geográfica cada vez maior, mantendo uma resolução específica e tempo de simulação. Você adiciona mais processadores à medida que o tamanho da região aumenta.
Na prática, a escala forte e fraca são considerações importantes ao projetar e avaliar algoritmos e sistemas paralelos. A escolha de que se concentrar depende do problema específico e das metas de desempenho desejadas.