Skip to main content

No project description provided

Project description

Pyccel : write Python code, get Fortran speed

Linux unit tests MacOSX unit tests Windows unit tests Anaconda-Linux Anaconda-Windows Intel unit tests codacy DOI

Pyccel stands for Python extension language using accelerators.

The aim of Pyccel is to provide a simple way to generate automatically, parallel low level code. The main uses would be:

  1. Convert a Python code (or project) into a Fortran or C code.
  2. Accelerate Python functions by converting them to Fortran or C functions.

Pyccel can be viewed as:

  • Python-to-Fortran/C converter
  • a compiler for a Domain Specific Language with Python syntax

Pyccel comes with a selection of extensions allowing you to convert calls to some specific Python packages to Fortran/C. The following packages will be (partially) covered:

  • numpy
  • scipy

Pyccel's acceleration capabilities lead to much faster code. Comparisons of Python vs Pyccel or other tools can be found in the benchmarks repository. The results for the devel branch currently show the following performance on Python 3.10: Pyccel execution times for devel branch

If you are eager to try Pyccel out, we recommend reading our quick-start guide.

Citing Pyccel

If Pyccel has been significant in your research, and you would like to acknowledge the project in your academic publication, we would ask that you cite the following paper:

Bourne, Güçlü, Hadjout and Ratnani (2023). Pyccel: a Python-to-X transpiler for scientific high-performance computing. Journal of Open Source Software, 8(83), 4991, https://doi.org/10.21105/joss.04991

The associated bibtex can be found here.

Installation

Pyccel has a few system requirements to ensure that the system where it is installed is capable of compiling Fortran code. These requirements are detailed in the documentation. Once all requirements are satisfied, the simplest way to install Pyccel is using PyPI. Simply run:

python3 -m pip install --user pyccel

Alternative installation methods such as installing from source, or installing with a docker are described in the documentation.

Contributing

We welcome any and all contributions.

There are many ways to help with the Pyccel project which are more or less involved. A summary can be found in the documentation.

We can also be contacted via the Pyccel Discord Server.

User Documentation

Developer Documentation

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pyccel-1.12.1.tar.gz (663.9 kB view details)

Uploaded Source

Built Distribution

pyccel-1.12.1-py3-none-any.whl (500.5 kB view details)

Uploaded Python 3

File details

Details for the file pyccel-1.12.1.tar.gz.

File metadata

  • Download URL: pyccel-1.12.1.tar.gz
  • Upload date:
  • Size: 663.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.10.12

File hashes

Hashes for pyccel-1.12.1.tar.gz
Algorithm Hash digest
SHA256 d8104234d54df22e93e61cd2c48f59e43f08706c9b2a72ea881ad50b5d0ec9d5
MD5 15900d65b8b4194c409c12a911696156
BLAKE2b-256 ad76dbc2e8aefab51927da9284b27e0b127e1bb0450caf8d6d40e258b42af9fe

See more details on using hashes here.

File details

Details for the file pyccel-1.12.1-py3-none-any.whl.

File metadata

  • Download URL: pyccel-1.12.1-py3-none-any.whl
  • Upload date:
  • Size: 500.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.10.12

File hashes

Hashes for pyccel-1.12.1-py3-none-any.whl
Algorithm Hash digest
SHA256 44b6d6969ac4d4b3bb97e084d77b798a7750ef119cc9d6eee18d53bf3ca6b3d8
MD5 22f7a4e7696e182fdeb801b0f02650a2
BLAKE2b-256 05aa4d0f9e2f469a86e12a42a3eedbe792cabf56fee927d863132b94272b9525

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page