Часть программного комплекса, выполняемая на компьютере с параллельной архитектурой, состоит из двух утилит предназначенных для подготовки данных для расчета и анализа, а также вычислительного ядра.
Утилита
parser предназначена для разбора описания области подготовленной с помощью препроцессора или обычного текстового редактора. Результатом работы является набор файлов содержащих начальные данные для вычислений.Утилита требует для выполнения один процессор, что позволяет запускать ее, не используя ресурсы вычислительного кластера.
Формат запуска:
parser <input> <output>
<input> - имя файла (указывается без расширения) содержащего описание конфигурации области и начальные условия с использованием XML. Файл должен иметь расширение *.xml
<output> - шаблон имени файлов (указывается без расширения), в которые будут сохранены начальные условия для расчета.
После выполнения программы, при отсутствии ошибок, будет сгенерирован набор файлов: один файл с расширением *.prc и файлы с раширением *.rgn по числу используемых процессоров (это значение должно быть указано в
XML файле).В случае ошибки в
XML файле будет выдано соответствующее сообщение и прервана работа утилиты.Для получения справки по использованию утилиты используется опция –
h.Пример 1
Пусть имеется файл с описанием расчетной области region.xml содержащий указание о разбиении на подобласти в виде
….
<subregions>
<x>2</x>
<y>2</y>
<z>1</z>
</subregions>
….
Для получения набора файлов с начальными данными необходимо выполнить команду
parser region initial
После чего, на экран будет выдано сообщение:
Parsing - ok
Saving: initial.prc - ok
Saving: initial.000.rgn - ok
Saving: initial.001.rgn - ok
Saving: initial.002.rgn - ok
Saving: initial.003.rgn - ok
Расчетное ядро
lpm3d должно выполняться на вычислительном кластере с установленной библиотекой MPICH. Способ запуска зависит от установленного на кластере программного обеспечения и описывается в соответствующей документации.Для начала расчетов должны быть подготовлены файлы с начальными данными (с использованием утилиты
parser). В качестве исходных могут использоваться файлы с результатами предыдущих расчетов.Выполнение программы протоколируется в файле с расширением *.
log.Формат запуска:
lpm3d [<type>] <input> <output> <total steps> [<options>]
Обязательные параметры:
<input> -
шаблон имени файлов (указывается без расширения), в которых содержатся начальные условия для расчета.<output> -
шаблон имени файлов (указывается без расширения), в которые будут сохранены результаты расчета.<total steps>
- количество шагов вычислительного алгоритма по времени.Необязательные параметры:
<type>
- тип входных данных: при указании ключа-
d - в качестве входных данных используются результаты предыдущих расчетов-g
- в качестве входных данных используются файлы подготовленные с помощью утилиты parser (используется по умолчанию).<options> - дополнительные опции:
- l <log file> -
имя файла протокола (без расширения), по умолчанию используется имя файлов для результатов расчета с расширением *.log- a <autosave> -
включает автоматическое сохранение через указанное количество шагов алгоритма. В дальнейшем эти файлы могут быть проанализированы с помощью постпроцессора или использоваться для возобновления расчетов.- t <timeoutput> -
количество шагов алгоритма между выводом в файл протокола сообщения о прошедшем расчетном времени, по умолчанию, сообщение выводится после каждого шага.После выполнения программа формирует набор файлов с результатами расчетов, в который входят: один файл с расширением *.
prc, файлы с расширением *.lpm по числу используемых процессоров (это значение соответствует количеству исходных файлов), а также файл протокола с расширением *.logКоличество используемых процессоров, ограничение по времени выполнения, и другие параметры задаются в соответствии с документацией к программному обеспечению установленному на вычислительном кластере.
Для получения справки по использованию расчетного ядра используется опция –
h.Пример 2
Пусть имеется набор файлов, подготовленный с помощью утилиты parser (см. Пример 1). Для вычисления десяти шагов алгоритма на кластере, с промежуточным сохранением результатов после каждого четвертого шага, должная быть отдана команда (предполагается, что для запуска прямо используется программа mpirun, входящая в состав MPICH, количество используемых процессоров задается с помощью опции -np)
mpirun –np 4 lpm3d initial result 10 –a 4
После успешного завершения расчета будут сгенерированы следующие файлы
:result_001.prc
result_001.000.lpm
result_001.001.lpm
result_001.002.lpm
result_001.003.lpm
result_002.prc
result_002.000.lpm
result_002.001.lpm
result_002.002.lpm
result_002.003.lpm
result.prc
result.000.lpm
result.001.lpm
result.002.lpm
result.003.lpm
result.log
Содержание файла
result.logLoading: initial.prc - ok
Loading: initial.000.rgn - ok
Loading: initial.002.rgn - ok
Loading: initial.003.rgn - ok
Loading: initial.001.rgn - ok
Calculate: Time = 0
Calculate: Time = 0.0001
Calculate: Time = 0.0002
Calculate: Time = 0.0003
AutoSaving: result_001.000.lpm - ok
AutoSaving: result_001.001.lpm - ok
AutoSaving: result_001.003.lpm - ok
AutoSaving: result_001.002.lpm - ok
AutoSaving: result_001.prc - ok
Calculate: Time = 0.0004
Calculate: Time = 0.0005
Calculate: Time = 0.0006
Calculate: Time = 0.0007
AutoSaving: result_002.000.lpm - ok
AutoSaving: result_002.001.lpm - ok
AutoSaving: result_002.002.lpm - ok
AutoSaving: result_002.003.lpm - ok
AutoSaving: result_002.prc - ok
Calculate: Time = 0.0008
Calculate: Time = 0.0009
Saving: result.000.lpm - ok
Saving: result.001.lpm - ok
Saving: result.002.lpm - ok
Saving: result.003.lpm - ok
Saving: result.prc - ok
Пример 3
Для продолжения расчетов (см. Пример 2), без промежуточного сохранения, без внесения в протокол значения времени, необходимо отдать команду
mpirun –np 4 lpm3d –d result newresult 100 -t 100 –l logfile
После успешного завершения расчета будут сгенерированы следующие файлы
:newresult.prc
newresult.000.lpm
newresult.001.lpm
newresult.002.lpm
newresult.003.lpm
logfile.log
Содержание файла
logfile.logLoading: result.prc - ok
Loading: result.000.rgn - ok
Loading: result.001.rgn - ok
Loading: result.002.rgn - ok
Loading: result.003.rgn - ok
Saving: newresult.000.lpm - ok
Saving: newresult.001.lpm - ok
Saving: newresult.002.lpm - ok
Saving: newresult.003.lpm - ok
Saving: newresult.prc - ok
Утилита
packer предназначена для подготовки результатов к анализу с помощью постпроцессора, а также уменьшения размерности полученных результатов для их анализа на персональном компьютере.Утилита требует для выполнения один процессор, что позволяет запускать ее, не используя ресурсы вычислительного кластера.
Формат запуска:
packer <input> <output> [<ratio>]
<input> - шаблон имени файлов (указывается без расширения), в которых содержатся результаты
<output> -
имя файла (указывается без расширения), в котором будут сохранены результаты для анализа<ratio> -
натуральное число - соотношение, с которым будет уменьшен размер расчетной сетки во всех направлениях, по умолчанию единицаДля получения справки по использованию утилиты используется опция –
h.В результате работы утилиты будет сгенерирован один файл с расширением *.
lpmПример 4
Для подготовки данных (см. Пример 3) к анализу на персональном компьютере необходимо уменьшить размер сетки в четыре раза по каждому направлению. Для этого должна быть отдана команда:
packer newresult smallresult 4
После успешного завершения расчета будут сгенерирован файл
:smallresult.lpm
размер которого позволит исследовать результаты на компьютере со скромными характеристиками.
Пример 5
Для подготовки данных (см. Пример 3) к анализу на персональном компьютере c большим объемом памяти достаточно просто объединить файлы с результатами вместе. Для этого должна быть отдана команда:
packer newresult newresult
После успешного завершения расчета будут сгенерирован файл
:newresult.lpm