No project description provided
Project description
f2py-jit
Just-in-time compilation of Fortran code in Python via f2py.
Documentation
Quick start
Start from a piece of Fortran code.f90
subroutine hello()
print*, "Hello world!"
end subroutine
Compile the code, import it and execute it
from f2py_jit import jit
f90 = jit('code.f90')
f90.hello()
Do the same but from a python string containing the source block
source = """
subroutine hello()
print*, "Hello world!"
end subroutine
"""
f90 = jit(source)
f90.hello()
If the Fortran source contains multiple subroutines calling each other, f2py
will not perform interprocedural optimizations (at least not by default). f2py_jit
can inline the source code before compiling it, and you will get a performace boost [This feature is experimental]
f90 = jit('code.f90', inline=True)
Features
- Compilation of source blocks as python strings
- Caching of module builds across executions
- Optional inlining to improve performance (experimental)
Dependencies
- numpy
- Fortran compiler
Installation
From pip
pip install f2py-jit
From source
git clone https://framagit.org/coslo/f2py-jit.git
cd f2py_jit
make install
Credits
Part of this code is adapted from numpy.f2py
module by Pearu Peterson, in accordance with the NumPy license.
Authors
Daniele Coslovich: https://www.units.it/daniele.coslovich/
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distributions
Built Distribution
Hashes for f2py_jit-0.8.4-py2.py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 75daa25875989c7b97978431a245bc97e5a7cc08157d32c934cf90abf44b9a4f |
|
MD5 | 71162c5de2958dcf74a7b90dbd913772 |
|
BLAKE2b-256 | b6358484a286d13f6b4004943d9f64b33cc76a607fb3844c5b22b6d6fe959cb3 |