• 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,742 enrolled on this course

Zeros and ones in top of supercomputer
  • Get access to 1,000's of courses
  • Learn at your own pace
  • Digital certificate when eligible
  • Long term access to this course
  • Learn at your own pace
  • Printed and digital certificates when eligible - great for career learners
  • Course access expires 9 Sep 2022
  • Limited learning time
  • Excludes certificates and tests

Find out more about how to join this course

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

When would you like to start?

Start straight away and join a global classroom of learners. If the course hasn’t started yet you’ll see the future date listed below.

  • Available now

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.

Recommended

Ways to learn

Buy this course

Subscribe to Unlimited

Join with limited access

Choose the best way to learn for you!

$84

One-off payment

$27.99/month

Automatically renews

Free

Unlock your expertiseAccess thousands of coursesTry this course - with limits
Access to this courseticktickLimited to 4 weeks
Access to ALL eligible coursescrosstickcross
Learn at your own paceticktickcross
Discuss your learning in commentstickticktick
Certificate when you're eligiblePrinted and digitalDigital onlycross
Buy this course

Ways to learn

Subscribe to Unlimited to access this course and thousands of other short courses or buy just this course for extra benefits. Or, join with limited access.

Subscribe to Unlimited

$27.99/month

Automatically renews

Access thousands of courses

  • Access to this course
  • Access to ALL eligible short courses
  • Learn at your own pace
  • Discuss your learning in comments
  • Digital certificate when you're eligible

Buy this course

$84

One-off payment

Unlock your expertise

  • Access to this course
  • Learn at your own pace
  • Discuss your learning in comments
  • Printed and digital certificate when you’re eligible

Join with limited access

Free

Try before you buy

  • Limited access to course content for 4 weeks

Find out more about certificates, Unlimited or buying a course (Upgrades)

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.