Бенчмарк и оценка времени

Обзор

Библиотека включает систему оценки времени, которая помогает предсказать, сколько времени займут расчеты ORCA. Это необходимо для планирования крупномасштабных расчетов дескрипторов QSAR.

Как это работает

Система оценки времени использует бенчмарк-расчет для калибровки производительности на вашей машине:

  1. Бенчмарк-расчет: Выполняется одноточечный расчет на бензоле (C₆H₆) для измерения:

    • Количества базисных функций

    • Времени одного SCF-цикла

    • Общего времени расчета

  2. Формула масштабирования: Для новых молекул система оценивает время, используя:

    • Масштабирование по размеру молекулы (O(N³.⁵) для DFT расчетов)

    • Тип метода (SP, Opt, Freq)

    • Количество процессоров

  3. Масштабирование параметров: Система автоматически корректирует для разных:

    • Количество процессоров (accounts for parallel efficiency)

    • Базисных наборов (масштабирует по размеру)

    • Функционалов (учитывает вычислительную стоимость)

Зачем это нужно

  • Планирование: Оценка общего времени для больших наборов данных

  • Управление ресурсами: Эффективное распределение вычислительных ресурсов

  • Отслеживание прогресса: Мониторинг прогресса расчетов

  • Оптимизация: Выбор оптимальных параметров для вашего оборудования

Запуск бенчмарка

Через CLI

orca_descriptors run_benchmark --working_dir ./calculations

Бенчмарк использует бензол в качестве стандартной тестовой молекулы и сохраняет результаты в .orca_benchmark.json.

Через Python

from orca_descriptors import Orca

orca = Orca(working_dir="./calculations")
benchmark_data = orca.run_benchmark()

print(f"Время SCF-цикла: {benchmark_data['scf_time']:.2f} секунд")
print(f"Количество базисных функций: {benchmark_data['n_basis']}")

Оценка времени расчета

Через CLI

orca_descriptors approximate_time --molecule CCO --method_type Opt

Это оценивает время без запуска реального расчета.

Через Python

from orca_descriptors import Orca
from rdkit.Chem import MolFromSmiles, AddHs

orca = Orca(working_dir="./calculations")
mol = AddHs(MolFromSmiles("CCO"))

estimated_time = orca.estimate_calculation_time(mol)
print(f"Оценка времени: {estimated_time:.2f} секунд")

Автоматическое масштабирование параметров

Система автоматически масштабирует данные бенчмарка для разных параметров. Вам не нужно перезапускать бенчмарк, если вы меняете:

  • Количество процессоров: Автоматически учитывает эффективность параллелизации

  • Базисный набор: Масштабирует на основе размера базисного набора (O(N³.⁵))

  • Функционал: Корректирует для относительной вычислительной стоимости

Пример: Если ваш бенчмарк был запущен с 1 процессором и def2-SVP, вы можете оценить время для 4 процессоров и def2-TZVP без перезапуска бенчмарка.

Расположение файла бенчмарка

Данные бенчмарка сохраняются в:

<working_dir>/.orca_benchmark.json

Этот файл содержит:

  • Использованные функционал и базисный набор

  • Количество процессоров

  • Количество базисных функций

  • Время SCF-цикла

  • Общее время расчета

Вы можете использовать этот файл в разных рабочих директориях, если используете то же оборудование и версию ORCA.