Pyccel, a Fortran static compiler for scientific High-Performance Computing


Upvotes: DownVotes:
Age: a year     Page Views: 86
Votes / View: 12    Wilson Score: 0.21

*Pyccel* is a new **static compiler** for Python that uses **Fortran**as backend language while enabling High-Performance Computing **HPC**capabilities.Fortran is a computer language for scientific programming that istailored for efficient run-time execution on a wide variety ofprocessors. Even if the *2003* and *2008* standards added majorimprovements like *OOP, Coarrays, Submodules, do concurrent* , etc ...they are not covered by all available compilers. Moreover, the Fortrandeveloper still suffers from the lack of **meta-programming** comparedto **C++** ones. Therefore, it is more and more difficult for appliedmathematicians and computational physicists to write applications at the*state of art* (targeting CPUs, GPUs, MICs) while implementingcomplicated algorithms or numerical schemes.Pyccel can be used in two cases:In order to achieve the second point, we developed an internal DSL for*types* and *macros*. The later is used to map sentences based on*mpi4py* , *scipy.linalg.blas or lapack* onto the appropriate calls inFortran. Moreover, two parsers, for *OpenMP* and *OpenACC* , were addedtoo, allowing for explicit parallelism through the use of pragmas.Last but not least, Pyccel is an extension of **Sympy**. Actually, itconverts a Python code to symbolic expressions-trees, from a Full SyntaxTree ( *RedBaron* ), then annotates the new AST using types or differentsettings provided by the user.In this talk, after a brief description of Pyccel, I will show differentapplications including Finite Elements (1d, 2d, 3d), Semi-Lagrangianschemes (4d), Kronecker linear solvers, diagnostics for 5D kineticsimulations and Machine Learning for Partial Differential Equations.