Skip to content

A source-to-source translator for OpenACC to OpenMP.

License

Notifications You must be signed in to change notification settings

naromero77/ACC2OMP

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

57 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ACC2OMP

Description

A Python script to facilitate source-to-source translation from OpenACC to OpenMP.

This tool was written to lower the barrier for Fortran software projects that have been using the OpenACC programming model and want to migrate to the OpenMP 4.5 programming model. For the most part, there is a 1-to-1 mapping between OpenACC directives and OpenMP directives with some exceptions.

Please note that is very much a work-in-progress (WIP) and has several known limitations documented below:

Usage

On the command line, type: ./acc2omp_converter.py filename.F90

The original file will be backed up to filename.F90.bak

A number of diagnostic output is written to the standard out. It can be surpressed by setting the debug = 0.

Known limitations

  • OpenACC -> OpenMP directive mapping must be explicitly available in a dictionary
  • OpenACC async is not handled properly because of fundamental differences between OpenACC and OpenMP.
  • Only handles Fortran
  • No unit tests
  • No enforcement of PEP8 formating on source code via CI

Funding

This research was supported by the Exascale Computing Project (17-SC-20-SC), a joint project of the U.S. Department of Energy’s Office of Science and National Nuclear Security Administration, responsible for delivering a capable exascale ecosystem, including software, applications, and hardware technology, to support the nation’s exascale computing imperative.

About

A source-to-source translator for OpenACC to OpenMP.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages