Впервые в нашем блоге - вся статья посвящена модулю FVTerminal! Если вы хотите ускориться и автоматизировать запуски расчётов, то вам просто необходимо познакомиться с его возможностями.

FVTerminal позволяет выполнять некоторые операции в обход FVPPP, a также умеет делать и другие крутые штуки: 

Если бы Чак Норрис пользовался FlowVision, он точно смог бы собрать проект прямо в FVTerminal и запустить его на расчёт. Нам до Чака далеко: увы, Терминал не умеет собирать проект, но некоторыми лайфхаками поделимся. Как запустить 10 проектов на расчёт пятницу вечером и в понедельник утром уже обрабатывать результаты? Это возможно, вся магия - в системе очередей. Проекты будут поочередно загружаться, считаться, останавливаться, сохраняться и выгружаться - да все что захотите.

А с появлением во FlowVision 3.12.02 окна создания командного файла прямо в Терминале, запустить цикл расчётов стало ещё удобнее. Именно эта новая фича сподвигла написать статью про запуски проектов через очередь и поделиться простотой создания командного файла.

В чём польза от системы очередей? 

Система очередей - это технология для автоматизирования расчётов. Не секрет, что эффективность одновременного запуска расчёта 10 проектов на одной машине близка к нулю. А если поставить 10 проектов в очередь - это другое дело. Используйте систему очередей, чтобы экономить время при:

Как работает система очередей во FlowVision? 

Продемонстрируем это на примере.

Чтобы поставить проект в очередь из FVTerminal, достаточно нажать правой кнопкой мыши на нужном проекте и выбрать "Поместить проект в очередь". Также для добавления в очередь можно использовать сочетание клавиш Ctrl + Q

Но сначала проверьте, что проект полностью готов к расчёту: заданы критерии останова, в серверной директории существует серверная часть проекта и создан командный файл 

1

После появится окно, в котором определяются настройки:

2

При нажатии кнопки «Ок», проекту будет выдан талон в очередь, где он будет ждать светлого будущего в виде начала расчёта. После окончания расчёта, считающий солвер будет убит (Главное - не забыть прописать эту команду!), и после этого запустится расчёт следующего в очереди проекта. 

Генерация командного файла и стандартный запуск расчёта в системе очередей

Командный файл - это список задач для Солвера. Все команды обрабатываются последовательно, в заданном пользователем порядке.

Создание командного файла - неотъемлемая часть добавления проекта в очередь, без него солвер не знает, что ему делать с проектом. Но помимо использования в системе очередей, у командного файла есть другие интересные варианты применения: 

Создадим командный файл вместе

Ранее командный файл приходилось создавать руками искать название команд в документации и подкладывать command.txt в папку с проектом, а сейчас все стало гораздо проще.
Для этого откроем FvTerminal и выберем необходимый проект. При нажатии правой кнопкой мыши, открывается контекстное меню, в котором отображается куча команд. Среди этой кучи команд есть «Создать командный файл».

3

И при выполнении команды появляется новое окно «Создание командного файла».

4

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

Как результат, в серверной папке с проектом будет создан command.txt.

об использовании шаблона

Если в клиентской папке проекта уже находится командный файл (command.txt), то он автоматически откроется в окне «Создание командного файла» и его можно будет отредактировать.

Также FvTerminal дает возможность сформировать свой шаблонный командный файл. Чтобы, к примеру, при постановке проектов в очередь, не вбивать одни и те же команды десять тысяч раз. Запоминание набора команд в окне ввода и присваивание ему статуса шаблона происходит при выборе «Сохранить как шаблон». В следующий раз при выборе «Использовать шаблон» формируется командный файл на основе сохранённого шаблона.

Пример командного файла 

Типовой командный файл для постановки проекта в очередь состоит из следующего набора команд:

SS_PROJECTLOAD<./name.fvproj><><><> // загрузить проекта на солвер
SS_SOLVESTART<0> // начать расчёт "с нуля"
SS_DO_NOT_DISTURB // не обрабатывать другие запросы до окончания счёта - проект остановится только при срабатывании критерия останова
SS_PRJDATASAVE // сохранить результаты расчёта
SS_PROJECTUNLOAD // выгрузить проект с солвера
SS_SHUTDOWNSOLVER // завершить работу солвера

Пара моментов, которые стоит уточнить, если вы создаете командный файл в Терминале:

6

Работа системы очередей после запуска расчёта с командным файлом

После того, как командный файл готов, можно выполнить команду «Поместить в очередь».

Кстати, создать командный файл можно и на этом этапе - вы увидите специальную кнопочку в появившемся окне.

Первые в очереди проекты начнут считаться со статусом «(А) Считается». Это значит, что солвер считается в автономном режиме и завершить работу солвера из вне не сможет ни ППП, ни FvTerminal. Солвер будет считать до остановки решения во FlowVision. Можно только подключиться к запущенному солверу через FvViewer. Завершить работу такого солвера  можно  через Диспетчер задач (процесс FvSolver64.exe)  или закрыв окно консоли солвера. Остальные проекты будут со статусом «В очереди». 

Советы при работе с системой очередей

Используйте критерии останова 

Расчёт солвера в очереди может длиться бесконечно. Например, если у проекта не задан ни один критерий останова. Прежде чем запускать проект на расчёт, убедитесь, что у него выставлены критерии останова, которые позволят солверу остановиться и завершить работу, чтобы освободить очередь.

Для остановки проекта доступны следующие критерии останова и команды: 

перед добавлением в очередь ПроВеряйте настройки запуска

В текущей версии FlowVision очередь отображает строгую последовательность запуска проектов. Перемещать проекты вверх или вниз по очереди никак не получится. Не получится также и удалить проект из очереди. Поэтому лучше дважды проверить все настройки запуска.

Как не ошибиться при задании количества ядер*процессоров при добавлении в очередь?

Если вы не планируете отдавать системе очередей FlowVision все вычислительные ресурсы компьютера (например, если параллельно ведётся расчёт в другой программе), то в FvConfigurator можно ограничить максимальное число доступных потоков, которые будут отводиться под работу солвера FlowVision.

По умолчанию солвер - агент (СА) автоматически разрешает FlowVision запускать солвера, задействующие все потоки. Например, на вашем компьютере 1 процессор с 8 ядрами. Тогда вы можно запустить один солвер 1х8, или - одновременно два солвера 1х4 и так далее: главное, чтобы в сумме использовать все 8 ядер. При постановке в очередь Терминал не позволит указать для расчёта больше 8 ядер. Но если вы решите оставить пару ядер свободными от расчётов FlowVision и ограничите в Конфигураторе максимальное количество доступных потоков до 6, то одновременно два солвера 1х4 уже не запустятся, так как сумма задействованных ядер будет больше 6.

Задать верхний предел для числа потоков, отводящихся под солвера в очередь, можно в Конфигураторе: FvConfigurator > Вкладка Конфигурация/Протоколы > Конфигурационные файлы > Солвер-Агент.

5

Резюме

  1. В версии FlowVision 3.12.02 появилась новая опция: в интерфейс Терминала добавлено окно "Создание командного файла". Это неотъемлемая часть добавления расчётного проекта в очередь. Подробнее о новом функционале читайте выше в этой статье или в документации.

  2. Очередь используется для автоматизации запусков проектов на расчёт. Эффективность одновременного расчёта нескольких проектов близка к нулю, но очередь позволяет запомнить настройки запуска и запустить расчёты автоматически без участия инженера. Таким образом, указав настройки запуска расчётов вечером, на следующее утро вы скорее всего уже сможете обрабатывать результаты. Пусть ваш компьютер считает, пока вы отдыхаете - пользуйтесь очередью запуска расчётов.

  3. При работе с очередью FlowVision не забывайте проверить: