Na computação paralela, eu sei que a equação de aceleração é
Mas o que se entende por velocidade superlinear? É algo teórico? Você poderia explicar isso com equações?
Na computação paralela, eu sei que a equação de aceleração é
Mas o que se entende por velocidade superlinear? É algo teórico? Você poderia explicar isso com equações?
Respostas:
Com equação: não realmente.
A aceleração superlinear vem do excesso de aceleração calculada de forma ingênua, mesmo após levar em conta o processo de comunicação (que está desaparecendo, mas ainda é o gargalo).
Por exemplo, você tem um algoritmo serial que leva executar. Você tem núcleos, a aceleração tão ingênua é ou leva , mas deve ser calculado como em sua equação, levando em consideração a transferência de memória, pequenas modificações no algoritmo, tempo de paralelização.
Portanto, a aceleração deve ser menor que 1024x, mas às vezes acontece que a aceleração é maior, então chamamos de .
De onde vem?
De vários lugares: uso de cache (o que se encaixa em registros, memória principal ou armazenamento em massa, onde muitas vezes mais unidades de processamento fornecem mais registros por subtarefa), padrões de acerto de memória, algoritmo simplesmente melhor (ou um pouco diferente), falhas na série código.
Por exemplo, um processo aleatório que procura espaço para um resultado agora está dividido empesquisadores que cobrem mais espaço ao mesmo tempo, portanto é mais provável encontrar a solução mais rapidamente. Existem subprodutos (se você trocar elementos como no tipo de bolha e alternar para a GPU, todos os pares serão trocados de uma só vez, enquanto a série é apenas o ponto).
No sistema distribuído, a comunicação é ainda mais cara, portanto, os programas são alterados para tornar o uso da memória local (o que também altera o acesso à memória, divide o problema de maneira diferente do que no aplicativo seqüencial).
E o mais importante, o programa seqüencial não é idealmente o mesmo que a versão paralela - tecnologia diferente, ambiente, algoritmo, etc., por isso é difícil compará-los.
Trecho de "Introdução à computação paralela" Segunda edição de Ananth Grama, 2003
Teoricamente, a aceleração nunca pode exceder o número de elementos de processamento .
Se o melhor algoritmo seqüencial demorar unidades de tempo para resolver um determinado problema em um único elemento de processamento e, em seguida, uma aceleração de pode ser obtido em elementos de processamento se nenhum deles passar mais do que tempo .
Uma aceleração maior que só é possível se cada elemento de processamento gastar menos que o tempo resolvendo o problema.
Nesse caso, um único elemento de processamento pode emular o elementos de processamento e resolver o problema em menos de unidades de tempo.
Isso é uma contradição porque a aceleração, por definição, é calculada com relação ao melhor algoritmo seqüencial .
Portanto, o nome "superlinear" nesse contexto vem da definição de aceleração.
Minha explicação para leigos pode ajudar com a imaginação de como funciona.
Certos tipos de algoritmos levam à aceleração superlinear se a arquitetura de interconexão HPC possibilitar a referência entre estados internos dos núcleos. O motivo é a informação (e termodinâmica) teórica e pode ser simplesmente explicada com a seguinte descrição.
Tome dois sistemas contendo 3 bits de estados possíveis em cada um:
011
e 101
O número máximo de estados possíveis desse sistema é 2 * 2 ^ 3 = 16.
Agora vamos combinar esses dois conjuntos em um composto, simplesmente com 6 bits de espaço de estado possível:
011101
O número máximo de estados possíveis desse sistema é 2 ^ 6 = 64. O sistema combinado possui um aumento de entropia disponível de 64/16 = 4 vezes.
A composição de conjuntos com maior variedade de estados internos leva a "acelerações" exponencialmente maiores, porque os núcleos podem hipoteticamente ter mais referências mútuas.
Na química, a energia é liberada quando os sistemas se combinam (pense na fusão nuclear). Essa energia vem exatamente da possibilidade de abordar mais estados para sistemas combinados.
As fontes que eu li descreviam algoritmos paralelos em núcleos isolados, onde não havia capacidade de ter referências mútuas entre bits de estado de núcleos diferentes. Do ponto de vista do aumento da entropia dos estados combinados, posso imaginar como a aceleração superlinear é possível.
Para detalhes teóricos da informação, consulte "O paradoxo da mistura" no artigo da Wikipedia https://en.wikipedia.org/wiki/Gibbs_paradox sobre a natureza termodinâmica exata desse comportamento.
Isso tem algumas implicações filosóficas para a comunicação humano-humano e a importância das conversas ao vivo em vez de digitar texto e ler livros.