У меня возникла следующая проблема. Мне нужно хранить огромные объемы информации (~ 32 ГБ) и иметь возможность манипулировать им как можно быстрее. Мне интересно, что это лучший способ сделать это (комбинации языка программирования + OS + все, что вы считаете важным).
Структура информации, которую я использую, представляет собой массив 4D (NxNxNxN) с плавающей запятой (8 байтов). Прямо сейчас мое решение состоит в том, чтобы нарезать массив 4D на 2D-массивы и хранить их в отдельных файлах на жестком диске моего компьютера. Это очень медленно, и манипулирование данными невыносимо, поэтому это совсем не решение!
Я подумываю о переходе в суперкомпьютерный объект в моей стране и хранить всю информацию в ОЗУ, но я не уверен, как реализовать приложение, чтобы воспользоваться им (я не профессиональный программист, поэтому любая книга/справочник мне очень помогут).
Альтернативное решение, о котором я думаю, это купить выделенный сервер с большим количеством ОЗУ, но я не знаю точно, решит ли это проблему. Поэтому прямо сейчас мое невежество не позволяет мне выбрать лучший способ продолжения.
Что бы вы сделали, если бы оказались в такой ситуации? Я открыт для любой идеи.
Спасибо заранее!
РЕДАКТИРОВАТЬ: Извините за отсутствие достаточной информации, я постараюсь быть более конкретным.
Я храню дискретизированную математическую функцию 4D. Операции, которые я хотел бы выполнить, включают в себя перемещение массива (изменение b [i, j, k, l] = a [j, i, k, l] и т.п.), умножение массива и т.д.
Поскольку это симуляция предлагаемого эксперимента, операции будут применяться только один раз. Как только результат будет получен, не будет необходимости выполнять больше операций с данными.
РЕДАКТИРОВАТЬ (2):
Я также хотел бы иметь возможность хранить больше информации в будущем, поэтому решение должно быть как можно более масштабируемым. Текущая цель 32 ГБ состоит в том, что я хочу иметь массив с N = 256 точками, но будет лучше, если я смогу использовать N = 512 (что означает 512 ГБ для его сохранения!!).