Skip to content

ELPA

A publicly available library that provides highly efficient and highly scalable direct eigensolvers for symmetric (hermitian) matrices.


ELPA requires an environment module

In order to use ELPA, you must first load the appropriate environment module:

module load gnu openmpi

Supported Compilers and Modules#

To compile and use ELPA on the RCC HPC systems, load one of the following compiler and MPI module combinations:

  • Intel Compilers

    • module load intel openmpi
    • module load intel mvapich/2.3.5
  • GNU Compilers

    • module load gnu openmpi
    • module load gnu mvapich/2.3.5

Example: Running an ELPA Test Program#

Get the Code#

Download the example file with the following command:

wget https://docs.rcc.fsu.edu/software/elpa/test_real_example.f90

This is a simple example program that demonstrates how to use the ELPA library.

Load Modules#

Load one of the module combinations listed above. For example:

module load gnu openmpi

Compile#

Compile the Fortran example using:

mpifort test_real_example.f90 -o test_real_example.x -lelpa -lscalapack

Create Submit Script#

Save the following SLURM batch script to submit_elpa.sh:

#!/bin/bash
#SBATCH -A TestELPA
#SBATCH -n 12
#SBATCH -A backfill
#SBATCH -t 00:10:00

ml purge
ml gnu openmpi  # Or whichever module set you used to compile

srun test_real_example.x

Submit the job using:

sbatch submit_elpa.sh

Expected Output#

Check the resulting slurm.out file. A successful run will include the following:

  • Past BLACS_Gridinfo.
  • Past scalapack descriptor setup.
  • Random matrix block has been set up. (only processor 0 confirms this step)
  • Entering one-step ELPA solver ...
  • One-step ELPA solver complete.