Efficiently Running MATLAB: system specifications?

15 ビュー (過去 30 日間)
Ryan Simonson
Ryan Simonson 2020 年 1 月 6 日
編集済み: Jason Ross 2020 年 1 月 9 日
Hello all,
I am a physical oceanogapher that is funded from the government and need to build a computer to run MATLAB (and similar mathcentric programs). I was using a laptop that was significantly underpowered and literally incapable of running anything on my global datasets without crashing. I can purchase a new computer from my funding source but I need to submit system specifications in order to create the request, so.
What kind of processors and memory do you all run? I would prefer Windows based platform just for compatibility with other software but am open to OS suggestions. Yes I know that MATLAB offers a minimum system requirements on their webpage but that is not taking into consideration the size of my datasets or the processes I am running. Let me know what system to build, please.
  3 件のコメント
Ryan Simonson
Ryan Simonson 2020 年 1 月 8 日
Desktops are appropriate and actually preferred now. As far as the data sets, they are global ocean water height measurements. so basically, dozens of multi-million point CSVs and I'm running linear algebra to process.
Jason Ross
Jason Ross 2020 年 1 月 9 日
編集済み: Jason Ross 2020 年 1 月 9 日
I concur with the below advice. SSD is really fantastic in terms of disk I/O and there's not too much of a cost premium any more, especially if you are looking at high RPM drives.
For RAM sizing I'm gussing you have a decent idea of what your memory footprint looks like from your existing work. If you are going to look into parallel processing of that data, keep in mind that each parallel instance can also have a similar footprint, depending on what you are doing.
The warning about hyperthreading is very salient -- MATLAB is going to be waiting on the "full" CPUs, so make sure when you look at CPU specs you understand what number of cores you are actually getting.
If your work can be accelerated with a GPU, keep in mind that there are significant differences in performance between singles and doubles on the "consumer" GPUs (e.g. GeForce). If you are doing your calculations in doubles, the GPUs that will provide high performance doubles calculations are more expensive.
The other big plus of a desktop form factor is that they are built to be upgradeable. So if you find that you need more RAM or storage, you can add it pretty easily.

サインインしてコメントする。

回答 (2 件)

Star Strider
Star Strider 2020 年 1 月 6 日
編集済み: Star Strider 2020 年 1 月 6 日
Two resources are:
With respect to processors, I prefer AMD (the computer I’m using to post this is running a Ryzen 7 1800X). For a discussion on that topic, see for example: What, if anything, can be done to optimize performance for modern AMD CPU's? More memory is obviously better. This computer has 64 GBytes.
EDIT —
Also, having a solid-state drive (SSD) for at least the C:\ drive will speed things up considerably, as well as eliminating the need to defragment the drive.
Also see: Hardware of the year awards 2019 at PC GAMER

John D'Errico
John D'Errico 2020 年 1 月 6 日
編集済み: John D'Errico 2020 年 1 月 6 日
My suggestions would be:
  1. As much memory as you can afford. This allows you to vectorize solutions sometimes, offering improved performance by using extra memory. What you don't want to happen is to force your system to start swapping memory.
  2. An SSD drive. Spinning platters are a bad idea when looking for speed.
  3. Multiple cores are good in general, because they allow SOME processes to be multi-threaded. That very much depends on what you are doing of course. Not all processes are automatically multi-threaded. So you need to know if what you are doing is automatically multithreaded. Don't think hyperthreading will help, as this is a mirage. If you have N physical cores, then splitting each core into two virtual cores is virtually meaningless in terms of throughput. It made a lot of sense when CPUs had only one core. But turning 8 cores into 16 virtual cores is a effectively a waste of CPU cycles.
  4. Laptops are problematic, because they often have poor cooling, ineffective fans. When all 8 cores on my machine are running flat out, the system fan needs to kick on to cool things down. Otherwise, you will see throttling, where your CPU will artifically slow down the CPU clock speed. That lets your computer run a little cooler. So get a system with a GOOD fan. If you do insist on a laptop, you can often help by using a supplentary fan underneath the machine. It can significantly drop the temperature of your computer when under thermal stress. These fans are inexpensive. (And, yes, I have used one. It very much does help.)
What we don't know is what kind of computations you will be doing. Lots of heavy linear algebra? No problem, as your CPU will be doing everything already maximally parallelized. I can easily get all 8 cores on my machine running flat out, just doing some (very) large matrix multiplies, or solving a larline linear system of equations using backslash.
However if you are doing symbolic computations for example, they do not seem to be easily parallelized. MATLAB does not do that using multiple threads.
Do you have a parallel processing toolbox license? This will also allow you to parallelize SOME computations. It will be important to make sure you get the correct GPU. GPU acceleration using the Parallel Computing Toolbox requires a GPU that supports CUDA 3 or newer.

カテゴリ

Help Center および File ExchangeGraphics Performance についてさらに検索

製品


リリース

R2014b

Community Treasure Hunt

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

Start Hunting!

Translated by