Star-P® for MATLAB® Users

The Star-P parallel software platform brings scalability and performance to MATLAB users, while retaining the traditional ease-of-use of a very high level language (VHLL) platform like MATLAB.

  • No more "out of memory" caused by limited desktop resources - Star-P has been used on Terabyte sized problems
  • Faster time to solution - Star-P's constructs are the easiest way to add parallelism to MATLAB codes. Hardware parallelism can dramatically reduce run times
  • Star-P brings the power of server based computational resources such as servers, clusters and On Demand systems in "the cloud" - directly to the user's desktop

Simple and Efficient Parallel Computing for Science and Technology

The programmer interacts with the standard MATLAB desktop environment, enhanced with a few simple Star-P commands:
  • Tedious parallel programming is eliminated (No MPI, C, Fortran)
  • Conversion from serial to parallel is easy and mostly automated
Star-P with MATLAB environment supports:
  • Serial computing (plain MATLAB)
  • Data-Parallel computing (*p tag)
  • Task-Parallel computing (ppeval command)
  • Additional functions for data- and task-parallel computing through
  • Star-P Connect Library API link

View Larger Image >

Functions Available with Star-P for Parallel Computing

Star-P comes equipped with a large number of MATLAB compatible functions supporting a wide range of application areas. Star-P's unique "data-parallel" functions provide automatic parallelization of operations on large data structures.

A small number of easy to learn special functions make up the Star-P "command set" which allow the user to specify parallelism within the application.

New functions are developed continuously.


Data Parallel and Task Parallel Computing

Leveraging both data- and task-parallel computing is necessary in many scientific and technical simulations. Star-P enables users to work in both modes and to seamlessly interoperate between the two.
  • Star-P's data-parallel mode enables algorithms requiring large-scale memory access and inter-processor communication, often called "global array computing", such as those found in matrix manipulation and signal processing applications.
  • Star-P's task-parallel mode is ideally suited for parallelization of algorithms often called "embarrassingly parallel," where computations can be naturally broken up into largely independent processes such as Monte Carlo simulation, or parallelization of For loops.



With Star-P, task-parallel computing is triggered by using the "ppeval" function call, analogous to MATLAB's feval (or 'function evaluate') command. In this example, the use of "ppeval" replaces the For loop used in the serial version of the code to carry out, in parallel, FFT operations on a brain image at 10 different rotations.



Simple MATLAB script for finding the eigenvector of a random matrix. Adding the *p construct makes variables parallel. Through propagation, related variables also become parallel. Functions on parallel variables are transparently "overloaded" and processed on a multi-core server or cluster.


Scale and Performance

Star-P has been tested in a variety of environments, and has shown a clear performance scaling with the number of processors involved in parallel computation. Additionally, Star-P uses all memory in a multi-core server or cluster for data processing, enabling interactive simulations with very large, real-life data sets.

The scale and performance of Star-P computing depends on the properties of the hardware platform and cluster interconnects. Best performance is achieved when the choice of computing mode is best matched to all segments of the algorithm being tested or simulated. Star-P has been tested and scaled to manipulate 3 Terabyte-sized matrices, on machines reaching 512 processors. Star-P runs on servers with x86-64 multi-core microprocessors such as Intel's Xeon 5100 and AMD's Opteron, and Intel's multi-core Itanium. Supported operating systems include SUSE and Redhat Linux.


View Larger Image >

The Future

Data sizes continue to grow and new and better algorithms are being developed. At the same time, commodity micro-processors are quad core now and moving to greater levels of parallelism. This causes a problem for the domain expert who has limited time to develop parallel applications.

Star-P is a tool that turns this problem into an opportunity for scientists, engineers and analysts to use servers, clusters and On Demand, cloud resources to dramatically increase their productivity.