Memory bound
En informatique, memory bound est l'état d'un ordinateur lorsque le temps nécessaire pour exécuter un programme est principalement déterminé par la vitesse ou la quantité de mémoire RAM disponible pour stocker les données.
Une fonction memory bound est une fonction qui place un ordinateur dans un Ă©tat memory bound.
L'utilisation des fonctions memory bound a été considérée pour le contrôle du courrier indésirable, qui est devenu un problème important sur Internet.
Utilisation de fonctions memory bound pour combattre le courrier indésirable
En 1992, deux chercheurs d'IBM ont publié un article suggérant d'utiliser des fonctions CPU bound pour dissuader les abuseurs d'envoyer du courrier indésirable[1].
Le problème majeur dans l'utilisation de cette technique est que les processeurs rapides calculent beaucoup plus vite que les processeurs lents. En conséquence, un spammeur doté d'un système de pointe ne sera guère affecté par une telle dissuasion, alors qu'un utilisateur légitime ayant un système médiocre en souffrira.
Par conséquent, les informaticiens ont cherché des fonctions que la plupart des ordinateurs évaluent à peu près à la même vitesse, de sorte que les systèmes haut de gamme puissent évaluer ces fonctions de 2 à 10 fois plus rapidement que les systèmes bas de gamme, mais pas de 50 à 100 fois plus rapidement comme dans le cas des algorithmes basés sur des fonctions CPU bound. Des ratios de 2 à 10 fois plus vite sont assez égalitaires pour permettre une implantation acceptable étant donné que les fonctions sont efficaces pour décourager les abus tout en n'introduisant pas de délais prohibitifs pour les interactions légitimes, quelle que soit la puissance des ordinateurs utilisés.
L'utilisation de fonctions memory bound permet une telle approche égalitaire. Comme indiqué précédemment, une fonction memory bound est une fonction dont le temps de calcul est dominé par le temps passé à accéder à la mémoire. Une fonction memory bound accède de manière imprévisible à des emplacements dans une grande région de mémoire, de sorte que l'utilisation de caches n'est pas efficace pour accélérer le processus. Au cours des dernières années, la vitesse des processeurs a considérablement augmenté, mais il y a eu relativement peu de progrès dans l'augmentation de la vitesse des accès à la mémoire. Étant donné que les ratios des latences mémoires des machines construites au cours des dernières années ne sont généralement pas supérieurs à deux, et presque toujours inférieurs à quatre, on peut supposer qu'une fonction memory bound sera égalitaire pour la plupart des systèmes dans un avenir prévisible.
Références
- Pour une description de cette proposition, voir la section Utilisation de fonctions CPU bound pour combattre le courrier indésirable de l'article CPU bound.