Interactive SuperComputing


 
Star-P® for Python Users



Table of contents:

 

Accelerate Time-to-Solution with Star-P for Python

Productivity Breakthrough for MATLAB®, Python, R, and others. . .
Programming that took months, can be done in days; and simulation runs that took days can be done in minutes.

The Star-P open software platform delivers revolutionary results to scientists, engineers and analysts by enabling them to transparently use high performance computing resources, using familiar desktop tools such as MATLAB®, Python, R and many others.

10-100X Faster Computations

By transparently leveraging the parallel computing capability, Star-P enables simulations developed in desktop tools to be processed in parallel, dramatically accelerating computation time

10-100X Larger Data Sets

Using Star-P, desktop application users can work with large, distributed datasets - gigabytes and even terabytes in size - distributed across servers, clusters, and grids.

No Need for Low-level Parallel Programming

With Star-P, there is no need to use low-level languages and constructs of C, Fortran, and MPI, to take advantage of high performance computing resources. Using the Star-P Connect library API, users can leverage library functions from open source community and commercial vendors written in C or Fortran.

 

Simple and Efficient Parallel Computing for Science and Technology

The user interacts with standard Python desktop environment, enhanced with 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 Python environment supports
  • Serial computing (plain Python)
  • Data-Parallel computing
  • Task-Parallel computing (ppeval command)
  • Additional functions for data- and task-parallel computing through Star-P Connect™ Library API link

 

Functions Available with Star-P for Parallel Computing

  • Task-Parallel Operations: All NumPy and SciPy functions and operators, and many Python modules available online.
  • Data-Parallel Operations: ~100 functions and operators
  • Unlimited user or community functions via Star-P Connect
  • Star-P specific functions: ~20 programming or environment control and support functions

Star-P for Python Users

A high-level language of increasing importance today is Python, and in particular the set of Python extensions contained in the NumPy module. Starting with release 2.5, Interactive Supercomputing offers a Python client as part of the Star-P suite of parallelization tools (Figure 1). This Python client works in a way which will feel comfortable to users of NumPy. In fact, the new Star-P Python client will enable NumPy users to run their programs on a parallel supercomputer with only a couple of trivial syntax changes.

If you are a Python user, Interactive Supercomputing's new Python client means this: Using Star-P you can write a Python program handling large matrix and array objects on a desktop PC. While developing your code on the PC you may take advantage of Python's intrinsic interactivity, and you can use any of the convenient IDE's available for working in Python. Then, when you want to process extremely large datasets, Star-P allows you to export your calculation to a server supercomputer while still controlling your computation from the interactive session running on the desktop PC.

Figure 1: Star-P's client-server architecture. The client machine is the PC on the left. You interact with Python on the client. The server supercomputer is shown on the right. The server runs world-class parallel numerical libraries. Star-P mediates the interaction of the client and server while you manipulate your data on the client. When a computation must be performed on the parallel server, Star-P automatically moves your functions and data to the server for processing.

The goal is to enable ordinary scientists and engineers to write number crunching programs in a comfortable high-level language, and then immediately and seamlessly run their code on a parallel computer. In particular, Star-P renders it unnecessary to re-code an application into C in order to take advantage of the parallel-processing MPI library. Star-P handles the details of MPI, allowing the computer user to focus on his application, and avoid fooling around with the complicated low-level details of parallel computing. In particular, Star-P delivers interactive performance by automatically:

  • Sending your computations to the parallel server
  • Providing you access to built-in world-class parallel processing libraries
  • Enabling you to extend your code using community or user-specific parallel libraries
  • Managing inter-processor communication on the parallel server
  • Managing memory allocation for large datasets
  • Bundling and returning data from the server supercomputer to your desktop PC for further analysis and visualization

Star-P will fundamentally transform your computing work flow since it allows you to immediately run prototype code on a parallel server without the necessity of porting it to C/C++ and MPI. Coupled with the power and flexibility of Python, Star-P represents a shortcut to getting the answers you want from your numerical algorithms!

The first Star-P client linked a client runing MATLAB® with a parallel supercomputer. Python represents Interactive Supercomputing's second client supporting a high-level language for numerical computation. In particular, Star-P's Python client is envisioned to be a drop-in replacement for the NumPy module. That means that any code targeted to use NumPy may be ported to the Star-P platform by simply replacing all numpy calls with starp calls, like this:

# NumPy version
import numpy
a = numpy.random.rand(5, 5)
b = numpy.linalg.inv(a)
c = a*b

# Star-P version
import starp
starp.defaultConnect('hostname', '/path/to/starp/installation') # Establish connection to server
a = starp.numpy.random.rand(5, 5)
b = starp.numpy.linalg.inv(a)
c = a*b

As designed , every NumPy function has a Star-P equivalent which is called in exactly the same way. Therefore, besides the call to "starp.defaultConnect()", any NumPy program can become a Star-P program simply by replacing the word "numpy" with "starp.numpy". The difference is that Star-P operates on parallelized arrays held on the parallel server!

Star-P also supports task-parallel computations, which refers to performing longer, non-communicating computations in parallel, and then gathering the results at the computation's end. Task parallel operations could sensibly run on separate threads (or separate processes) on a serial computer. Parallelized Monte-Carlo simulation is a classic example of task-parallelism. Star-P's Python client supports task-parallel computations explicitly by introducing a new function used to invoke parallel execution of any desired function. That new function is called "starp.ppeval()". Starp.ppeval handles the job of splitting up data, oversees execution of the function in parallel and gathers the returned results together.

 

 

 
Accelerate your MATLAB, Python and R code

Star-P On-Demand

Evaluation for Python Users!  

Application Library  
See application notes for a broad range of algorithms and models.

Going Parallel Kit 
The downloadable kit contains a Case Study, White Paper, and Product Overview.

Star-P Interactive Tour 
Online presentations and demos show how Star-P significantly accelerates parallel code development.

IDC Case Study 
This IDC Buyer Case Study examines the usage of Star-P at Air Force Research Lab (AFRL).

Key Questions to Ask Your Parallel Software Vendor  
Explore the factors to determine the best parallel tool for your unique needs.

Parallel MATLAB® Survey 
The survey, published in the Proceedings of the IEEE, reviews 27 parallel MATLAB® projects.

FREE Technical Assessment! 
Get a free technical assessment on parallelizing your desktop code!

Report Download: Development of Custom Parallel Applications  
The study covers HPC programming environment, tools, and challenges.

phone Have a Salesperson Call Me (US/Canada)

How to Buy >

Request Information >

Newsletter Sign-up >