Contexte
La mémoire externe, ou modèle DAM, définit le coût d'un algorithme par le nombre d'E / S qu'il exécute (essentiellement, le nombre d'échecs de cache). Ces temps d'exécution sont généralement donnés en termes de , la taille de la mémoire et , le nombre de mots qui peuvent être transférés en mémoire en même temps. Parfois, et sont utilisés pour et respectivement. B L Z B M
Par exemple, le tri nécessite un coût de et la multiplication de matrice naïve nécessite . Θ ( n 3 / B √
Ce modèle est utilisé pour analyser « les algorithmes de cache-inconscients », qui n'ont pas connaissance de ou . Généralement, l'objectif est que l'algorithme sans cache fonctionne de manière optimale dans le modèle de mémoire externe; ce n'est pas toujours possible, comme dans le problème de permutation par exemple (montré dans Brodal, Faderberg 2003 ). Voir cet article écrit par Erik Demaine pour une explication supplémentaire des algorithmes sans cache, y compris des discussions sur le tri et la multiplication de matrice.M
Nous pouvons voir que le changement de provoque un accélération logarithmique pour le tri et un accélération polynomiale pour la multiplication matricielle. (Ce résultat est originaire de Hong, Kung 1981 et est antérieur à la fois à l'oubli du cache et à la formalisation du modèle de mémoire externe).
Ma question est la suivante:
Y a-t-il un cas où l'accélération est exponentielle en ? Le temps d'exécution serait quelque chose comme . Je suis particulièrement intéressé par un algorithme ou une structure de données sans cache qui correspond à cette description, mais je serais heureux avec un algorithme / une structure de données sensible au cache ou même une borne inférieure la plus connue.f ( N , B ) / 2 O ( M )
On suppose généralement dans la plupart des modèles que la taille du mot si est la taille d'entrée et clairement . Ensuite , un gain de vitesse de donne un polynôme en speedup . Cela me fait croire que si le problème que je recherche existe, il n'est pas polynomial. (Sinon, nous pouvons changer la taille du cache par une constante pour obtenir un nombre constant d'E / S, ce qui semble peu probable).N M > w 2 M N