Skip to content

Commit 86aa115

Browse files
authored
.
1 parent 87a0cbb commit 86aa115

File tree

1 file changed

+104
-0
lines changed

1 file changed

+104
-0
lines changed

docs/Installation/Installations/index.rst

Lines changed: 104 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -143,3 +143,107 @@ This guide explains how to install Xmipp on High-Performance Computing (HPC).
143143
144144
145145
After completing these steps, Xmipp should be successfully installed and configured on your HPC environment. But in any case you can `contact us <https://i2pc.github.io/docs/contact.html#contact-us>`__ for advice or support.
146+
147+
148+
Xmipp on MareNostrum5 cluster; a successful Installation
149+
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
150+
151+
.. note::
152+
153+
The following is a user-contributed installation report from MareNostrum5 (BSC-CNS, Barcelona),
154+
which may serve as a helpful reference when installing Xmipp on similar HPC systems.
155+
156+
157+
This is a summary of the steps followed to successfully install Xmipp on the **MareNostrum5** cluster.
158+
Due to the restricted environment (no outgoing requests allowed), some manual pre-fetching and
159+
modification of build scripts were required.
160+
161+
**Fetch Phase (local, in `xmipp` folder)**
162+
163+
.. code-block:: bash
164+
165+
mkdir build
166+
cd build
167+
168+
# Clone required dependencies into a separate folder
169+
mkdir _deps
170+
cd _deps
171+
git clone https://github.com/MartinSalinas98/libcifpp.git
172+
mv libcifpp libcifpp-src
173+
git clone https://github.com/google/googletest.git
174+
mv googletest googletest-src
175+
176+
# Patch source file to avoid valarray constexpr issues
177+
nano libcifpp-src/include/cif++/point.hpp
178+
# -> Comment out lines 324–331
179+
# -> Replace line 333 with:
180+
# value_type length = std::sqrt(q.a*q.a+q.b*q.b+q.c*q.c+q.d*q.d);
181+
182+
# Clone additional dependencies
183+
cd ..
184+
git clone https://github.com/HiPerCoRe/cuFFTAdvisor.git
185+
git clone https://github.com/cossorzano/libsvm.git
186+
git clone https://github.com/vit-vit/CTPL.git
187+
188+
**Disable Auto-Fetching (local)**
189+
190+
191+
Edit the CMake fetch scripts to disable online fetching:
192+
193+
.. code-block:: bash
194+
195+
cd ../cmake
196+
197+
# Edit fetch_cifpp.cmake
198+
nano fetch_cifpp.cmake
199+
# -> Comment out GIT_REPOSITORY and GIT_TAG lines
200+
# -> Add `POPULATED TRUE`
201+
202+
# Repeat the same pattern for the following files:
203+
nano fetch_googletest.cmake
204+
nano fetch_ctpl.cmake
205+
nano fetch_cuFFTAdvisor.cmake
206+
nano fetch_libsvm.cmake
207+
208+
**Prepare Environment (remote, on MareNostrum5)**
209+
210+
211+
Load required modules:
212+
213+
.. code-block:: bash
214+
215+
module load intel
216+
module load mkl
217+
module load python
218+
module load cmake
219+
module load openmpi/4.1.5-gcc
220+
module load eigen/3.3.4-gcc-ompi
221+
module load boost/1.84.0-gcc-ompi
222+
module load nvidia-hpc-sdk
223+
module load hdf5/1.10.11-nvidia-nvhpcx
224+
module load sqlite3/3.45.2-gcc
225+
module load fftw/3.3.10-gcc-ompi
226+
module load java-openjdk/22.0.1
227+
228+
Set the Eigen path:
229+
230+
.. code-block:: bash
231+
232+
export Eigen3_DIR=/apps/ACC/EIGEN/3.3.4/GCC/OPENMPI/share/eigen3/cmake
233+
234+
**Installation (remote)**
235+
236+
237+
Launch the build process:
238+
239+
.. code-block:: bash
240+
241+
./xmipp
242+
243+
**Remarks**
244+
245+
- MareNostrum5 blocks all outgoing HTTP(S) requests, so **all dependencies must be fetched locally and transferred manually** to the build environment.
246+
- The module configuration is critical and may vary depending on cluster policies.
247+
- Patching `libcifpp` was necessary to resolve `constexpr`/`valarray` issues during compilation.
248+
249+
We hope this helps others attempting to install Xmipp on similar restricted HPC environments!

0 commit comments

Comments
 (0)