Predicting how MATLAB will perform while running an application on a particular computer is difficult. MathWorks offers this general guidance on platform selection criteria and emphasizes that it is not a substitute for testing your application on a particular computer.
MATLAB performance is similar on Windows®, Mac OS® X, and Linux®, although differences can occur among platforms for the following reasons:
In general, performance differences in operating system releases (for example, between Windows 7 and Windows 8) are negligible.
On Windows computers, using 64-bit Windows and the 64-bit version of MATLAB is the right choice for most situations, because it can access the larger amounts of memory in modern computers (see Memory section), and support for 32-bit Windows will end in the next couple of years. Refer to the Platform Road Map for more information. Also refer to Adopting 64-bit Windows for a more detailed discussion of migrating to 64-bit Windows.
On Mac and Linux computers, the 64-bit version of MATLAB is the only version available.
Each component of a typical computer configuration has an impact on MATLAB performance.
Computers with more CPU cores can outperform those with a lower core count, but results will vary with the MATLAB application. MATLAB automatically uses multithreading to exploit the natural parallelism found in many MATLAB applications. But not all MATLAB functions are multithreaded, and the speed-up varies with the algorithm. For additional capability, Parallel Computing Toolbox offers parallel programming constructs that more directly leverage multiple computer cores.
MATLAB performance is dependent on the presence of floating-point hardware. On many CPUs, the number of Floating-Point Units (FPUs) equals the number of CPU cores. However, on some processors, a single FPU may be shared between multiple CPU cores, potentially creating a performance bottleneck.
Virtual cores may modestly improve overall system performance, but they are likely to have little effect on the performance of MATLAB applications. Intel CPUs with hyper-threading give the appearance that a computer has twice as many cores than it actually has. When using a tool such as Windows Task Manager, MATLAB may appear to use only half of the CPU cores available on the computer, when in fact the "unused" half is actually the virtual cores created by hyper-threading.
Your computer can suffer performance degradation due to thrashing when MATLAB and the programs you run concurrently with it use more than the available physical memory and your computer must resort to virtual memory. If, while running a MATLAB application, you find your computer is using little of the CPU, you may be experiencing thrashing. To detect thrashing on a Windows platform, use Windows Performance Monitor. On a Mac, use Activity Monitor.
MATLAB applications that use more than 3 GB of memory (2 GB on some platforms) require the 64-bit version of MATLAB.
The hard disk speed is a significant factor in MATLAB start-up time. Once MATLAB is running, disk speed is only a factor if a MATLAB application's performance profile is dominated by file I/O, or if your system is using virtual memory (see Memory section). For disk-intensive MATLAB applications or to improve the start-up time of MATLAB, you can take advantage of technologies such as solid-state drives or RAID.
MATLAB Graphics are rendered using OpenGL technology, so a graphics card with superior OpenGL support can outperform a lesser card. Up-to-date drivers are recommended for the best visual appearance and robustness.
To speed up computation, Parallel Computing Toolbox leverages NVIDIA GPUs that support CUDA 1.3 or later. See the full list of supported GPUs. MATLAB does not support computation acceleration using AMD or Intel GPUs at this time.
MATLAB provides a built-in benchmarking utility called
bench that provides a general sense of MATLAB performance on a particular computer, but it cannot reliably predict how any particular MATLAB application will run. Use the MATLAB function
timeit to help produce reliable and repeatable performance benchmarks.