Я имею дело с большими входными массивами с Mathematica, и похоже, что я не могу обработать ничего больше (или равного) 1024 * 1024 и 81 * 81 * 81. Это нормально? Должен ли я иметь возможность выполнять вычисления на таких входных данных? Если да, то как?
Обработка больших данных в Mathematica
comment
Можете ли вы указать, какой процесс вы пытаетесь выполнить?
- person Dr. belisarius   schedule 26.02.2011
comment
Вы должны иметь возможность импортировать данные экспорта с элементами 1024 * 1024 - это не так уж много. Вы можете дать более подробную информацию?
- person Simon   schedule 26.02.2011
comment
Обратите внимание, что 1024^2/81^3 = 2 (приблизительно). Так что ваши ограничения не совпадают.
- person Dr. belisarius   schedule 27.02.2011
Ответы (1)
Я думаю, это зависит от того, какие вычисления вы выполняете.
Например, в очень скромном ноутбуке:
Clear["Global`*"];
k = 2000;
Timing[a = Table[i j + i - j, {i, k}, {j, k}];
MatrixPlot@a]
Занимает 20 секунд.
Матрица умножения до 1000x1000:
f[n_] := Table[RandomInteger[{1, n}], {n}, {n}];
ListLinePlot[
Table[{n, First@AbsoluteTiming@(#.#) &@f[n]}, {n, 100, 1000, 100}]]
Таким образом, это сильно зависит от того, что вы пытаетесь рассчитать.
person
Dr. belisarius
schedule
26.02.2011
Я понимаю. Итак, что делает моя программа, так это оценивает каждую ячейку 1/2/3-мерного массива и выполняет с ней некоторые вычисления. Сейчас не очень важно, чтобы я имел дело с большими входными данными, но мне просто интересно, есть ли способ немного ускорить вычисления.
- person Ricky Robinson; 27.02.2011
@Ricky Есть много доступных уловок, от использования функциональных конструкций вместо циклических, до получения преимуществ параллельных ядер на вашей машине и до использования настоящих сеток обработки монстров. Но серебряной пули, подходящей для любой ситуации, не существует. Вам нужно рассказать нам больше о вашей конкретной проблеме.
- person Dr. belisarius; 27.02.2011
@ Рики Робинсон, вы проверили, сколько времени занимает ваша операция для одного элемента?
- person acl; 28.02.2011