Skip to content

Specify requirements #352

@myurkin

Description

@myurkin

Specify requirements of ADDA in machine-readable format, e.g. requirements.txt. It is very relevant for semantic version control and packaging of ADDA. However, there are several complications (some of them mentioned in #282):

  • requirements are very heterogeneous:

    • other specific libraries (most simple)
    • language standard (C99), this relates to supported compilers, but not directly
    • parallel programming standards (MPI, OpenCL, others in the future), this relates to specific compilers/libraries
    • Makefile probably requires specific compilers, but is rather flexible to work in automated workflow with proper setting of environmental variables.
  • requirements depend on the compilation mode (many dependencies are optional):

    • three major modes (seq, mpi, ocl) have specific requirements
    • there are some optional features with special libraries (like, OCL_BLAS)
  • for some dependency we do not know the minimum supported version

    • they are probably too old to easily test it
    • for example, Makefile still tests for gcc version >= 4.8
    • it may be safer to specify the latest stable versions of the external libraries that are not further developed (like, FFTW and clFFT), and some relatively new version of gcc (but still the one that is almost guaranteed to be present (of this or newer version) in any environment. We can use time frame of 5-10 years. This will be a breaking change.

To conclude, we need to study best practices before starting working on it.

Metadata

Metadata

Assignees

Labels

DevOpsTesting, deployment, automationbreakingBreaking change (CLI, input & output files)comp-DocsRelated to documentationmaintainabilitySimplifies further code development (standardization, robustness)pri-MediumWorth assigning to a milestone

Type

No fields configured for Task.

Projects

No projects

Relationships

None yet

Development

No branches or pull requests

Issue actions