ORCA

ORCA to pakiet wykorzystujący do obliczeń metody ab initio, funkcjonałów gęstości (DFT) oraz metody półempiryczne (SCF-MO). Służy m.in. do przeprowadzania optymalizacji geometrii oraz przewidywania parametrów spektroskopowych na różnych poziomach.

ORCA w CI TASK

  • Aktualnie zainstalowane wersje: 6.1.0, 6.0.1
  • Miejsce instalacji: Tryton Plus
  • Autor: Frank Neese, MPI for Chemical Energy Conversion
  • Dokumentacja: na stronie twórców
  • Licencja: akademicka, darmowa (wymagana jest rejestracja)
  • Strona domowa aplikacji: ORCA, FAccTs

Uwagi dotyczące uruchamiania pakietu:

  • ORCA jest zainstalowana w ogólnym katalogu, ale dostęp aplikacji jest przydzielany dopiero po zaakceptowaniu warunków licencji (przynajmniej przez lidera grupy); w tym celu należy należy dokonać rejestracji na forum, a następnie przesłać nam kopię listu od ORCA Team z informacją o dokonaniu rejestracji i zgodzie na warunki licencji

Program ORCA generuje dużą liczbę plików tymczasowych i bardzo intensywnie korzysta z katalogu roboczego, dlatego sposób uruchamiania obliczeń ma duży wpływ na stabilność i wydajność pracy całego klastra.
W naszych, wewnętrznych testach dla cząsteczki benzenu zaobserwowaliśmy, że prowadzenie obliczeń w lokalnym tmpfs znacząco poprawia czas wykonania i ogranicza obciążenie współdzielonych zasobów dyskowych, a obliczenia powyżej 16 rdzeni praktycznie się nie skalują.
W związku z powyższym prosimy użytkowników programu ORCA o uruchamianie obliczeń zgodnie z poniższymi zasadami:

  • Obliczenia z użyciem ORCA należy prowadzić na jednym nodzie.
  • Katalogiem roboczym obliczeń powinien być lokalny tmpfs, czyli katalog /tmp na nodzie obliczeniowym.
  • Po zakończeniu obliczeń należy skopiować potrzebne pliki wynikowe do katalogu projektu.
  • W przypadku gdy lokalny tmpfs jest zbyt mały dla danego zadania, obliczenia możńa prowadzić na zasobach scratch.
  • Należy deklarować sensowną liczby procesów/rdzeni która jest optymalna dla danego przypadku obliczeniowego.

Opis dostępnych przestrzeni dyskowych znajduje się tutaj: przestrzen-dyskowa

Na klastrze Tryton Plus nody CPU różnią się wyłącznie ilością pamięci RAM: 192 GB lub 384 GB. Dla obliczeń, przy których potrzebujemy większy /tmp, należy jawnie określić zapotrzebowanie na pamięć w skrypcie Slurm, np.:

#SBATCH --mem=380000M

Wtedy Slurm skieruje zadanie na node spełniający wymagania pamięciowe, co jest szczególnie istotne przy używaniu /tmp, ponieważ jego rozmiar jest powiązany z ilością RAM na nodzie. Przykładowy skrypt Slurm uruchamiający ORCA na 16 rdzeniach z katalogiem roboczym w tmpfs:

#!/bin/bash
#SBATCH --partition batch
#SBATCH --job-name=orca-tmpfs
#SBATCH -N 1
#SBATCH --ntasks-per-node=16
#SBATCH --time=24:00:00

set -euo pipefail

module load trytonp/orca

SUBMIT_DIR="${SLURM_SUBMIT_DIR:-$PWD}"
JOB_BASENAME="input"
WORK_DIR="/tmp/${USER}/orca-${SLURM_JOB_ID:-manual}-${JOB_BASENAME}"

mkdir -p "$WORK_DIR"
cp "$SUBMIT_DIR/${JOB_BASENAME}.inp" "$WORK_DIR/"

cd "$WORK_DIR"
"$ORCA_DIR/orca" "${JOB_BASENAME}.inp" > "${JOB_BASENAME}.out"

cp "${JOB_BASENAME}.out" "$SUBMIT_DIR/"
cp "${JOB_BASENAME}.gbw" "$SUBMIT_DIR/" 2>/dev/null || true
cp "${JOB_BASENAME}.xyz" "$SUBMIT_DIR/" 2>/dev/null || true
cp "${JOB_BASENAME}.hess" "$SUBMIT_DIR/" 2>/dev/null || true
cp "${JOB_BASENAME}.engrad" "$SUBMIT_DIR/" 2>/dev/null || true

rm -rf "$WORK_DIR"