Skip to content

sourceryinstitute/FEATS

Repository files navigation

Sourcery Institute

Framework for Extensible Asynchronous Task Scheduling (FEATS)

GitHub license GitHub release Download as PDF

Overview | Getting Started | Documentation | Dependencies | Acknowledgments | Donate

Overview

FEATS is a project to develop a parallel Fortran 2018 asynchronous, task-scheduling framework for use in a range of applications. The goal is that an application developer need only define their tasks and dependencies between them, and the framework takes care of executing the in an efficient manner and performing the communications necessary to provide the output of previous tasks to the next task(s) that need it.

Getting Started

Please see the example directory for a demonstration use case in which FEATS traverses a DAG that describes the module dependencies within FEATS itself and reports on task completion at each step. In this simple example, the task completion is simply printing what file could have been compiled at the corresponding step. No actual compiling happens, but this use case describes what would happen if FEATS were to be used to enable the Fortran Package Manager fpm to perform parallel builds.

With fpm, the GNU Fortran compiler (gfortran), and OpenCoarrays installed, build FEATS and run the example program by executing the following command in a bash-like shell:

git clone https://github.com/sourceryinstitute/FEATS
cd FEATS
fpm run --example --compiler caf --runner "cafrun -n 4"

Change 4 above to the number of images that you would like to launch in parallel.

Documentation

Please visit the FEATS GitHub Pages site to see HTML documentation generated with ford.

Dependencies

The fpm.toml manifest describes the FEATS user and developer dependencies and directs fpm to download and build the dependency packages automatically.

Testing

To build and execute the FEATS test suite, run the following command in a bash-like shell:

fpm test --compiler caf --runner "cafrun -n 4"

Please report any test failures or other issues.

Acknowledgments

We gratefully acknowledge support from NASA Langley Research Center under contract number 80NSSC20P2246. NASA logo

Donate

If you find this software useful, please consider donating code or currency to aid in development efforts.


GitHub forks GitHub stars GitHub watchers