====== LSF ======
IBM Platform LSF - мощная платформа управления нагрузкой для требовательных распределенных сред высокопроизводительных вычислений. Она предоставляет исчерпывающий набор интеллектуальных компонентов на основе стратегий, которые позволяют воспользоваться всеми ресурсами вычислительной инфраструктуры и обеспечить оптимальную производительность приложений.
===== Разработка скрипта задания =====
Задание LSF представляет собой абстрактную сущность, состоящую из набора команд и параметров. Оно представляется пользователю в виде скрипта для оболочки (shell), содержащего требования к ресурсам, атрибуты задания и набор команд, которые необходимо выполнить. Единожды создав скрипт задания, им можно пользоваться столько раз, сколько необходимо. Также возможна его модификация.
Запуск задания осуществляется командой **[[ :man:lsf#bsub | bsub]]**.
==== Пример скрипта запуска последовательной задачи ====
#!/bin/bash
#BSUB -J MyJob
#BSUB -P MyProject
#BSUB -W 00:20
#BSUB -n 2
#BSUB -oo output.log
#BSUB -eo error.log
./my_program
^ Ключ bsub ^ Значение ^ Описание ^
^ | **//#!/bin/bash//** | оболочка, использующаяся при выполнении скрипта |
^ -J | **//MyJob//** | название задачи |
^ -P | **//MyProject//** | название проекта, в рамках которого запускается задача |
^ W | **//00:20//** | время на выполнение задачи (часы:минуты) |
^ -n | **//2//** | количество ядер CPU, необходимое для задачи |
^ -o | **//output.log//** | имя файла вывода |
^ -e | **//error.log//** | имя файла ошибок |
^ | **//./my_program//** | программа для запуска |
==== Пример скрипта запуска OpenMP-задачи ====
#!/bin/bash
#
#BSUB -J MyJob
#BSUB -P MyProject
#BSUB -W 00:10
#BSUB -n 1
#BSUB -e error.log
#BSUB -o output.log
./my_openmp_program
| ''export OMP_NUM_THREADS'' | ''4'' | Регулирует кол-во создаваемых потоков для OpenMP-задачи |
==== Пример скрипта запуска MPI-задачи ====
#!/bin/bash
#
#BSUB -J MyMPIJob
#BSUB -W 00:20
#BSUB -n 2
#BSUB -R "span[ptile=1]"
#BSUB -oo output.out
#BSUB -eo error.err
module load mpi/openmpi-x86_64
mpirun ./my_mpi_program
| ''#BSUB -n'' | ''2'' | Количество процессов MPI |
| ''#BSUB -R "span[ptile= ]''|''1''| Директива для задания кол-ва MPI процессов на одном узле |
| ''''|''mpirun ./my_mpi_program''| Программа для запуска MPI-задачи |
==== Пример скрипта запуска .NET-приложения ====
#!/bin/bash
#
#BSUB -J dotnet
#BSUB -W 00:20
#BSUB -n 2
#BSUB -oo output.out
#BSUB -eo error.err
dotnet run
| ''#BSUB -n'' | ''2'' | Количество используемых ядер процессора |
===== Команды LSF =====
==== bsub ====
Запуск задачи
bsub < MyJob.lsf
| ''MyJob.lsf'' | скрипт запуска задачи |
==== bjobs ====
Информация о текущих задачах
bjobs
==== bhist ====
Информация обо всех когда-либо запущенных задачах
bhist -a
==== bkill ====
Завершение задачи
bkill 12345
| ''12345'' | номер задачи |