https://github.com/stfc/psyclone

PSyclone is a source-to-source Fortran compiler designed to programmatically optimise, parallelise and instrument HPC applications via user-provided transformation scripts.

https://github.com/stfc/psyclone

Science Score: 67.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
    Found 3 DOI reference(s) in README
  • Academic publication links
    Links to: zenodo.org
  • Committers with academic emails
    10 of 39 committers (25.6%) from academic institutions
  • Institutional organization owner
    Organization stfc has institutional domain (www.scd.stfc.ac.uk)
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (17.2%) to scientific vocabulary

Keywords

compiler finite-difference finite-elements finite-volume fortran hacktoberfest high-performance-computing optimization parallel-computing python

Keywords from Contributors

scheduler earth-science build-tools hpsf radiuss spack conda workflow-engine workflow-management
Last synced: 6 months ago · JSON representation

Repository

PSyclone is a source-to-source Fortran compiler designed to programmatically optimise, parallelise and instrument HPC applications via user-provided transformation scripts.

Basic Info
  • Host: GitHub
  • Owner: stfc
  • License: bsd-3-clause
  • Language: Python
  • Default Branch: master
  • Homepage:
  • Size: 345 MB
Statistics
  • Stars: 120
  • Watchers: 10
  • Forks: 31
  • Open Issues: 723
  • Releases: 7
Topics
compiler finite-difference finite-elements finite-volume fortran hacktoberfest high-performance-computing optimization parallel-computing python
Created almost 9 years ago · Last pushed 6 months ago
Metadata Files
Readme Changelog Contributing License

README.md

PSyclone logo

DOI Build Status codecov

PSyclone is a source-to-source Fortran compiler designed to programmatically optimise, parallelise and instrument HPC applications via user-provided transformation scripts. By encapsulating the performance-portability aspects (e.g. whether to parallelise with OpenMP or OpenACC), these scripts enable a separation of concerns between the scientific implementation and the optimisation choices. This allows each aspect to be explored and developed largely independently. Additionally, PSyclone supports the development of kernel-based Fortran-embedded DSLs following the PSyKAl model developed in the GungHo project.

PSyclone is currently used to support the LFRic mixed finite-element PSyKAl DSL for the UK MetOffice's next generation modelling system and the GOcean finite-difference PSyKAl DSL for a prototype 2D ocean modelling system. It is also used to insert GPU offloading directives into existing directly-addressed MPI applications such as the NEMO ocean model.

For more detailed information see the PSyclone Documentation.

Installation

You can install the latest release of psyclone from PyPI by using:

$ pip install psyclone

or, if you want an isolated installation in a python virtual environment:

$ python -m venv <virtual_env_name>
$ source <virtual_env_name>/bin/activate
$ pip install psyclone

Alternatively, you can install the latest upstream version of psyclone by cloning this repository and using:

$ pip install .

or in developer (editable) mode using

$ pip install -e .

PSyclone is also available in the Conda and Spack package managers.

For more information about the installation process see the Getting Going. section of the User Guide.

Structure

Path | Description ------------------- | ----------- bin/ | Top-level driver scripts for PSyclone and the PSyclone kernel tool changelog | Information on changes between releases doc/ | Documentation source using Sphinx examples/ | Simple examples README.md | This file src/psyclone | The Python source code src/psyclone/tests/ | Unit and functional tests using pytest tutorial/practicals | Hands-on exercises using a local installation of PSyclone

Owner

  • Name: UKRI Science and Technology Facilities Council
  • Login: stfc
  • Kind: organization
  • Location: UK

Committers

Last synced: about 2 years ago

All Time
  • Total Commits: 14,821
  • Total Committers: 39
  • Avg Commits per committer: 380.026
  • Development Distribution Score (DDS): 0.673
Past Year
  • Commits: 1,871
  • Committers: 13
  • Avg Commits per committer: 143.923
  • Development Distribution Score (DDS): 0.668
Top Committers
Name Email Commits
Andrew Porter a****r@s****k 4,841
rupertford r****d@s****k 2,410
Joerg Henrichs h****g@g****m 2,399
Sergi Sisó s****g@g****m 1,659
TeranIvy T****y 1,493
andrewporter a****r@4****1 576
Aidan Chalk 3****4 400
rupertford r****d@4****1 263
Sergi Siso s****o@s****k 155
Nuno Miguel Nobre n****e@s****k 152
Lottie Turner c****r@m****k 119
oakley.brunt o****t@v****k 81
Nuno Miguel Nobre n****e@s****k 47
Joe Wallwork j****k@m****k 44
Aidan Chalk a****k@s****k 27
andrewcoughtrie 2****e 26
Christopher Maynard c****d@r****k 25
Andy Porter a****r 17
AdamVoysey 4****y 17
christophermaynard c****d@m****k 13
pelson p****b@g****m 9
andrewcoughtrie a****e@m****k 8
Drew Silcock d****k@s****k 6
matthewhambley m****y@4****1 5
Joerg Henrichs j****g@l****e 4
Dennis Sergeev d****v@g****m 4
Scott Wales s****s@u****u 3
Scott Wales s****s@o****u 3
Fock, Bjoern b****k@m****k 2
Joerg Henrichs j****s@b****u 2
and 9 more...

Issues and Pull Requests

Last synced: 6 months ago

All Time
  • Total issues: 633
  • Total pull requests: 510
  • Average time to close issues: 12 months
  • Average time to close pull requests: about 1 month
  • Total issue authors: 40
  • Total pull request authors: 24
  • Average comments per issue: 2.51
  • Average comments per pull request: 4.97
  • Merged pull requests: 324
  • Bot issues: 0
  • Bot pull requests: 0
Past Year
  • Issues: 182
  • Pull requests: 184
  • Average time to close issues: 26 days
  • Average time to close pull requests: 15 days
  • Issue authors: 25
  • Pull request authors: 18
  • Average comments per issue: 0.93
  • Average comments per pull request: 3.49
  • Merged pull requests: 96
  • Bot issues: 0
  • Bot pull requests: 0
Top Authors
Issue Authors
  • arporter (161)
  • hiker (121)
  • sergisiso (101)
  • LonelyCat124 (65)
  • rupertford (52)
  • oakleybrunt (20)
  • TeranIvy (17)
  • DrTVockerodtMO (15)
  • jwallwork23 (13)
  • mo-joshuacolclough (9)
  • hbrunie (8)
  • schreiberx (6)
  • JulienRemy (5)
  • nmnobre (5)
  • mo-lottieturner (5)
Pull Request Authors
  • arporter (116)
  • sergisiso (86)
  • hiker (67)
  • LonelyCat124 (60)
  • oakleybrunt (34)
  • rupertford (33)
  • nmnobre (21)
  • schreiberx (14)
  • JulienRemy (13)
  • TeranIvy (13)
  • jwallwork23 (12)
  • mo-lottieturner (9)
  • mo-alistairp (6)
  • DrTVockerodtMO (5)
  • victoria-atkinson (4)
Top Labels
Issue Labels
bug (137) enhancement (107) in progress (90) LFRic (90) PSyIR (64) NEMO (48) NG-ARCH (37) PSyData (30) adjoint (28) question (18) discussion (17) Release (14) socrates (14) good first issue (7) NEMOVAR (6) um_physics (6) PSyKE (5) GOcean (5) duplicate (4) ECMWF (4) tutorial (4) ready to be merged (3) Task-based (3) CROCO (3) WW3 (3) wontfix (2) to do next (2) NAME (1) 3rd party bug workaround (1) under review (1)
Pull Request Labels
ready to be merged (298) LFRic (97) enhancement (62) under review (53) bug (38) Release (37) PSyIR (30) in progress (29) NEMO (24) ready for review (23) adjoint (18) reviewed with actions (17) NG-ARCH (16) PSyData (8) Task-based (6) GOcean (4) discussion (4) NEMOVAR (4) Blocked (4) wontfix (4) CROCO (2) WW3 (2) um_physics (2) tutorial (2) socrates (1) PSyKE (1) SIR (1)

Packages

  • Total packages: 2
  • Total downloads:
    • pypi 164 last-month
  • Total dependent packages: 1
    (may contain duplicates)
  • Total dependent repositories: 1
    (may contain duplicates)
  • Total versions: 20
  • Total maintainers: 3
pypi.org: psyclone

PSyclone - a compiler for Finite Element/Volume/Difference DSLs in Fortran

  • Versions: 18
  • Dependent Packages: 1
  • Dependent Repositories: 1
  • Downloads: 164 Last month
Rankings
Dependent packages count: 4.8%
Stargazers count: 7.5%
Forks count: 7.7%
Average: 12.1%
Downloads: 18.9%
Dependent repos count: 21.5%
Maintainers (2)
Last synced: 6 months ago
spack.io: py-psyclone

A source-to-source Fortran compiler designed to programmatically optimise, parallelise and instrument HPC applications (written in Fortran) via user- provided transformation scripts. Additionally, PSyclone supports the development of kernel-based, Fortran-embedded DSLs and is used in the UK Met Office's next-generation modelling system, LFRic.

  • Versions: 2
  • Dependent Packages: 0
  • Dependent Repositories: 0
Rankings
Dependent repos count: 0.0%
Stargazers count: 19.5%
Forks count: 20.8%
Average: 24.4%
Dependent packages count: 57.3%
Maintainers (1)
Last synced: 6 months ago

Dependencies

.github/workflows/compilation.yml actions
  • actions/checkout v3 composite
  • mstachniuk/ci-skip v1 composite
.github/workflows/lfric_test.yml actions
  • actions/checkout v3 composite
  • mstachniuk/ci-skip v1 composite
.github/workflows/nemo_tests.yml actions
  • actions/checkout v3 composite
  • mstachniuk/ci-skip v1 composite
.github/workflows/python-package.yml actions
  • actions/checkout master composite
  • actions/checkout v3 composite
  • actions/setup-python v4 composite
  • codecov/codecov-action v3 composite
  • gaurav-nelson/github-action-markdown-link-check v1 composite
  • mstachniuk/ci-skip v1 composite
.github/workflows/repo-sync.yml actions
  • actions/checkout master composite
  • ad-m/github-push-action master composite
doc/developer_guide/pip_requirements.txt pypi
  • sphinx <7 development
  • sphinx_rtd_theme * development
  • sphinxcontrib.bibtex * development
doc/psyad/user_guide/pip_requirements.txt pypi
  • sphinx *
  • sphinxcontrib.bibtex *
doc/reference_guide/pip_requirements.txt pypi
  • autoapi *
  • sphinx <7
  • sphinx_rtd_theme *
  • sphinxcontrib.bibtex *
doc/user_guide/pip_requirements.txt pypi
  • sphinx <7
  • sphinx_rtd_theme *
  • sphinxcontrib.bibtex *
requirements.txt pypi
  • graphviz *
  • termcolor *
setup.py pypi
  • configparser *
  • fparser ==0.1.3
  • jsonschema ==3.0.2
  • pyparsing *
  • sympy *