- added task rendering instead of molecule
- fied a lot of errors
- changes experiment page to show generic experiment info
This commit is contained in:
2026-05-25 12:55:46 +03:00
parent 26623dc2c1
commit f3372eb0ad
43 changed files with 5541 additions and 6908 deletions

View File

@@ -1,4 +1,13 @@
import { Box, Divider, TableOfContents, Title } from "@mantine/core";
import {
Box,
Divider,
TableOfContents,
Title,
Text,
List,
Code,
Anchor,
} from "@mantine/core";
import "./DocumentationPage.css";
import { Helmet } from "react-helmet";
@@ -6,15 +15,19 @@ function DocumentationPage() {
return (
<>
<Helmet>
<title>Documentation | QMolSim</title>
<title>Документация | QMolSim</title>
<meta
name="description"
content="See the documentation on how to setup and use the qunatum computational system"
content="Полное руководство пользователя по системе распределенного квантово-химического расчета QMolSim."
/>
</Helmet>
<Title order={1} className="docTitle">
Документация
Руководство пользователя
</Title>
<Text size="sm" c="dimmed" mb="md">
Автоматизированная система распределенного расчета энергии основного
состояния молекул
</Text>
<Divider />
<div className="DocumentationPage">
<Box className="tableOfContents" visibleFrom="md">
@@ -26,24 +39,291 @@ function DocumentationPage() {
minDepthToOffset={0}
depthOffset={20}
scrollSpyOptions={{
selector: "section h1, h2",
selector: "section h1, section h2, section h3",
}}
className=""
getControlProps={({ data }) => ({
onClick: () =>
data
.getNode()
.scrollIntoView({ behavior: "smooth", block: "center" }),
.scrollIntoView({ behavior: "smooth", block: "start" }),
children: data.value,
})}
/>
</Box>
<div className="contents">
<section id="introduction" style={{ height: 1000 }}>
{/* ================= 1 ВВЕДЕНИЕ ================= */}
<section id="introduction">
<Title order={1}>1. Введение</Title>
<Title order={2} mt="md" id="application-area">
1.1 Область применения
</Title>
<Text>Требования настоящего документа применяются при:</Text>
<List>
<List.Item>предварительных комплексных испытаниях;</List.Item>
<List.Item>опытной эксплуатации;</List.Item>
<List.Item>приемочных испытаниях;</List.Item>
<List.Item>промышленной эксплуатации.</List.Item>
</List>
<Title order={2} mt="md" id="capabilities">
1.2 Краткое описание возможностей
</Title>
<Text>
Автоматизированная система распределенного расчета энергии
основного состояния молекул с помощью квантовых алгоритмов
представляет собой распределенный веб-сервис, предназначенный для
выполнения ресурсоемких квантово-химических расчетов с
использованием гибридной архитектуры, состоящей из центрального
сервера и распределенных квантовых симуляторов.
</Text>
<Title order={3} mt="sm" id="cap-mgmt">
Управление командной работой
</Title>
<Text>
Пользователи могут создавать команды, приглашать других
исследователей, назначать права доступа.
</Text>
<Title order={3} mt="sm" id="cap-nodes">
Подключение вычислительных систем
</Title>
<Text>
Исследователи регистрируют в системе свои вычислительные узлы. Для
каждого узла исследователь задает максимальное количество кубитов,
а также предоставляет доступ командам на использование устройства.
</Text>
<Title order={3} mt="sm" id="cap-experiments">
Создание и запуск экспериментов
</Title>
<Text>
В рамках команды пользователь создает эксперимент (набор задач для
разных молекул). Для каждой задачи загружается или редактируется
структура молекулы в формате XYZ, задаются квантово-химические
параметры.
</Text>
<Title order={3} mt="sm" id="cap-vqe">
Распределенные вычисления VQE
</Title>
<Text>
При запуске эксперимента система автоматически распределяет задачи
по доступным вычислительным узлам с учетом их ограничений по числу
кубит. В процессе расчета на сервер передаются промежуточные
результаты.
</Text>
<Title order={3} mt="sm" id="cap-fault">
Отказоустойчивость и восстановление
</Title>
<Text>
Каждый вычислительный узел каждые 5 секунд отправляет сигнал о
своей работоспособности. При выходе узла из строя незавершенная
задача автоматически перенаправляется в очередь и назначается на
другой узел с сохранением промежуточных весов оптимизации.
</Text>
<Title order={3} mt="sm" id="cap-vis">
Визуализация молекул
</Title>
<Text>
Для каждой задачи доступна интерактивная 3D-визуализация молекулы
в шаростержневой модели.
</Text>
<Title order={3} mt="sm" id="cap-import">
Импорт молекулярных данных
</Title>
<Text>
Система поддерживает преобразование молекул в требуемый формат из
большинства существующих химических форматов.
</Text>
</section>
<section id="quick-start" style={{ height: 1000 }}>
<Title order={2}>1.1 Быстрое начало</Title>
{/* ================= 2 НАЗНАЧЕНИЕ И УСЛОВИЯ ================= */}
<section id="purpose-conditions" style={{ marginTop: "2rem" }}>
<Title order={1}>2. Назначение и условия применения</Title>
<Title order={2} mt="md" id="purpose">
2.1 Назначение системы
</Title>
<Text>
Система предназначена для автоматизированного распределенного
расчета энергии основного состояния молекул с использованием
квантового алгоритма VQE. Она обеспечивает создание команд
исследователей с настройкой прав доступа, автоматическое
распределение вычислительных задач между доступными узлами,
мониторинг состояния вычислений и восстановление прогресса расчета
при сбое отдельных вычислительных систем. Применение системы
позволяет повысить скорость проведения квантово-химических
расчетов и снизить нагрузку на пользователя по управлению
вычислительным процессом. Система ориентирована на специалистов в
области квантовой химии и вычислительных технологий.
</Text>
<Title order={2} mt="md" id="tech-reqs">
2.2 Требования к техническим средствам
</Title>
<Title order={3} mt="sm" id="client-browser">
Клиент-браузер:
</Title>
<List>
<List.Item>Оперативная память от 4 Гб;</List.Item>
<List.Item>Свободное пространство на диске от 2 Гб;</List.Item>
<List.Item>Процессор 4-ядерный с частотой от 2 ГГц;</List.Item>
<List.Item>Скорость подключения в интернет от 50 Мб/c;</List.Item>
<List.Item>
Наличие манипулятора "мышь" или аналогичного устройства для
взаимодействия с интерфейсом;
</List.Item>
<List.Item>Наличие Клавиатуры.</List.Item>
</List>
<Title order={3} mt="sm" id="client-compute">
Клиент-ВС:
</Title>
<List>
<List.Item>Оперативная память от 8 Гб;</List.Item>
<List.Item>Свободное пространство на диске от 5 Гб;</List.Item>
<List.Item>
Процессор 8-ядерный с частотой от 2-4,4 ГГц;
</List.Item>
<List.Item>Скорость подключения в интернет от 50 Мб/с;</List.Item>
<List.Item>
Наличие манипулятора "мышь" или аналогичного устройства для
взаимодействия с интерфейсом;
</List.Item>
<List.Item>Наличие Клавиатуры.</List.Item>
</List>
<Title order={2} mt="md" id="software-reqs">
2.3 Требования к программным средствам
</Title>
<Title order={3} mt="sm" id="sw-browser">
Клиент-браузер:
</Title>
<Text>
Браузер (Safari 18.1.1, Яндекс Браузер 25.2.1, Google Chrome
110.0.5481.100)
</Text>
<Title order={3} mt="sm" id="sw-compute">
Клиент-ВС:
</Title>
<List>
<List.Item>ОС Windows 10, Windows 11, MacOS, Linux</List.Item>
<List.Item>
Браузер (Safari 18.1.1, Яндекс Браузер 25.2.1, Google Chrome
110.0.5481.100)
</List.Item>
<List.Item>Docker</List.Item>
<List.Item>Docker-compose v2</List.Item>
</List>
<Title order={2} mt="md" id="exec-conditions">
3. Условия выполнения программы
</Title>
<Text>
Для работы системы требуется веб-браузер, поддерживающий
современные функции JavaScript (Google Chrome версии 110 и выше,
Яндекс Браузер версии 25.2.1 и выше, Safari версии 18.1.1 и выше).
Доступ к системе осуществляется через веб-интерфейс по адресу,
предоставленному администратором. Для работы вычислительных узлов
дополнительно требуется установленный Docker и Docker Compose v2
на каждой подключаемой вычислительной системе. Необходимо наличие
постоянного сетевого подключения к серверу для всех
взаимодействующих компонентов системы.
</Text>
</section>
{/* ================= 4 ВЫПОЛНЕНИЕ ПРОГРАММЫ ================= */}
<section id="execution" style={{ marginTop: "2rem" }}>
<Title order={1}>4. Выполнение программы</Title>
<Title order={2} mt="md" id="install">
4.1 Инсталяция/деинсталяция
</Title>
<Text>
Клиент-браузер инсталляции и деинсталляции не требуется, для
работы необходимо только наличие на системе совместимого браузера.
</Text>
<Title order={3} mt="sm" id="install-compute">
Для инсталляции клиента-ВС:
</Title>
<List>
<List.Item>
На системе необходимо наличие docker и docker-compose v2
</List.Item>
<List.Item>
Необходимо скачать контейнер с помощью команды:{" "}
<Code>docker pull git.deowl.ru/vkrb/client:0.1.0</Code>
</List.Item>
<List.Item>
Затем скачать файл docker-compose с помощью команды:{" "}
<Code>
curl -O
"https://git.deowl.ru/vkrb/local_quantum_simulator/raw/branch/main/docker-compose.yml"
</Code>
</List.Item>
<List.Item>
Наконец, в той же папке необходимо создать файл переменных среды
с названием ".env" и содержимым:
<Code block mt="xs">
{`PORT=5001
STORAGE_PATH="/storage"
RABBITMQ_HOST=rabbit.deowl.ru
RABBITMQ_PORT=5672
KEYCLOAK_URL=https://quantum-auth.deowl.ru
KEYCLOAK_REALM_NAME=quant_sim-realm
KEACLOAK_CLIENT_ID=local_quantum_sim
QUANTUM_BACKEND_URL=https://quantum.deowl.ru`}
</Code>
</List.Item>
</List>
<Title order={3} mt="md" id="uninstall-compute">
Для деинсталляции клиента-ВС:
</Title>
<List>
<List.Item>
Удаляем файлы «docker-compose.yml», «.env» и папку
«localStorage» (при ее наличие)
</List.Item>
<List.Item>
Удаляем установленное изображение с помощью команды:{" "}
<Code>docker image rm git.deowl.ru/vkrb/client:0.1.0</Code>
</List.Item>
</List>
<Title order={2} mt="md" id="start-stop">
4.2 Запуск / Остановка программы
</Title>
<Text>
Клиент-браузер может быть открыт по ссылке:{" "}
<Anchor href="http://quantum.deowl.ru/">
http://quantum.deowl.ru/
</Anchor>
</Text>
<Text mt="sm">
Для запуска клиента-ВС необходимо выполнить команду, находясь в
папке с файлом «docker-compose.yml»:{" "}
<Code>docker compose up --d</Code>
</Text>
<Text mt="sm">
Для остановки клиента-ВС: <Code>docker compose down</Code>
</Text>
<Text mt="sm">
Для первичного подключения и мониторинга статуса клиента-ВС
необходимо открыть ссылку:{" "}
<Anchor href="http://localhost:5001/">
http://localhost:5001/
</Anchor>
</Text>
</section>
</div>
</div>