parallellisation of a large array
Show older comments
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!
Answers (1)
Edric Ellis
on 7 Oct 2011
1 vote
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.
Categories
Find more on GPU Computing in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!