Не бих казал, че Mathematica извършва автоматично GPU или Paralell-CPU изчисления, поне като цяло. Тъй като трябва да направите нещо с паралелни ядра, тогава трябва да инициализирате повече ядра и/или да качите CUDALink или OpenCLLink и да използвате специфична функционалност на Mathematica, за да използвате потенциала на CPU и/или GPU.
Например, нямам много мощна графична карта (NVIDIA GeForce 9400 GT), но можем да тестваме как работи CUDALink. Първо трябва да кача CUDALink
:
Needs["CUDALink`"]
Ще тествам умножение на големи матрици. Избирам произволна матрица 5000 x 5000
от реални числа в диапазон (-1,1)
:
M = RandomReal[{-1,1}, {5000, 5000}];
Сега можем да проверим изчислителните времена без поддръжка на GPU
In[4]:= AbsoluteTiming[ Dot[M,M]; ]
Out[4]= {26.3780000, Null}
и с поддръжка на GPU
In[5]:= AbsoluteTiming[ CUDADot[M, M]; ]
Out[5]= {6.6090000, Null}
В този случай получихме ускорение на производителността приблизително с фактор 4, като използвахме CUDADot вместо Dot.
Редактиране
За да добавя пример за паралелно ускорение на процесора (на двуядрена машина), избирам всички прости числа в диапазон [2^300, 2^300 +10^6]
. Първо без паралелизиране:
In[139]:= AbsoluteTiming[ Select[ Range[ 2^300, 2^300 + 10^6], PrimeQ ]; ]
Out[139]= {121.0860000, Null}
докато използвате Parallelize[expr]
, който оценява израз чрез автоматично паралелизиране
In[141]:= AbsoluteTiming[ Parallelize[ Select[ Range[ 2^300, 2^300 + 10^6], PrimeQ ] ]; ]
Out[141]= {63.8650000, Null}
Както може да се очаква, имаме почти два пъти по-бърза оценка.
person
Artes
schedule
26.12.2011
PerformanceGoal->"Speed"
иMaxPlotPoints
и много други неща като това би помогнало. Така че бих си представил по-бърза графична карта, би помогнало. Що се отнася до други аспекти , M може да използва GPU с CUDA. Аз не използвам тази част от него. - person Nasser   schedule 27.12.2011PerformanceGoal->"Speed"
. DateListPlot е бавен, защото функциите за дата и час в Mma са много бавни. Бих искал да видя 50 пъти подобрение на скоростта, за да ги направя конкурентни с напр. VBA. - person Mike Honeychurch   schedule 27.12.2011