parallellisation of a large array
Ältere Kommentare anzeigen
I have an array of about a million points. On each point, a number of computations involving frequent conversion between the frequency and time domain is done. So the overall time to process a million data points come to about 5 minutes. I'm looking to to reduce the computation time. One option I am exploring is using GPUs. One of the ways I'm looking to do this is is by chopping the array into smaller sizes and perform the analysis (run the same code) on each of the smaller segments simultaneously. Will I be able to achieve this using GPUs (i.e use the ~100 cores as a cluster of workstations)? If so, how would I simultaneously run multiple instances of the code on multiple threads (cores) simultaneously from the same client program?
Thank you for your help and advice!
Antworten (1)
Edric Ellis
am 7 Okt. 2011
1 Stimme
GPUs are great at elementwise computations, by putting your data into a gpuArray, you can have all the cores of your CUDA GPU operating simultaneously on your data. Your best is probably to use arrayfun as this lets you write MATLAB code to operate on each element.
This demo shows various different ways of working with gpuArrays.
1 Kommentar
Rejoy
am 10 Okt. 2011
Kategorien
Mehr zu GPU Computing finden Sie in Hilfe-Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!