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?
parallel-computing
multi-tasking
LuckyB
fonte
fonte
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 leva1 t executar. Você tem1024 núcleos, a aceleração tão ingênua é 1024 x ou leva t / 1024 , 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 des u p e r l i n o e um r .
De onde vem?1024 pesquisadores 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).
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 em
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
Portanto, o nome "superlinear" nesse contexto vem da definição de aceleração.
fonte
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
e101
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.
fonte