Dynamic typing in a statically typed language
ACM Transactions on Programming Languages and Systems (TOPLAS)
The high performance Fortran handbook
The high performance Fortran handbook
Scalability issues affecting the design of a dense linear algebra library
Journal of Parallel and Distributed Computing - Special issue on scalability of parallel algorithms and architectures
Co-array Fortran for parallel programming
ACM SIGPLAN Fortran Forum
A parallel linear algebra server for Matlab-like environments
SC '98 Proceedings of the 1998 ACM/IEEE conference on Supercomputing
IEEE Parallel & Distributed Technology: Systems & Technology
ISCOPE '97 Proceedings of the Scientific Computing in Object-Oriented Parallel Environments
FRONTIERS '95 Proceedings of the Fifth Symposium on the Frontiers of Massively Parallel Computation (Frontiers'95)
Journal of Parallel and Distributed Computing
HPC Productivity: An Overarching View
International Journal of High Performance Computing Applications
UPC: Distributed Shared-Memory Programming
UPC: Distributed Shared-Memory Programming
Programming for parallelism and locality with hierarchically tiled arrays
Proceedings of the eleventh ACM SIGPLAN symposium on Principles and practice of parallel programming
MATLAB®: a language for parallel computing
International Journal of Parallel Programming
High-performance graph algorithms from parallel sparse matrices
PARA'06 Proceedings of the 8th international conference on Applied parallel computing: state of the art in scientific computing
Automating GPU computing in MATLAB
Proceedings of the international conference on Supercomputing
UPCBLAS: a library for parallel matrix computations in Unified Parallel C
Concurrency and Computation: Practice & Experience
Hi-index | 0.00 |
MATLAB® has emerged as one of the languages most commonly used by scientists and engineers for technical computing, with approximately one million users worldwide. The primary benefits of MATLAB are reduced code development time via high levels of abstractions (e.g. first class multi-dimensional arrays and thousands of built in functions), interpretive, interactive programming, and powerful mathematical graphics. The compute intensive nature of technical computing means that many MATLAB users have codes that can significantly benefit from the increased performance offered by parallel computing. pMatlab provides this capability by implementing parallel global array semantics using standard operator overloading techniques. The core data structure in pMatlab is a distributed numerical array whose distribution onto multiple processors is specified with a "map" construct. Communication operations between distributed arrays are abstracted away from the user and pMatlab transparently supports redistribution between any block-cyclic-overlapped distributions up to four dimensions. pMatlab is built on top of the MatlabMPI communication library and runs on any combination of heterogeneous systems that support MATLAB, which includes Windows, Linux, MacOS X, and SunOS. This paper describes the overall design and architecture of the pMatlab implementation. Performance is validated by implementing the HPC Challenge benchmark suite and comparing pMatlab performance with the equivalent C+MPI codes. These results indicate that pMatlab can often achieve comparable performance to C+MPI, usually at one tenth the code size. Finally, we present implementation data collected from a sample of real pMatlab applications drawn from the approximately one hundred users at MIT Lincoln Laboratory. These data indicate that users are typically able to go from a serial code to an efficient pMatlab code in about 3 hours while changing less than 1% of their code.