Python has become an accepted language to use for a variety of tasks. One of the uses today is for designing simulations and using in High Performance Computing (HPC) applications. One of the main features of Python is that it was designed for code readability, so that applications can be maintained and enhanced over time.
Python supports a number of programming models and is object oriented. Automatic memory management is included as part of the distribution, and contains a large and complete standard library. An added benefit of using Python is that it is very portable and can be used with many operating systems as well as modern, HPC-focused heterogeneous systems.
The Python programming environment was originally developed over 25 years ago and has been continually improved and expanded. While Python itself is open sourced, commercial compilers and tools exist that enable higher levels of productivity. Python has evolved over time to include scripting and features that may appeal to HPC developers.
Besides the usual C operators, Python contains exponential functions and a matrix multiply feature that is extremely useful in large scientific applications. In addition, Python has a extensive library of mathematical functions that can speed up development of large applications. For over a decade, Python has been one of the most popular programming languages, due to its flexibility and extensibility. There are many implementations and development environments that support Python.
In the HPC domain, Python can be used to develop a wide range of applications. While tight loops may still need to be coded in C or FORTRAN, Python can still be used. As more systems become available with coprocessors or accelerators, Python can be used to offload the main CPU and take advantage of the coprocessor. pyMIC is a Python Offload Module for the Intel Xeon Phi Coprocessor and is available at popular open source code repositories.