{
  "tag": "62BBM5",
  "kind": "model",
  "slug": "external-memory-model",
  "name": "External memory model",
  "aliases": [
    "Aggarwal-Vitter model",
    "I/O model",
    "disk access model"
  ],
  "area": "foundations/models-of-computation",
  "level": "core",
  "summary": "Two-level memory model counting block transfers between a cache of size M and disk with block size B.",
  "prereqs": [
    "random-access-machine",
    "memory-hierarchy",
    "asymptotic-notation"
  ],
  "sources": [
    {
      "paper": "Alok Aggarwal and Jeffrey Scott Vitter, The input/output complexity of sorting and related problems, Communications of the ACM 31(9) (1988), 1116 to 1127"
    },
    {
      "book": "isbn:9781601981066",
      "title": "Jeffrey Scott Vitter, Algorithms and Data Structures for External Memory",
      "locator": "Chapters 1 to 3"
    },
    {
      "paper": "Jeffrey Scott Vitter and Elizabeth A. M. Shriver, Algorithms for parallel memory I: two-level memories, Algorithmica 12 (1994)"
    },
    {
      "paper": "Daniel D. Sleator and Robert E. Tarjan, Amortized efficiency of list update and paging rules, Communications of the ACM 28(2) (1985)"
    },
    {
      "paper": "Lars Arge, The buffer tree: a new technique for optimal I/O-algorithms, Workshop on Algorithms and Data Structures (1995)"
    },
    {
      "paper": "Jia-Wei Hong and H. T. Kung, I/O complexity: the red-blue pebble game, Proceedings of the 13th ACM Symposium on Theory of Computing (1981)"
    },
    {
      "paper": "Robert W. Floyd, Permuting information in idealized two-level storage, in Complexity of Computer Computations, Plenum Press (1972)"
    },
    {
      "book": "isbn:9780262046305",
      "title": "Cormen, Leiserson, Rivest and Stein, Introduction to Algorithms, fourth edition",
      "locator": "Chapter 18 (B-trees)"
    }
  ],
  "see_also": [
    "cache-oblivious-model",
    "b-tree",
    "external-merge-sort",
    "external-sorting-io-lower-bound",
    "external-permuting",
    "red-blue-pebble-game",
    "external-searching"
  ],
  "url": "https://algorithm.tamnd.com/external-memory-model/",
  "path": "nodes/foundations/models-of-computation/external-memory-model",
  "status": {
    "slug": "external-memory-model",
    "h": {
      "level": 0,
      "max": 3,
      "label": "H0",
      "name": "no proof",
      "next": [
        "add a proof in proofs/ (06.5)"
      ]
    },
    "l": {
      "level": 0,
      "max": 4,
      "label": "L0",
      "name": "no Lean part",
      "next": [
        "name a Lean module in the lean field (07)"
      ]
    },
    "i": {},
    "v": {
      "level": 0,
      "max": 3,
      "label": "V0",
      "name": "none",
      "next": [
        "add viz/scene.ts or a figure (10)"
      ]
    },
    "w": {
      "level": 4,
      "max": 5,
      "label": "W4",
      "name": "complete",
      "next": [
        "a review of the text: no review record reviews/62BBM5/text.yaml"
      ]
    }
  },
  "scene": false
}
