Обработка больших данных в Mathematica

Я имею дело с большими входными массивами с Mathematica, и похоже, что я не могу обработать ничего больше (или равного) 1024 * 1024 и 81 * 81 * 81. Это нормально? Должен ли я иметь возможность выполнять вычисления на таких входных данных? Если да, то как?


person Ricky Robinson    schedule 26.02.2011    source источник
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
comment
Я понимаю. Итак, что делает моя программа, так это оценивает каждую ячейку 1/2/3-мерного массива и выполняет с ней некоторые вычисления. Сейчас не очень важно, чтобы я имел дело с большими входными данными, но мне просто интересно, есть ли способ немного ускорить вычисления. - person Ricky Robinson; 27.02.2011
comment
@Ricky Есть много доступных уловок, от использования функциональных конструкций вместо циклических, до получения преимуществ параллельных ядер на вашей машине и до использования настоящих сеток обработки монстров. Но серебряной пули, подходящей для любой ситуации, не существует. Вам нужно рассказать нам больше о вашей конкретной проблеме. - person Dr. belisarius; 27.02.2011
comment
@ Рики Робинсон, вы проверили, сколько времени занимает ваша операция для одного элемента? - person acl; 28.02.2011