3.6 KiB
Software requirements
Operating system
Recommended operating system is Red Hat Enterprise Linux (RHEL) / Rocky Linux versions 8. For this operating system we provide RPMs with pre-built binaries to simplify deployment.
We do also operate one of the systems with Rocky 9 without issues. Running Jungfraujoch on Red Hat Enterprise Linux 7 is currently not tested and not recommended, but likely possible with providing some packages from external repositories. There are some limited tests with recent Ubuntu and Fedora distributions, though these are not systematic. Other linux platforms should work, but no tests were done so far.
Software dependencies
Required:
- C++20 compiler and C++20 standard library; recommended GCC 11+ or clang 14+ (Intel OneAPI, AMD AOCC)
- CMake version 3.21 or newer + GNU make tool
- zlib compression library
- EIGEN library (only on a compilation system)
Optional:
- CUDA compiler version 11 or newer - required for MX fast feedback indexer
- FFTW library - for indexing if GPU/CUDA is absent
- NUMA library - to pin threads to nodes/CPUs
- Node.js - to make frontend
- Qt version 6.8 (for jfjoch_viewer)
Automatically downloaded by CMake and statically linked:
- SLS Detector Package - see github.com/slsdetectorgroup/slsDetectorPackage
- Zstandard (Facebook) - see github.com/facebook/zstd
- Pistache webserver - see github.com/pistacheio/pistache
- Fast feedback indexer (Hans-Christian Stadler, PSI) - see github.com/paulscherrerinstitute/fast-feedback-indexer
- Catch2 testing library - see github.com/catchorg/Catch2
- HDF5 library - see github.com/HDFGroup/hdf5
- TIFF library - see gitlab.com/libtiff/libtiff
- JPEG library (preferably jpeg-turbo) - see github.com/libjpeg-turbo/libjpeg-turbo
- Ceres Solver library for least square optimization - see [http://ceres-solver.org/]
Please follow the link provided above to check for LICENSE file. Building code with dependencies above requires access from the build system to github.com.
Directly included in the repository:
- JSON parser/writer from N. Lohmann - see github.com/nlohmann/json
- Xilinx arbitrary precision arithmetic headers - see github.com/Xilinx/HLS_arbitrary_Precision_Types
- Bitshuffle filter from K. Masui - see github.com/kiyo-masui/bitshuffle
- Fast replacement for Bitshuffle pre-compression filter (Kal Cutter, DECTRIS) - see github.com/kalcutter/bitshuffle
- Tinycbor (Intel) - see github.com/intel/tinycbor
- LZ4 compression by Y.Collet - see github.com/lz4/lz4
- Spdlog logging library - see github.com/gabime/spdlog
- ZeroMQ library (through slsDetectorPackage) - see github.com/zeromq/libzmq
- Cpp-http library for HTTP - see github.com/yhirose/cpp-httplib
- Base64 decoder/encoder - see gist.github.com/tomykaira
- GEMMI library by Global Phasing - see github.com/project-gemmi/gemmi
For license check LICENSE file in respective directory