How to make Matlab faster

17 Ansichten (letzte 30 Tage)
Leon
Leon am 17 Sep. 2018
Kommentiert: Walter Roberson am 18 Sep. 2018
I'm running a program that takes several days to finish, but it only consumes 30% of my computer CPU and less than 30% of my RAM.
Is there a way we can configure Matlab so that it will use the computer's full capacity?
Thanks.
  1 Kommentar
James Tursa
James Tursa am 17 Sep. 2018
How can we possibly answer this? We would need to see your code, what the profiler says about where the time is being spent, whether the functions you are using are multi-threaded, whether you have a lot of disk access, etc.

Melden Sie sich an, um zu kommentieren.

Akzeptierte Antwort

Walter Roberson
Walter Roberson am 17 Sep. 2018
We can deduce that you probably have four cores (1 core = 25% usage), that your algorithm is mostly iterative and does not involve large arrays (automatic vectorization would use more cores), and that if you are reading files then you are not reading large volumes of data (operating system would automatically cache files using more memory.)
Depending what your algorithm does, it might be possible to vectorize it, which provides more opportunities for MATLAB to automatically invoke high-performance multithreaded libraries.
If you are applying to same iterative algorithm to a number of different starting points with the calculations being independent of each other, then it might be possible to improve by running several copies of the algorithm at the same time using the Parallel Computing toolbox.
But we do not have enough information to give more than generalities.
  2 Kommentare
Leon
Leon am 18 Sep. 2018
Many thanks! Good to learn of parallel computing toolbox.
Walter Roberson
Walter Roberson am 18 Sep. 2018
Note that the Parallel Computing Toolbox often does not help. Each worker runs as a separate process, and it is necessary to send commands to the process and to send the data to be processed, and afterwards it is necessary to pull back results. It is common for the overhead of these things to be more costly than just executing the code in serial.
Parallel Computing Toolbox works best for transferring comparatively little data, and for doing a lot of iterative computation on it. I say iterative because vectorized computation on large vectors is often handed over to high performance libraries to run in multiple cores automatically, so that kind of computation is hampered by not just running without the toolbox but using all available cores.
The Parallel Computing Toolbox cannot handle all access patterns. It is common to need to tune code to get it to work with parfor.

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (0)

Kategorien

Mehr zu Parallel for-Loops (parfor) finden Sie in Help Center und File Exchange

Tags

Produkte

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by