Python in High-Performance Computing

Download as pdf or txt
Download as pdf or txt
You are on page 1of 2

Detailed description ciency and techniques to boost the performance will be pre-

sented throughout the short course.


Goals
The teachers at PARA’06 will be Professors Xing Cai, Hans
Python in High-Performance This tutorial will give an example-oriented introduction
to using Python as a programming platform for high-
Petter Langtangen, and Kent-Andre Mardal from Simula
Research Laboratory (Oslo, Norway) and the University of
Computing performance computing. The participants will learn how Oslo. The course material will be made available as hand-
their daily work can benefit from the flexibility of the outs. Parts of the material are also covered by the book
Python language, and from several powerful add-on tools. H. P. Langtangen: Python Scripting for Computational Sci-
Are M. Bruaset, Xing Cai, Also those already familiar with the Python programming ence, Springer, 2nd edition, 2006.
Hans P. Langtangen, Kent-Andre Mardal, environment can expect to improve their skills and pick up
After the lectures, participants may try out some exercises
Halvard Moe, Ola Skavhaug, Åsmund Ødegård useful techniques and procedures.
on their own laptop with guidance from the course instruc-
tors. Necessary software will be provided, both at http:
Targeted audience //www.simula.no/~hpl/PyTutorialPARA06/ and on a
Abstract We address both researchers doing a lot of “Matlab-style” CD.
The virtue of Python is flexibility, making it an ideal
numerical computing and plotting, and researchers doing
tool for the scientist who wants to experiment with differ- scientific application development or adaption in low-level Why is this topic relevant to PARA’06 attendees?
ent models, do rapid prototyping, and even do large scale languages like Fortran, C, or C++. Interactive computing
Python has become a popular language over recent years,
simulations. The syntax and functionality seem much like and plotting can easily make use of applications and li-
and is already in widespread use within the scientific com-
Matlab, but Python is a full-fledged advanced program- braries written in compiled languages, while program de-
munity. Still, we think that the capabilities of Python for
ming language with excellent support for user-defined velopment in Fortran, C, or C++ can benefit from a mixed
data types, operator overloading, object orientation, and high-performance computing are under-utilized, especially
language approach where Python is used for data manage-
generic (“template”) programming. Moreover, it is con- as a tool for driving numerical simulations. The language
ment tasks while the most time-critical number crunching
venient to migrate Python code to Fortran, C, or C++, or is ideal for gluing together existing codes and programs in
takes place in compiled code.
equip legacy libraries in those languages with modern and various ways. This topic is relevant to PARA’06 attendees
user-friendly interfaces. Python also has cross-platform No previous knowledge about Python is required, but in who are running numerical simulations as part of their sci-
support for most operating system and file management such a short course it will be an advantage to have some fa- entific work.
tasks. This tutorial presents concepts and software that miliarity with basic Python syntax. Newcomers to Python
will give the scientist adaptable, powerful, and efficient should, however, be able to get an overview of what the
tools. language can be used for and how the technical solutions to
various problems look like.

Course contents
The tutorial starts with a crash course on basic Python syn-
tax and programming. Then we cover simple (“Matlab-
style”) numerical computing with matrices and vectors us-
ing the Numerical Python package. Combination of Python
and Fortran, C, or C++ for increased performance is also
discussed. In particular we show how conveniently Python
integrates with Fortran using the F2PY tool. An overview
of plotting and visualization packages callable from Python
is also given. Furthermore, we discuss high-level parallel
computing using the PyPar module. Computational effi-
n
t ho
Py
in
g
tin
pu
m
Co
ce
an
rm
rfo
Pe
gh
Hi

You might also like