PolySimCIM
Эмулятор квантовых вычислений
Правообладатель: Российский квантовый центр (ООО «МЦКТ»)
Свидетельство о государственной регистрации программы для ЭВМ: №2021615790
    Основные функции
    Руководство пользователя
    Файлы примеров
    Возможные ошибки
    Техническая поддержка
    Основные функции

    Основным назначением программного эмулятора квантовых вычислений «PolySimCIM» является решение задач полиномиальной дискретной комбинаторной оптимизации при помощи программного аннилинга - симуляции работы оптического устройства «Когерентная Машина Изинга» и обобщенной для решения задач высоких порядков.

    Основной обеспечиваемый функционал
    Основным обеспечиваемым функционалом является решение задач квадратичной дискретной комбинаторной оптимизации с высокой скоростью и качеством решения.

    Доступ к решению предоставляется:
    • в составе облачной платформы квантовых вычислений QBoard
    • установка ПО в вычислительный кластер конечного клиента
      • рекомендуемая серверная часть:
        • наличие графических процессоров с поддержкой программно-аппаратной архитектуры параллельных вычислений CUDA
    Объем программы: ~ 3 КБ
    Языки программирования: Python

    Операционные системы, пригодные для выполнения программы (на данный момент поддерживаем):
    • Linux;
    • Windows;
    • MacOS.
      Руководство пользователя

      Установка необходимого программного обеспечения
      Для запуска программы PolySimCIM необходимо предварительно установить на компьютер следующее программное обеспечение:

      1. Интерпретатор программного языка Python. Для установки Python на компьютер следуйте инструкции с официального сайта https://www.python.org/downloads/. Для корректной работы PolySimCIM необходима версия Python 3.7 и выше.
      а) Для облегчения установки дополнительных программных библиотек рекомендуется использовать дистрибутив Anaconda (https://docs.anaconda.com/anaconda/install/index.html)

      2. Библиотека NumPy. Инструкция по установке доступна на официальном сайте https://numpy.org/install/.
      a) NumPy уже входит в состав программного дистрибутива Anaconda и не требует дополнительной установки при использовании данного дистрибутива.

      3. Библиотека тензорных вычислений PyTorch. Для установки библиотеки воспользуйтесь инструкцией на официальном сайте https://pytorch.org/.

      4. (Опционально) При решении задач большой размерности рекомендуется использовать NVIDIA CUDA Toolkit. Для его применения требуется видеокарта NVIDIA. Инструкция по установке CUDA Toolkit доступна на официальном сайте https://developer.nvidia.com/cuda-downloads.

      Запуск программы PolySimCIM

      Эмулятор квантовых вычислений представляет собой класс объектно-ориентированного языка программирования Python.
      1. Открыть консоль командной строки и перейти в директорию, содержащую файлы
      PolySimCIM.py и
      PolySimCIM_example.py.
      2. В командной строке выполнить команду "python PolySimCIM_example.py"
      a) Данная команда запускает исполняемый файл PolySimCIM_example.py.
      b) В результате работы программы на экране консоли будет выведено достигнутое оптимальное значение случайно сгенерированной целевой функции.
      Exact_solution = …
      PolySimCIM_solution = …
      При корректной работе программы, значения Exact_solution и PolySimCIM_solution будут совпадать.
      Файлы примеров
      Возможные ошибки

      Возможные ошибки, возникающие при запуске программы PolySimCIM:
      1. Ошибки импортирования сторонних программных библиотек:
        1. Пример ошибки
          1. Import error: No module named numpy.
          2. Import error: No module named torch.
        2. Вариант решения:
          1. Пользователю необходимо установить стороннюю программную библиотеку на свой компьютер, руководствуясь официальной инструкцией разработчика сторонней программной библиотеки.
      2. Отсутствие совместимости с NVIDIA CUDA Toolkit (средой для управление высокопроизводительными вычислениями с использованием графических процессоров NVIDIA)
        1. Пример ошибки
          1. TypeError: type torch.cuda.FloatTensor not available. Torch not compiled with CUDA enabled.
        2. Вариант решения:
          1. Пользователю необходимо установить и настроить CUDA Toolkit, следуя официальной инструкции на сайте разработчика.
          2. Если у пользователя нет возможности использовать CUDA Toolkit, необходимо использовать мощности центрального процессора (CPU) для осуществления расчетов. Для этого при вызове экземпляра класса PolySimCIM необходимо задать параметр device="cpu".
      3. Несоответствие Exact_solution и PolySimCIM_solution при больших размерностях задачи (размер матрицы более 500 x 500 x 500), в связи с накоплением численной ошибки при расчетах.
        1. Вариант решения:
          1. Использовать повышенную точность представления тензоров (например, в представлении чисел двойной точности).
      Возможные предупреждения, не влияющие на производительность программы:
      UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach() or sourceTensor.clone().detach().requires_grad_(True), rather than torch.tensor(sourceTensor). self.J=torch.tensor(J, dtype=self.dtypef, device=self.device)
      Техническая поддержка

      Каналы взаимодействия со службой технической поддержки:
      • электронная почта: mail.qml@rqc.ru
      • live-chat модуль «Отправьте нам сообщение» на сайте https://qml.rqc.ru/

      Режим работы службы технической поддержки:
      Входящие обращения принимаются
      Понедельник - Пятница, 9:00 – 18:00 (по рабочим дням), +3 GMT

      Формат запроса в службу технической поддержки:
      Свободный
      Замечания устраняются исходя из внутренних приоритетов правообладателя.

      Фактический почтовый адрес, по которому осуществляется процесс сопровождения:
      Россия, Москва, Большой бульвар, 30с1, корпус G7, этаж 3, офис 30.

      Основания для разработки:
      • экспертное мнение и продуктовая стратегия Разработчика;
      • обратная связь от клиентов, партнеров и научно-технического сообщества.
      Тестирование обновлений производится инициативной группой пользователей.
      Сообщение об обновлениях доводятся до пользователей адресно.