Имам работа с големи входни масиви с 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
@Ricky Robinson проверихте ли колко време отнема вашата операция за един елемент?
- person acl; 28.02.2011