adda icon indicating copy to clipboard operation
adda copied to clipboard

Packages of ADDA

Open myurkin opened this issue 4 years ago • 5 comments

It should be possible to provide ADDA packages for Homebrew and other package managers (in time, maybe even for Windows). Would be great for more broader adoption of ADDA.

GitHub have recently introduced functionality to make it more convenient. Probably, it can be done with Github Actions.

This issue seems to be blocked with #114 . Also, we need to consider carefully which compilation options should be used for which package. And should it be one package or, e.g., three (seq, mpi, ocl).

myurkin avatar Dec 02 '20 05:12 myurkin

With respect to #114, it should be reconsidered which of that is really important. Probably the most important is use of configure or cmake.

/cc @alkichigin

myurkin avatar Apr 24 '21 07:04 myurkin

Another potential issue is related to using Fortran on MacOS. Currently, gcc from Homebrew includes gfortran but the gcc itself remains a symlink to clang. This is good for performance, but using clang as a linker ignores gcc standard folders (where gfortran libraries are located).

Thus, we may need to locate this folder (for a specific gcc version) inside Homebrew and specify it during compilation, like

make ... FORT_LIB_PATH=/opt/homebrew/Cellar/gcc/11.2.0/lib/gcc/11

but the path should be built from some internal Homebrew parameters.

Potentially relevant issue is https://github.com/Homebrew/homebrew-core/pull/84245

myurkin avatar Nov 03 '21 15:11 myurkin

Concerning different adda modes (seq, mpi, ocl) with different dependences. The preliminary idea is to have following packages (a -> b means a depends on b):

  • adda -> gcc, (gfortran), fftw
  • adda-mpi -> adda-seq, openmpi (or mpich)
  • adda-ocl -> adda-seq, clfft
  • adda-all -> adda, adda-mpi, adda-ocl

adda will also compile most of tools in misc/, while adda-mpi - tools in misc/near_field.

But it is still worth studying the examples of other packages, where different modes are used.

myurkin avatar Nov 03 '21 15:11 myurkin

This is also related with Continuous Integration (CI) on GitHub. Probably the latter can be implemented independently, but it would be much easier if the packages are already available.

myurkin avatar Feb 16 '22 02:02 myurkin

While a comprehensive solution of this issue is non-trivial some partly solutions (e.g., seq version for Unix) is much easier. This can be straightforwardly implemented (together with git clone ...) in other codes that depend on ADDA. See, e.g., https://gitlab.com/k.czajkowski/addatmatrix/ . Potentially, some of such codes can further be used as a base for comprehensive solution.

Another workaround is employed by ADDA GUI - https://github.com/adda-team/adda-gui, but it is not fully automated.

myurkin avatar Feb 08 '24 19:02 myurkin