Как управлять огромными деревьями на стандартном ПК? - PullRequest
5 голосов
/ 04 августа 2011
  1. Учитывая корневой узел, который должен начать создавать дерево с примерно 10 10 (ок. 2 34 ) узлами, целесообразно использовать отображение в памятифайл, который когда-то будет содержать все дерево?
  2. Какие могут быть проблемы, связанные с операционной системой (файловый ввод / вывод, поддержка огромных файлов)?
  3. Есть ли у C, gcc и glibc некоторые неявные ограничения (указатели)?
  4. Есть ли у Linux какие-либо проблемы / ограничения с большими файлами?

1 Ответ

2 голосов
/ 04 августа 2011

Как упомянул yi_H в своем комментарии, вам понадобится 64-битная операционная система и файловая система, поддерживающая большие файлы. Предполагая, что каждый узел содержит порядка 2 ^ 5 = 32 байта данных, 2 ^ 40 узлов приведут к 2 ^ 45 байтов = 32 терабайта. Теперь, предполагая, что вы не работаете на современном военном истребителе, вам нужно отобразить большую часть этих данных на жесткий диск.

Как только данные будут на вашем диске и файловая система будет правильно настроена, я не думаю, что возникнут проблемы с какими-либо системными ограничениями. Однако скорость чтения / записи определенно будет проблемой. Учитывая, что на жестком диске средняя скорость ввода-вывода составляет 100 МБ / с, для обхода всего дерева потребуется около 4-5 дней.

Было бы лучше разделить данные на несколько компьютеров и распараллелить ваши операции.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...