-
Notifications
You must be signed in to change notification settings - Fork 57
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Packages of ADDA #282
Comments
With respect to #114, it should be reconsidered which of that is really important. Probably the most important is use of /cc @alkichigin |
Another potential issue is related to using Fortran on MacOS. Currently, gcc from Homebrew includes gfortran but the Thus, we may need to locate this folder (for a specific gcc version) inside Homebrew and specify it during compilation, like
but the path should be built from some internal Homebrew parameters. Potentially relevant issue is Homebrew/homebrew-core#84245 |
Concerning different adda modes (
adda will also compile most of tools in But it is still worth studying the examples of other packages, where different modes are used. |
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. |
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 Another workaround is employed by ADDA GUI - https://github.com/adda-team/adda-gui, but it is not fully automated. |
I would like to propose using Spack as a solution for managing dependencies and package installation. Spack is a flexible, open-source package manager designed for scientific computing and HPC environments. It supports complex dependency trees, multiple compiler/toolchain versions, and environment isolation. Current StatusI successfully tested Spack on a virtual machine with sudo rights, where the installation process, environment setup, and dependency resolution worked seamlessly. However, while testing on a user machine without sudo rights, I encountered an issue during the Basic Process (Without Spack Configuration Files or ADDA Package Yet)Below is the step-by-step process: # Install the Spack requirements
sudo apt update
sudo apt install -y bzip2 ca-certificates file g++ gcc gfortran git gzip lsb-release patch python3 tar unzip xz-utils zstd
# Clone the Spack repository
git clone -c feature.manyFiles=true --depth=2 https://github.com/spack/spack.git
# Shell support for Spack commands
. spack/share/spack/setup-env.sh
# Clone the ADDA repository
git clone https://github.com/adda-team/adda.git
cd adda
# Create the virtual environment
spack env create adda-env
spack env activate adda-env
# Add packages to the environment
spack add gcc fftw openmpi ocl-icd clfft
# Install the packages
spack install
# Load packages into your current shell session for use
spack load gcc
spack load fftw
spack load openmpi
spack load ocl-icd
spack load clfft
# Build ADDA
make seq
make mpi
make ocl
# Run ADDA
./adda
mpirun -np 4 ./adda_mpi
./adda_ocl |
To assist with understanding and replicating the setup process, I've created a wiki page that outlines the steps for using Spack to install and manage ADDA as a package. The guide includes managing variants ( I still need to resolve the |
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).
The text was updated successfully, but these errors were encountered: