I do a lot of model development and prototyping in matlab. I've been working on an old 6 core 4960x system and am looking to upgrade. Unfortunately, there doesn't seem to be a good benchmark for matlab performance. and it is not clear to me if standard CPU benchmarks are useful indicators of matlab performance so I made my own and I've attached the first version to this post.
I am interested in seeing the performance of almost any system, but I'm particularly interested in the performance of high core count (16+) CPU's and systems as that's what I'm looking to buy. For myself I've considered the following:
AMD Epyc and Threadripper CPU's
i9 7980xe
Xeon Platinum 8180 (mainly engineering samples, as those are in my budget)
Xeon W-3175x (upcoming)
4x Xeon4890 v2 (Poweredge r920)
Things to note:
1. matbench.m will run the benchmark. You must change line 1 to 'linux=1' if you are running linux and you must change 'hyperthreading=0' if you only want to use as many threads as you have physical cores.
2. You need matlab installed on your system (I made a standalone application but it is just too large (~230 MB) and I don't know how to make it smaller). You also need the parallel computing package.
3. This is a CPU and MEMORY intensive benchmark. The system will use up to ~2.1 GB per thread. So, a 64 thread system will need more than 128 GB available. However, the program will limit threads to the maximum for available memory.
4. It should work in older versions of matlab, but I've developed it in R2018a.
5. I would have posted this in the 'linux-bench and other benchmarks' forum, but it looks like a graveyard there.
Three benchmarks are run. The first is simple arithmetic on vectors of increasing size. The second is an interpolation code with vectors of increasing size, and the third solves a system of linear equations for a small to large number of simultaneous equations. Each benchmark is run utilizing built-in matlab vectorized parallelization, single-threaded computation, and multi-threaded computation.
Example result for my 4960x, 64GB system:
The spider plot shows full results and the bar plot shows an overall score for each benchmark.
I am interested in seeing the performance of almost any system, but I'm particularly interested in the performance of high core count (16+) CPU's and systems as that's what I'm looking to buy. For myself I've considered the following:
AMD Epyc and Threadripper CPU's
i9 7980xe
Xeon Platinum 8180 (mainly engineering samples, as those are in my budget)
Xeon W-3175x (upcoming)
4x Xeon4890 v2 (Poweredge r920)
Things to note:
1. matbench.m will run the benchmark. You must change line 1 to 'linux=1' if you are running linux and you must change 'hyperthreading=0' if you only want to use as many threads as you have physical cores.
2. You need matlab installed on your system (I made a standalone application but it is just too large (~230 MB) and I don't know how to make it smaller). You also need the parallel computing package.
3. This is a CPU and MEMORY intensive benchmark. The system will use up to ~2.1 GB per thread. So, a 64 thread system will need more than 128 GB available. However, the program will limit threads to the maximum for available memory.
4. It should work in older versions of matlab, but I've developed it in R2018a.
5. I would have posted this in the 'linux-bench and other benchmarks' forum, but it looks like a graveyard there.
Three benchmarks are run. The first is simple arithmetic on vectors of increasing size. The second is an interpolation code with vectors of increasing size, and the third solves a system of linear equations for a small to large number of simultaneous equations. Each benchmark is run utilizing built-in matlab vectorized parallelization, single-threaded computation, and multi-threaded computation.
Example result for my 4960x, 64GB system:
The spider plot shows full results and the bar plot shows an overall score for each benchmark.
Attachments
-
17.1 KB Views: 36
Last edited: