fundo
A memória externa, ou modelo DAM, define o custo de um algoritmo pelo número de E / Ss realizadas (essencialmente, o número de falhas de cache). Esses tempos de execução geralmente são dados em termos de , tamanho da memória e , número de palavras que podem ser transferidas para a memória ao mesmo tempo. Às vezes e são usados para e respectivamente.
Por exemplo, a classificação requer um custo de e a multiplicação de matriz ingênua requer .
Este modelo é usado para analisar "algoritmos de cache-alheio", que não têm conhecimento do ou . Geralmente, o objetivo é que o algoritmo alheio ao cache tenha um desempenho ideal no modelo de memória externa; isso nem sempre é possível, como no problema de Permutação, por exemplo (mostrado em Brodal, Faderberg 2003 ). Veja este artigo de Erik Demaine para obter uma explicação adicional dos algoritmos que ignoram o cache, incluindo discussões sobre classificação e multiplicação de matrizes.
Podemos ver que a mudança de causa uma aceleração logarítmica para classificação e uma aceleração polinomial para multiplicação de matrizes. (Esse resultado é originalmente de Hong, Kung 1981 e, na verdade, antecede o esquecimento do cache e a formalização do modelo de memória externa).
Minha pergunta é esta:
Existe algum caso em que a aceleração é exponencial em ? O tempo de execução seria algo como f ( N , B ) / 2 O ( M ) . Estou particularmente interessado em um algoritmo ou estrutura de dados inconsciente de cache que se encaixa nessa descrição, mas ficaria satisfeito com um algoritmo / estrutura de dados com reconhecimento de cache ou mesmo com um limite inferior mais conhecido.
Geralmente, é assumido na maioria dos modelos que o tamanho da palavra se N for o tamanho da entrada e claramente M > w . Então, um aumento de velocidade de 2 M dá um aumento de velocidade polinomial em N . Isso me faz acreditar que, se o problema que estou procurando existe, não é polinomial. (Caso contrário, podemos alterar o tamanho do cache por uma constante para obter um número constante de E / Ss, o que parece improvável).