Merge branch 'beyn_pureblas'
[qpms.git] / README.Triton.md
blobcba4321d60d5bab296aa3c5e914801aa4d2704b7
1 Notes on installing and running qpms on Triton
2 ==============================================
4 Running anything in a cluster environment can cause some unexpected problems.
5 With these notes, one should be able to run qpms successfully on Aalto's Triton.
7 The main problem is that it is often not completely trivial to ensure 
8 the mutual compatibility of various libraries and tools on which qpms depends.
10 ## Triton+anaconda
11 ### Installing qpms with anaconda
13 This section shows how to use qpms in an anaconda virtual environment.
14 First, we purge the modules to ensure that no other other conflicting python 
15 instances are loaded.
16 Then we load an anaconda3 module.
17 ```
18 module purge
19 module load anaconda3
20 ```
21 Next, conda needs to infect our shell with some code in order to work properly.
22 (If you use a different shell than bash, modify the following command 
23 accordingly.)
24 ```
25 conda init bash
26 ```
27 This adds several lines to `~/.bashrc` (or elsewhere, depending on the shell).
28 Then we might be required to restart the shell.
30 Next, we create and activate a virtual environment to be used with qpms.
31 It will be called `trqpms` throughout this document.
32 We will also need to have `cython` installed before even trying to install qpms.
33 ```
34 conda create trqpms
35 conda activate trqpms
36 conda install cython
37 ```
39 Moreover, we need to load the GCC and gsl modules.  GCC has to be loaded *after*
40 loading anaconda3 and activating the conda virtual environment, otherwise
41 anaconda will try to use its own (likely broken) compiler when installing qpms.
42 And we also need cmake for building amos.
43 Lastly, we save the list of loaded modules for later use as `qpms_conda`.
44 ```
45 module load gsl
46 module load GCC
47 module load cmake
48 module save qpms_conda
49 ```
51 From now on, we need to be in the qpms source root directory.
52 ```
53 cd /path/to/qpms
54 ```
56 Now it's time to build `amos`. First, we clean all the files previously
57 created by `cmake` (if needed). This is to ensure that `cmake` uses the same
58 `gfortran` that is in the current `PATH`; otherwise, `cmake` might use some
59 Fortran compiler detected earlier (`cmake` apparently does not update
60 that information) and that might later cause mismatch between
61 libgfortran versions.
63 ```
64 rm -r CMakeFiles CMakeCache.txt
65 cmake .
66 make clean
67 make amos
68 ```
69 Cmake builds in other directories are not supported right now, as qpms setup
70 scripts now expects certain amos files at fixed relative paths. Therefore 
71 the `.` in `cmake .`.
73 And finaly, build qpms.
74 ```
75 python3 setup.py install
76 ```
78 At this point, qpms should be installed successfully. If not, this document
79 needs updates. 
81 ### Running qpms with anaconda
83 After installing the qpms python module, one should be able to import it and to 
84 use the scripts in the misc directory in the same shell session used 
85 for installing qpms.
87 To use qpms also later, one has to restore the environment, i.e. load the same
88 modules and activate the anaconda virtual environment.
89 ```
90 module restore qpms_conda
91 conda activate trqpms
92 ```