Das MKL-Modul wurde beim Versuch, den Atomate2-Lithium-Einfügungsworkflow auf VASP auszuführen, nicht gefundenPython

Python-Programme
Anonymous
 Das MKL-Modul wurde beim Versuch, den Atomate2-Lithium-Einfügungsworkflow auf VASP auszuführen, nicht gefunden

Post by Anonymous »

Ich führe einen Atomate2-Workflow für die Lithiumeinfügung in mein Material auf Bridges2 aus, aber VASP läuft überhaupt nicht. Ich verwende atomate0.0.22 in Python3.10, da 0.0.23 Probleme mit Python3.11 und einer Pymatgen-Bibliothek hatte. Ich habe eine lange Reihe von Modulproblemen durchgemacht, aber jetzt stecke ich fest, weil ich das richtige MKL-Modul habe, aber es heißt, MKL wurde nicht gefunden und VASP läuft überhaupt nicht (keine vasprun.xml). Ich bin relativ neu in der Welt der Computer-Workflows und bin mir daher sicher, dass ich irgendwo einen Fehler gemacht habe, aber die letzten Tage damit verbracht habe, ihn erfolglos zu beheben. Nachfolgend finden Sie einige Fehlerbehebungen, die ich ausprobiert habe, und Informationen zu Modulen, falls diese bei der Lösung des Problems helfen.
Mein Python-Code:

Code: Select all

#!/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()
Mein Jobskript ist:

Code: Select all

#!/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.py
Fehlerdatei:

vasp_std: Fehler beim Laden gemeinsam genutzter Bibliotheken: libmkl_intel_lp64.so.1: Gemeinsam genutzte Objektdatei kann nicht geöffnet werden: Keine solche Datei oder kein solches Verzeichnis

Pfade, die die fehlende Fehlerdatei enthalten:

Code: Select all

/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.so
Slurm.out-Dateiausschnitt:

Code: Select all

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.xml
Modulprobleme in der Umgebung:

Code: Select all

[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 found
Oben sind weitere nicht gefundene libmkl-Module aufgeführt. Ich habe versucht, das geladene Modul wie vorgeschlagen in Intel-ICC zu ändern, aber das ist unbekannt und gibt einen Fehler aus. Wenn ich die Modulliste überprüfe, erhalte ich Folgendes:

Code: Select all

[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.0
Mehrere mkl aus verschiedenen Jahren, aber das andere 2023 mkl-Modul wird automatisch geladen (ich kann nicht herausfinden, woher) und vielleicht ist das die Ursache des Problems? Ich stecke seit fast einer Weile fest und versuche, das Problem zu beheben.
Jede Hilfe oder jeder Ratschlag zur Fehlerbehebung wäre dankbar.

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post