дорогой ЛОР!
Мне нужно сделать 3-мерное фурье-преобразование массива с длиной «стороны» порядка 1024 точек (в перспективе было бы здорово и побольше). В распоряжении имеется ПК с 4 Гигабайтами памяти и core-i5. Я попробовал сделать это с помощью библиотеки fftw. Практически удалось решить эту задачку для массива с длиной «стороны» 512 точек, больше просто не влезает в ОЗУ. В 4 потока фурье делается секунд за 20, что мне очень нравится!
Однако простые прикидки показывают, что для размещения fftw_complex требуемых мне размеров нужно 16 гигабайт ОЗУ, которых у меня нет :( Я попробовал размещать входной массив в файле с помощью процедуры mmap, но это очень сильно замедляет работу программы :(
Нет ли у моей задачки какого-нибудь более простого решения? (помимо сборки суперкомпьютера в домашних условиях) Пока не очень хочется отказываться от fftw, поэтому вопрос - можно ли как-то более разумно подойти к размещению большого массива в ОЗУ + на диске? Или как-нибудь делать фурье по частям, копируя их в ОЗУ из файла большими блоками?
PS. К сожалению у задачки нет никакой симметрии, что может быть как-то могло бы упростить её решение.
PPS. Приветствуются любые мысли и ключевые слова, особенно если кто-то имел похожий опыт...