• Partnership for Advanced Computing in Europe (PRACE)

Python in High Performance Computing

Learn how to analyse Python programmes and identify performance barriers to help you work more efficiently.

6,957 enrolled on this course

Zeros and ones in top of supercomputer
  • Duration

    4 weeks
  • Weekly study

    4 hours

Speed up Python programs using optimisation and parallelisation techniques

The Python programming language is popular in scientific computing because of the benefits it offers for fast code development. The performance of pure Python programs is often suboptimal, but there are ways to make them faster and more efficient.

On this course, you’ll find out how to identify performance bottlenecks, perform numerical computations efficiently, and extend Python with compiled code. You’ll learn various ways to optimise and parallelise Python programs, particularly in the context of scientific and high performance computing.

Download video: standard or HD

Skip to 0 minutes and 11 seconds Python programming language is one of the most popular choices in many areas of software development. Python´s success is due to its many built-in features together with an extensive standard library and a large collection of third party libraries that can significantly improve the productivity of the programmer. However, the performance of pure Python programs is sometimes sub-optimal. In this course, we´ll teach you effective ways to improve performance of Python programs through optimisation and parallelisation. As an illustration we use a simple Python program which calculates the image of a Mandelbrot set, a complex fractal pattern. We’ll show how to analyse its performance bottlenecks, and then look at how to improve the performance of the serial program.

Skip to 1 minute and 2 seconds Finally, we’ll discuss parallel programming with Python and show how to further improve the performance of the program by using multiple CPU cores in parallel. Please join us and learn how to boost up the performance of Python programs!

What topics will you cover?

  • Performance challenges of Python programming language
  • Performance analysis of Python programs
  • Efficient numerical calculations with NumPy
  • Using compiled code with Python
  • Interfacing Python to libraries written in other programming languages
  • Parallel programming with Python

Learning on this course

On every step of the course you can meet other learners, share your ideas and join in with active discussions in the comments.

What will you achieve?

By the end of the course, you‘ll be able to...

  • Improve performance of Python programs
  • Apply parallelisation techniques using Python
  • Calculate numerical expressions efficiently in Python
  • Identify performance bottlenecks in Python programs
  • Develop higher performance extensions to Python

Who is the course for?

The course is designed for Python programmers who want to speed up their codes. You should be familiar with the basics of the Python programming language.

What software or tools do you need?

The software needed is in the virtual machine that you will need to download and run to complete this course. You will also need a local machine with 15GB free disk space and 2GB RAM.

Optionally, you can receive instructions to install the Python environment utilised in the course (Python, Numpy, Cython, mpi4py).

Who will you learn with?

Expert on high-performance computing working at CSC.fi

Senior application scientist at the Finnish national supercomputing center CSC - IT Center for Science.

Who developed the course?

Partnership for Advanced Computing in Europe (PRACE)

The Partnership for Advanced Computing in Europe (PRACE) is an international non-profit association with its seat in Brussels.

Learning on FutureLearn

Your learning, your rules

  • Courses are split into weeks, activities, and steps to help you keep track of your learning
  • Learn through a mix of bite-sized videos, long- and short-form articles, audio, and practical activities
  • Stay motivated by using the Progress page to keep track of your step completion and assessment scores

Join a global classroom

  • Experience the power of social learning, and get inspired by an international network of learners
  • Share ideas with your peers and course educators on every step of the course
  • Join the conversation by reading, @ing, liking, bookmarking, and replying to comments from others

Map your progress

  • As you work through the course, use notifications and the Progress page to guide your learning
  • Whenever you’re ready, mark each step as complete, you’re in control
  • Complete 90% of course steps and all of the assessments to earn your certificate

Want to know more about learning on FutureLearn? Using FutureLearn

Learner reviews

Learner reviews cannot be loaded due to your cookie settings. Please and refresh the page to view this content.

Do you know someone who'd love this course? Tell them about it...

You can use the hashtag #HPCPython to talk about this course on social media.