Я аспирант по астрофизике.Я запускаю большие симуляции, используя коды, в основном разработанные другими в течение десяти лет или около того.Для примеров этих кодов вы можете проверить гаджет http://www.mpa -garching.mpg.de / gadget / и enzo http://code.google.com/p/enzo/. Это, безусловно, два наиболее зрелых кода (они используют разные методы).
Результаты этих симуляций огромные .В зависимости от вашего кода ваши данные немного отличаются, но это всегда большие данные.Обычно вы берете миллиарды частиц и клеток, чтобы сделать что-нибудь реалистичное.Самые большие прогоны - это терабайты на снимок и сотни снимков на симуляцию.
В настоящее время кажется, что лучший способ для чтения и записи такого рода данных - это использование HDF5 http://www.hdfgroup.org/HDF5/,, который в основном являетсяорганизованный способ использования бинарных файлов.Это огромное улучшение по сравнению с неформатированными бинарными файлами с пользовательским блоком заголовка (все еще дающим мне ночные кошмары), но я не могу помочь, но думаю, что мог бы быть лучший способ сделать это.
Я представляю большой размер данныхпроблема в этом, но есть ли какое-то хранилище данных, которое может эффективно обрабатывать терабайты двоичных данных, или двоичные файлы - единственный способ на данный момент?
Если это помогает, мы обычно храним данные по столбцам.То есть у вас есть блок всех идентификаторов частиц, блок всех положений частиц, блок скоростей частиц и т. Д. Он не самый красивый, но самый быстрый для выполнения чего-то вроде поиска частиц в некотором объеме.
edit: Извините за расплывчатость в вопросах.Стив прав, что это может быть просто проблемой структуры данных, а не метода хранения данных.Мне нужно бежать сейчас, но я предоставлю больше деталей поздно вечером или завтра.
edit 2: Так что чем больше я смотрю на это, тем больше я понимаю, что это, вероятно, непроблема хранилища данных больше.Основная проблема с неформатированным двоичным файлом заключалась в том, что все проблемы с чтением данных были правильными (правильное определение размеров и порядка блоков, а также уверенность в этом *1027*).HDF5 в значительной степени исправил это, и не будет более быстрого варианта, пока не будут улучшены ограничения файловой системы (спасибо Мэтту Терк).
Новые проблемы, вероятно, сводятся к структуре данных.HDF5 настолько эффективен, насколько это возможно, даже если это не самый лучший интерфейс для запроса.Привыкнув к базам данных, я подумал, что было бы действительно интересно / мощно иметь возможность запрашивать что-то вроде «дай мне все частицы со скоростью выше x в любое время».Вы можете сделать что-то подобное сейчас, но вы должны работать на более низком уровне.Конечно, учитывая, насколько велики данные и в зависимости от того, что вы с ними делаете, было бы неплохо работать на низком уровне ради производительности.