COMSOL
- Официальный сайт: http://www.comsol.com/
- Программное обеспечение COMSOL установлено в поддиректориях внутри '/opt/shared/comsol'. Например, рассматриваемая ниже версия 4.4, установлена в директорию '/opt/shared/comsol/44', при этом:
- Документация находится в '/opt/shared/comsol/44/doc'.
- Запуск осуществляется командой '/opt/shared/comsol/44/bin/comsol' с необходимыми параметрами.
- Рекомендуется по возможности использовать неинтерактивный (Batch) режим COMSOL, а также 'Parallel Computing'.
GUI
- Для работы с графическим интерфейсом используется технология X window. Само приложение при этом должно запускаться на узлах кластера с помощью интерактивного режима PBS.
- В случае получения при запуске ошибок, например, такого вида:
FL3D: error at line 814 in file fl3dglcontext_x11common.c: PBuffers are not supported by the system. FL3D: error at line 235 in file fl3dglcontext_x11common.c: assert: x11Handle
необходимо запускать COMSOL с дополнительными параметрами:
/opt/shared/comsol/44/bin/comsol -3drend sw
Batch
- Неинтерактивный режим работы без графического пользовательского интерфейса. Последовательность действий при работе примерно такая:
- Сперва пользователь запускает графическую оболочку COMSOL и описывает свою задачу. Сохраняет её в файл, закрывает GUI.
- Создается скрипт для PBS, из которого COMSOL запускается в batch режиме и в качестве параметров получает ранее созданный файл с исходными данными, а результат сохраняет в другой файл.
- Этот скрипт ставиться в очередь планировщика (в неинтерактивном режиме).
- Когда batch задача завершится, пользователь опять запускает графическую оболочку COMSOL в интерактивном режиме, загружает файл с полученными результатами и анализирует их.
- Запуск COMSOL в batch режиме выглядит так:
/opt/shared/comsol/44/bin/comsol batch -inputfile файл_с_описанием_модели -outputfile файл_с_результатами -batchlog файл_с_логами_работы ...дополнительные параметры...
- Более подробное описание находится в официальной документации на COMSOL, в частности, в файле '/opt/shared/comsol/44/doc/pdf/COMSOL_Multiphysics/COMSOL_ReferenceManual.pdf' в разделе COMSOL BATCH COMMANDS (стр 1193).
Распараллеливание
- COMSOL поддерживает два способа распараллеливания вычислений:
- Shared-memory parallelism при работе на одном физическом сервере
- Distributed-memory parallelism для работы одновременно на нескольких серверах
- Также можно выполнять вычисления с использованием обоих способов одновременно.
- Обращаем внимание на разногласие в терминах:
- В документации COMSOL физический сервер обозначается термином 'host', а термин 'узел' ('node', 'compute node') обозначает MPI-процесс работающего COMSOL.
- В то время как на нашем сайте термин 'узел' ('узел кластера', 'cluster node') обозначает физический сервер кластера, т.е. 'host' в терминах COMSOL.
- Поэтому ниже будут использоваться термины 'сервер' и 'вычислительный узел'.
- COMSOL должен распараллеливаться таким образом, чтобы используемые ресурсы соответствовали запросу ресурсов в задаче PBS. Например, при запросе ресурсов
#PBS -l select=3:ncpus=12:mpiprocs=3:mem=24g
параметры в командной строке при запуске COMSOL должны содержать:
-nn 9 -nnhost 3 -np 4 -f $PBS_NODEFILE
- Параметры командной строки:
- '-nn <no. of nodes>' - полное количество вычислительных узлов (процессов)
- '-nnhost <no. of nodes per host>' - количество вычислительных узлов, работающих на каждом сервере
- '-np <no. of cores>' - количество процессорных ядер, используемых каждым вычислительным узлом
- '-f <path>' - путь до файла, содержащего список имён используемых серверов