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 XP and Windows 7) 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 newer computers (see Memory section), and its performance is comparable to the 32-bit version. Refer to Preparing for 64-bit Windows for a more detailed discussion of migrating to 64-bit Windows.
On Mac computers, the 64-bit version of MATLAB is the only version available.
On Linux computers, MathWorks encourages you to migrate to 64-bit Linux, since support for 32-bit Linux will soon end. Refer to the Platform Road Map for more information.
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.
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. There have been reports that MATLAB performance improves for some applications if hyper-threading is disabled. In most situations the performance difference will not be large enough to make this an attractive opportunity, but you may want to experiment.
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 and 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.
Most MATLAB graphics are rendered on the CPU, not the GPU, so you can use any recent graphics card with MATLAB. The performance improvement on a high-end graphics card is relatively modest when compared to an entry-level graphics card. However, MATLAB is increasingly using the GPU's rendering capabilities, so choosing a high-end graphics card is a good way to prepare your system for expected performance boosts in future versions of MATLAB.
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/ATI 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. See Timing Code in MATLAB for information on benchmarking and tools to help produce reliable and repeatable performance benchmarks.