stfc / PSyclone

Domain-specific compiler and code transformation system for Finite Difference/Volume/Element Earth-system models in Fortran
BSD 3-Clause "New" or "Revised" License
107 stars 28 forks source link

Improved compilation support for testing #314

Open hiker opened 5 years ago

hiker commented 5 years ago

We are getting many different compilation tests in our PSyclone test cases: OpenMP, openacc, opencl (maybe even MPI, though at this stage it appears that this is mostly in the infrastructure library?).

Some of these option need special compiler flags, that might interfere with each other (e.g. can we provide flags for openmp, openacc, and opencl at the same time??), or might need to call a different compiler.

How are we going to support compilation tests in the long term? We obviously don't want to run all test three times (once with openmp, once with openacc, once with opencl).

I open the discussion here - let's first define what we want to be able to do, then how to conveniently specify this :)

arporter commented 3 years ago

I've come back to this while reviewing #1368 as Aidan is implementing support for OpenMP tasking.

At the moment we only support --compileopencl which enables compilation-testing of OpenCL-specific (Fortran) code. Ideally, we would also support compilation testing with OpenACC and OpenMP enabled (potentially simultaneously but that's not an immediate requirement). Possibly we need a way of specifying that a test should e.g. be tested with OpenMP enabled. A config file for the various options sounds like a good idea as otherwise there's a lot of typing to be done on the command line. However, it would be good to allow the command line to override the config settings if the developer wants to fine-tune a particular option.