#SBATCH -A mendoza_q
#SBATCH --exclude=amr-163,amr-178,amr-179
this should submit to our queue, exclude your buyin nodes and flip the jobs to run in the general partition, avoiding incurring cpu.
This will download a Singularity Image to your current directory for EDMFT
singularity pull docker://haulek/edmft:amd64
This will load the image to the current session
singularity shell edmft_amd64.sif
Tutorial for MnO
http://hauleweb.rutgers.edu/tutorials/Tutorial1a.html
Tutorial for FeSe (superonductor)
Inside the shell, you can run eDMFT commands like you had a module/environment loaded. You can also run eDMFT via MPI from inside the container, but you need to set certain options, which you can do with:
echo "mpirun --mca btl '^openib' -n [number_of_processes]" > mpi_prefix.dat
#!/bin/bash --login
#SBATCH --job-name=eDMFT_MnO # Name of your job
#SBATCH --nodes=1 # Number of nodes
#SBATCH --ntasks-per-node=1 # Number of tasks (usually 1 for single-processor runs)
#SBATCH --cpus-per-task=1 # Number of CPU cores (adjust as needed)
#SBATCH --mem-per-cpu=4G # Memory per node (adjust as needed)
#SBATCH --time=02:00:00 # Wall clock time limit
#SBATCH --partition=your_partition # Specify the correct partition for your cluster
# --- Environment Setup ---
echo "Setting up the environment..."
# 1. Start with a clean slate. This is crucial to avoid conflicts.
# 2. Load the eDMFT module. This sets up paths for the compiled Fortran/C++ parts.
module purge
module load eDMFT/Oct-2024-intel-2023a
module load WIEN2k/23.2-intel-2023a
# 3. Manually FIX the incorrect WIEN_DMFT_ROOT set by the module.
# This is the temporary workaround until the HPC team fixes the module file.
export WIEN_DMFT_ROOT=/opt/software-current/2023.06/x86_64/generic/software/eDMFT/Oct-2024-intel-2023a
#export EBROOTEDMFT="/opt/software-current/2023.06/x86_64/generic/software/eDMFT/Oct-2024-intel-2023a/bin"
# 4. Activate YOUR personal Python virtual environment.
# This is the key step that provides the correct Python and packages like numba.
#echo "Activating Python virtual environment..."
#source ~/my-material-science-env/bin/activate
source ~/py36-edmft-env/bin/activate
# 5. (Optional but Recommended) Verify the environment is correct.
# This is very useful for debugging. Check the output file.
echo "--- Environment Verification ---"
echo "WIEN_DMFT_ROOT is: $WIEN_DMFT_ROOT"
echo "Which python: $(which python)"
echo "Which run_dmft.py: $(which run_dmft.py)"
echo "Python Version: $(python --version)"
echo "NumPy Version: $(python -c 'import numpy; print(numpy.__version__)')"
echo "----------------------------"
# --- Run the Calculation ---
echo "Starting eDMFT calculation..."
# Now, run your script. It will use the Python from your virtual environment.
run_dmft.py
echo "Calculation finished."
#!/bin/bash
set -e
# One OpenMP thread per MPI rank is correct for the CTQMC solver.
export OMP_NUM_THREADS=1
# Scratch for large Wien2k vector files. "." keeps them in the run directory,
# which is bound into the container and persists. For heavy I/O you may point
# this at the node-local disk instead (confirm the local path with ICER).
export SCRATCH="."
# Single-node MPI launch command consumed internally by run_dmft.py.
# --mca btl '^openib' disables the deprecated InfiniBand-verbs transport, which
# is unavailable/erroring inside the container; on one node OpenMPI uses shared
# memory. -n 192 fills every core of an amd24 node.
echo "mpirun --mca btl '^openib' -n 60" > mpi_prefix.dat
# Run the full DFT+embedded-DMFT charge-self-consistent loop.
run_dmft.py >& nohup.dat
Make sure that the number of cpus in your mpi command
echo "mpirun --mca btl '^openib' -n 60" > mpi_prefix.dat
matches what you request in slurm
#SBATCH --ntasks=60