Skip to content

Commit ae0b9a7

Browse files
committed
Typos
1 parent 0e9153d commit ae0b9a7

3 files changed

Lines changed: 12 additions & 9 deletions

File tree

.gitignore

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -200,3 +200,6 @@ skbuild/*
200200
# files from profiling
201201
*.lprof
202202
*Profiling*
203+
204+
# SLURM logs
205+
*dtsc*

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ In order to solve an eigenvalue problem, we considered multiple strategies.
3636
1. The most trivial one was to implement the power method in order to be able to compute (at least) the biggest eigenvalue. We then used `numba` to try and optimize it, but in this case just-in-time compilation was not extremely beneficial.The implementation of the power method is contained in `eigenvalues.py`.
3737
2. Lanczos + QR: this is an approach (tailored to the case of symmetric matrices) to compute *all* the eigenvalues and eigenvectors. Notice that, also in the case of the QR method,`numba` was not very beneficial in terms of speed-up, resulting in a pretty slow methodology. For this reason, we implemented the QR method in `C++` and used `pybind11` to expose it to `Python`. All the code written in `C++` can be found in `cxx_utils.cpp`.
3838
3. `CuPy` implementation of all of the above: we implemented all the above methodologies using `CuPy` to see whether using GPU could speed up computations. Since this was not the case, we commented all the lines of code involving `CuPy`, so that installation of the package is no longer required and we can use our code also on machines that do not have GPU.
39-
4. The core of the project is the implementation (as well as a generalization of the simplified case in which $\rho=\$ considered in our reference) of the _divide et implera_ method for the computation of eigenvalues of a symmetric matrix. Some helpers were originally written in `Python` and then translated to `C++` for efficiency reasons: their original implementation is in `zero_finder.py` and is still present in the project for testing purposes. The translated version can be found in `cxx_utils.cpp`. Instead, the implementation of the actual method to compute the eigenvalues starting from a tridiagonal matrix is contained in `parallel_tridiag_eigen.py` and makes use of `mpi4py`.
39+
4. The core of the project is the implementation (as well as a generalization of the simplified case in which $\rho=1$ considered in our reference) of the _divide et implera_ method for the computation of eigenvalues of a symmetric matrix. Some helpers were originally written in `Python` and then translated to `C++` for efficiency reasons: their original implementation is in `zero_finder.py` and is still present in the project for testing purposes. The translated version can be found in `cxx_utils.cpp`. Instead, the implementation of the actual method to compute the eigenvalues starting from a tridiagonal matrix is contained in `parallel_tridiag_eigen.py` and makes use of `mpi4py`.
4040

4141
# Results
4242
The results of the profiling (runtime vs matrix size, memory consumption, scalability, and so on) are discussed in detail in `Documentation.ipynb`.

shell/submit.sbatch

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,12 @@
11
#!/bin/bash
22

3-
#SBATCH --partition=gpu2
3+
#SBATCH --partition=regular1
44
#SBATCH --job-name=dtsc
55
#SBATCH --nodes=1
6-
#SBATCH --gpus=1
7-
#SBATCH --ntasks-per-node=1
8-
#SBATCH --gpus-per-task=1
6+
#SBATCH --ntasks=4
7+
#SBATCH --cpus-per-task=1
98
#SBATCH --mem=10000
10-
#SBATCH --time=12:00:00
9+
#SBATCH --time=06:00:00
1110
1211
#SBATCH --output=%x.o%j.%N
1312
#SBATCH --error=%x.e%j.%N
@@ -29,11 +28,12 @@ module load cmake/3.29.1
2928
module load intel/2021.2
3029
module load openmpi3/3.1.4
3130

31+
conda init
3232
conda activate devtools_scicomp
3333

3434
# Ranges over which we iterate
35-
n_processes=(1 2 4 8)
36-
matrix_sizes=(10 100 500 1000)
35+
n_processes=(1 2 4)
36+
matrix_sizes=(10 15 20)
3737

3838
last_dim="${matrix_sizes[-1]}"
3939
last_nproc="${n_processes[-1]}"
@@ -69,4 +69,4 @@ done
6969
# Restore the original config file
7070
mv ${CONFIG_FILE}.bak $CONFIG_FILE
7171

72-
echo "Experiment completed!"
72+
echo "Experiment completed!"

0 commit comments

Comments
 (0)