International Journal of Parallel Programming

, Volume 37, Issue 1, pp 3–36 | Cite as

MATLAB®: A Language for Parallel Computing

  • Gaurav Sharma
  • Jos Martin
Open Access


Parallel computing with the MATLAB® language and environment has received interest from various quarters. The Parallel Computing ToolboxTM and MATLAB® Distributed Computing ServerTM from The MathWorks are among several available tools that offer this capability. We explore some of the key features of the parallel MATLAB language that these tools offer. We describe the underlying mechanics as well as the salient design decisions and rationale for certain features in the toolset. The paper concludes by identifying some issues that we must address as the language features evolve.


Parallel MATLAB Parallel language design Parallel Computing Toolbox 



We would like to acknowledge the contributions of the parallel language design team members at The MathWorks who simplified the esoteric details for the purposes of this paper, particularly Penny Anderson, Edric Ellis, Mike Karr and Brett Baker. We would also like to thank Cleve Moler, Chief Scientist and cofounder of The MathWorks, for being our fiercest critic.

Open Access

This article is distributed under the terms of the Creative Commons Attribution Noncommercial License which permits any noncommercial use, distribution,and reproduction in any medium, provided the original author(s) and source are credited.


  1. 1.
    Travinin Bliss N., Kepner J.: pMatlab parallel Matlab library. Int. J. High Perform. Comput. Appl. 21(3), 336–359 (2007). doi: 10.1177/1094342007078446 CrossRefGoogle Scholar
  2. 2.
    Kepner J.: MatlabMPI. J. Parallel Distrib. Comput. 64(8), 997–1005 (2004). doi: 10.1016/j.jpdc.2004.03.018 zbMATHCrossRefGoogle Scholar
  3. 3.
    Trefethen, A.E., Menon, V.S., Chang, C., Czajkowski, G., Myers, C., Trefethen, L.N.: Multimatlab: MATLAB on Multiple Processors. Technical Report, UMI Order Number: TR96-1586, Cornell University (1996)Google Scholar
  4. 4.
    Hudak, D.E., Ludban, N., Gadepally, V., Krishnamurthy, A.: Developing a computational science IDE for HPC systems. In: Proceedings of the 3rd International Workshop on Software Engineering for High Performance Computing Applications, International Conference on Software Engineering. IEEE Computer Society, Washington, DC, 20–26 May 2007Google Scholar
  5. 5.
    Moler, C.: Why isn’t There a Parallel MATLAB. The MathWorks Newsletter, Spring 1995Google Scholar
  6. 6.
    Jacobson P., Kågström B., Rännar M.: Algorithm development for distributed memory multicomputers using CONLAB. Sci. Prog. 1, 185–203 (1992)Google Scholar
  7. 7.
    DeRose, L., Gallivan, K., Gallopoulos, E., Marsolf, B., Padua, D.: FALCON: a MATLAB interactive restructuring compiler. In: Languages and Compilers for Parallel Computing, pp. 269–288. Springer-Verlag, New York (1995)Google Scholar
  8. 8.
    Release Notes: MATLAB Compiler (version 4.0), The MathWorks (2004)Google Scholar
  9. 9.
    Husbands, P., Isbell, C.: Matlab*p: a tool for interactive supercomputing. In: The Ninth SIAM Conference on Parallel Processing for Scientific Computing (1999)Google Scholar
  10. 10.
    Panuganti, R., Baskaran, M.M., Hudak, D., Krishnamurthy, A., Nieplocha, J., Rountev, A., et al.: GAMMA: Global Arrays Meets MATLAB. Technical Report OSU-CISRC-1/06-TR15, The Ohio State University, January 2006Google Scholar
  11. 11.
    Hollingsworth, J., Liu, K., Pauca, P.: Parallel Toolbox for MATLAB PT v. 1.00: Manual and Reference Pages. Wake Forest University (1996). URL:
  12. 12.
    Lurie, R.: Language Design for Uncertain Future. HPCwire, September 2007Google Scholar
  13. 13.
    Mani Chandy K., Misra J., Haas L.M.: Distributed deadlock detection. ACM Trans. Comput. Syst. 1(3), 145–156 (1983)Google Scholar
  14. 14.
    Carlson, B., El-Ghazawi, T., Numrich, R., Yelick, K.: Programming in the Partitioned Global Address Space Model. Tutorial at Supercomputing 2003, November 2003. URL:
  15. 15.
    HPF Language Specification, Version 2.0, 31 January 1997Google Scholar
  16. 16.
    Numrich, R.W., Reid, J.K.: Co-array FORTRAN for parallel programming. FORTRAN Forum 17(2), (1998)Google Scholar
  17. 17.
    User Manual, Cluster OpenMP*, Intel Corporation, 2005–2006.Google Scholar
  18. 18.
    Chamberlain B.L., Callahan D., Zima H.P.: Parallel programmability and the chapel language. Int. J. High Perform. Comput. Appl. 21(3), 291–312 (2007). doi: 10.1177/1094342007078442 CrossRefGoogle Scholar
  19. 19.
    Chandra, R., Menon, R., Dagum, L., Kohr, D., Maydan, D., McDonald, J.: Parallel Programming in OpenMP. Morgan Kaufmann, Mosby (2000)Google Scholar
  20. 20.
    Allen, E., Chase, D., Hallett, J., Luchangco, V., Maessen, J.-W., Ryu, S., Steele, G.L., Jr., Tobin-Hochstadt, S.: The Fortress Language Specification, Version 1.0 β, Sun Microsystems, Inc., 6 March 2007Google Scholar
  21. 21.
    Kepner, J.: Programming with MatlabMPI, Web documentation, URL:
  22. 22.
    Moler, C.: Parallel MATLAB: Multiple processors and multiple cores, The MathWorks News and Notes, June 2007Google Scholar

Copyright information

© The Author(s) 2008

Authors and Affiliations

  1. 1.The MathWorksNatickUSA
  2. 2.The MathWorks Ltd.CambridgeUK

Personalised recommendations