MathWorks parallel computing products help you harness a variety of computing resources for solving your computationally intensive problems. You can accelerate the processing of repetitive computations, process large amounts of data, or offload processor-intensive tasks on a computing resource of your choice—multicore computers, GPUs, or larger resources such as computer clusters and cloud computing services.
Parallel programming constructs in Parallel Computing Toolbox™, such as parallel for-loops, and GPU-enabled MATLAB functions offer an easy way to speed up your MATLAB® code. Using these constructs to accelerate your computations require minimal code changes. Built-in parallel and GPU computing algorithms significantly reduce the programming effort required for you to take advantage of your high-performance systems.
With Parallel Computing Toolbox™ and MATLAB Distributed Computing Server™, you can analyze big data sets in parallel using distributed arrays, tall arrays, or mapreduce on Apache Spark™ and Hadoop® clusters.
Distributed arrays in Parallel Computing Toolbox support partitioning large matrices and multidimensional arrays across the combined memory of the nodes in a computer cluster. Over 400+ existing MATLAB® functions are enhanced or overloaded to work with distributed arrays. Enhanced functions include linear algebra operations such as mldivide(\), lu, and chol, and iterative solvers such as gmres, lsqr, cgs, and pcg, with support for both sparse and dense arrays. Using the enhanced functions, you can develop algorithms and interact with these arrays the same way you would with any MATLAB array, and manipulate data available remotely on MATLAB workers* without low-level MPI programming. You can load data into distributed arrays in parallel from a single file, a collection of files using datastore, or directly construct distributed arrays on the MATLAB workers.
Tall arrays, built into MATLAB, are used to work with out-of-memory data backed by a datastore that can have millions or billions of rows. As opposed to distributed arrays, tall arrays are loaded into memory in small chunks of data at a time, handling all of the data chunking and processing in the background. Parallel Computing Toolbox further extends tall arrays by running big data applications with tall arrays in parallel, using multiple local workers on your desktop computer. You can further scale up tall array calculations on a cluster, including Spark enabled Hadoop clusters, using MATLAB Distributed Computing Server.
Parallel Computing Toolbox also extends the MapReduce capabilities built into MATLAB so that you can run mapreduce based applications on local workers for improved performance. By pairing the toolbox with MATLAB Distributed Computing Server, you can scale these applications further by running mapreduce parallel on a Hadoop cluster.