ARTICLE AD BOX
I am running an atomate2 workflow for lithium insertion into my material on bridges2 but VASP is not running at all. I am running atomate0.0.22 in python3.10 since 0.0.23 had issues with python3.11 and a pymatgen library. I got through a long string of module issues but now am stuck because I have the correct mkl module but it says mkl not found and VASP doesn't run at all (no vasprun.xml). I am relatively new to computational workflows so I am sure I made a mistake somewhere but have been spending the past several days unsuccessfully resolving it. Some troubleshooting I've tried and module info are below if it helps figure out the issue.
My python code:
#!/jet/home/PATH """ Automated Li insertion workflow for MOFs using Atomate2 v0.0.22. """ from pathlib import Path from pymatgen.core import Structure from atomate2.vasp.sets.core import RelaxSetGenerator, StaticSetGenerator from atomate2.vasp.jobs.core import RelaxMaker, StaticMaker from atomate2.vasp.flows.electrode import ElectrodeInsertionMaker from jobflow import run_locally from atomate2.vasp.jobs.base import BaseVaspMaker # ============================================================ # VASP RUN COMMAND # ============================================================ BaseVaspMaker.run_vasp_cmd = ["vasp_std"] # ============================================================ # USER SETTINGS # ============================================================ STRUCTURES_DIR = Path(".") ENCUT = 520 EDIFF = 1e-5 KPOINTS_DENSITY = 300 LDAUU = {"Mn": 3.9, "Fe": 5.3, "Co": 3.32, "Ni": 6.2, "Cu": 4.0} LDAUJ = {el: 0.0 for el in LDAUU} MAGMOM = {"Mn": 5.0, "Fe": 5.0, "Co": 3.0, "Ni": 2.0, "Cu": 1.0, "N": 0.6, "C": 0.6, "O": 0.6, "Li": 1.0, "Na": 1.0} IONS_TO_INSERT = ["Li"] N_STEPS = 10 INSERTIONS_PER_STEP = 1 # ============================================================ # INPUT SETS # ============================================================ relax_set = RelaxSetGenerator( user_incar_settings={ "ENCUT": ENCUT, "EDIFF": EDIFF, "ISIF": 3, "ISPIN": 2, "LDAU": True, "LDAUTYPE": 2, "LDAUU": LDAUU, "LDAUJ": LDAUJ, "MAGMOM": MAGMOM, }, user_kpoints_settings={"grid_density": KPOINTS_DENSITY}, user_potcar_functional="PBE", ) static_set = StaticSetGenerator( user_incar_settings={ "ENCUT": ENCUT, "EDIFF": EDIFF, "IBRION": -1, "NSW": 0, "ISPIN": 2, "LDAU": True, "LDAUTYPE": 2, "LDAUU": LDAUU, "LDAUJ": LDAUJ, "MAGMOM": MAGMOM, }, user_kpoints_settings={"grid_density": KPOINTS_DENSITY}, user_potcar_functional="PBE", ) # ============================================================ # MAKERS # ============================================================ relax_maker = RelaxMaker(input_set_generator=relax_set) static_maker = StaticMaker(input_set_generator=static_set) # ============================================================ # MAIN WORKFLOW # ============================================================ def main(): flows = [] cif_files = sorted(STRUCTURES_DIR.glob("*.cif")) if not cif_files: print(f"No CIF files found in {STRUCTURES_DIR}. Exiting.") return for cif_file in cif_files: print(f"Preparing workflow for {cif_file.name}") try: structure = Structure.from_file(cif_file) except Exception as e: print(f"Failed to read {cif_file}: {e}") continue for ion in IONS_TO_INSERT: insertion_maker = ElectrodeInsertionMaker( relax_maker=relax_maker, static_maker=static_maker, name=f"{ion} insertion: {cif_file.stem}" ) try: flow = insertion_maker.make( structure, inserted_element=ion, n_steps=N_STEPS, insertions_per_step=INSERTIONS_PER_STEP ) if flow is not None: flows.append(flow) else: print(f"Warning: flow is None for {cif_file.name} ({ion})") except Exception as e: print(f"Failed to create workflow for {cif_file.name} ({ion}): {e}") if not flows: print("No valid workflows created. Exiting.") return print(f"Running {len(flows)} workflows locally...") run_locally(flows, create_folders=True) print("Workflows executed. Check job_* folders for outputs.") # ============================================================ # ENTRY POINT # ============================================================ if __name__ == "__main__": main()My job script is:
#!/bin/bash #SBATCH -N 1 #SBATCH -n 128 #SBATCH -p RM #SBATCH -A PROJECT NAME #SBATCH --job-name=AtomateMOF #SBATCH -t 48:00:00 #SBATCH --mail-type=ALL #SBATCH --mail-user=EMAIL module purge module load intel-oneapi module load mkl/2020.4.304 module load VASP/6.4.1-intel # Diagnostics module list which vasp_std ldd $(which vasp_std) | grep -i mkl ldd $(which vasp_std) | grep "not found" echo "LD_LIBRARY_PATH: $LD_LIBRARY_PATH" source ~/atomate2/miniconda3/etc/profile.d/conda.sh conda activate atomate2 export OMP_NUM_THREADS=1 export PMG_VASP_PSP_DIR=/PATH_TO_POTCARs export VASP_CMD="srun --mpi=pmi2 vasp_std" echo "Running Atomate2 workflow..." export JOBFLOW_JOB_DIR_FORMAT="{job.name}" python atomatecode.pyError File:
vasp_std: error while loading shared libraries: libmkl_intel_lp64.so.1: cannot open shared object file: No such file or directoryPaths containing the missing error file:
/opt/packages/oneapi/v2023.2.0/mkl/2023.2.0/lib/intel64/libmkl_intel_lp64.so /opt/packages/oneapi/v2023.2.0/mkl/2023.2.0/lib/intel64/libmkl_intel_lp64.so.2 /opt/packages/oneapi/v2023.2.0/intelpython/python3.9/envs/2023.2.0/lib/libmkl_intel_lp64.so /opt/packages/oneapi/v2023.2.0/intelpython/python3.9/envs/2023.2.0/lib/libmkl_intel_lp64.so.2 /opt/packages/oneapi/v2023.2.0/intelpython/python3.9/lib/libmkl_intel_lp64.so /opt/packages/oneapi/v2023.2.0/intelpython/python3.9/lib/libmkl_intel_lp64.soSlurm.out file snippet:
FileNotFoundError: [Errno 2] No such file or directory: '/PATH/atomate2/job_2026-01-16-19-08-04-366717-37923/vasprun.xml' Validation failed: VasprunXMLValidator 2026-01-16 14:08:14,928 INFO relax 0/10 failed with exception: ... Failed to load vasprun.xmlModule issues in environment:
[snakaza@bridges2-login012 atomate2]$ module purge [snakaza@bridges2-login012 atomate2]$ module load intel/2021.10.0 Lmod Warning: The "intel" and "intelmpi" module names are being split into more granular modules starting with version 2023.2.0 of Intel OneAPI. Components are now available in separate, correspondingly named modules: intel-compiler (Intel's modern LLVM-based compilers: icx, icpx, ifx, dpcpp) intel-icc (Intel's classic compilers: icc, icpc, ifort) intel-mpi (mpicc, mpicxx, mpiexec, mpirun) intel-advisor (advisor, advixe-*) intel-debugger (gdb-oneapi) intel-inspector (inspxe-*) intel-vtune (amplxe-*, vtune-*) intel-ippcp-intel64 (libcrypto_*, libippcp) etc. A comprehensive "intel-oneapi" module is also provided to load the full suite. Please update your scripts to load "intel-compiler", "intel-icc", "intel-mpi", and/or other tools under the new module names instead of "intel" and "intelmpi". While processing the following module(s): Module fullname Module Filename --------------- --------------- intel/2021.10.0 /opt/modulefiles/production/intel/2021.10.0.lua [snakaza@bridges2-login012 atomate2]$ module load mkl/2020.4.304 [snakaza@bridges2-login012 atomate2]$ module load intel-mpi/2021.10.0 [snakaza@bridges2-login012 atomate2]$ module load VASP/6.4.1-intel [snakaza@bridges2-login012 atomate2]$ ldd $(which vasp_std) | grep "not found" libmkl_intel_lp64.so.1 => not found libmkl_intel_thread.so.1 => not found libmkl_core.so.1 => not found libmkl_scalapack_lp64.so.1 => not found libmkl_blacs_intelmpi_lp64.so.1 => not foundAbove has additional not found libmkl modules. I've tried changing the loaded module to intel-icc as it suggests, but that is unknown and gives an error. When I check the module list I get:
[snakaza@bridges2-login012 atomate2]$ module list Currently Loaded Modules: 1) intel-advisor/2023.2.0 6) intel-compiler/2023.2.1 11) intel-dpct/2023.2.0 16) intel-ipp-intel64/2021.9.0 21) mkl/2020.4.304 2) intel-ccl/2021.10.0 7) intel-dal/2023.2.0 12) intel-dpl/2022.2.0 17) intel-itac/2021.10.0 22) intel-mpi/2021.10.0 3) intel-tbb/2021.10.0 8) intel-debugger/2023.2.0 13) intel-icc/2023.2.1 18) intel-mkl/2023.2.0 23) VASP/6.4.1-intel 4) intel-compiler-rt/2023.2.1 9) intel-dev-utilities/2021.10.0 14) intel-inspector/2023.2.0 19) intel-vtune/2023.2.0 5) intel-oclfpga/2023.2.1 10) intel-dnnl/2023.2.0 15) intel-ippcp-intel64/2021.8.0 20) intel/2021.10.0Multiple mkl from different years but the other 2023 mkl module is automatically loaded (I can't figure out from where) and maybe that is what's causing the issue? I have been stuck trying to troubleshoot and figure this out for nearly
Any help or troubleshooting advice would be appreciated.
