Назад | Перейти на главную страницу

LSF-неверная ошибка синтаксиса требования ресурса

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

bsub -R "rusage [mem = 1000]" спать 100 сек.

Когда я запускаю эту команду прямо из терминала, она работает. Когда я запускаю эту команду из сценария, она не работает.

Вот мой сценарий:

#! /bin/csh -f

set cktsim_memory = $1
set tmp = "|rusage [mem = $cktsim_memory]|" #method2
set tmp = `echo $tmp | sed 's/ =/=/g'` #method2
set tmp = `echo $tmp | sed 's/|/"/g' `
set bsub_option = ""
set bsub_option = ( "$bsub_option" "-R" "$tmp") #method2
set cmd = "bsub $bsub_option sleep 100s"
echo $cmd
$cmd

Его результат выполнения:

>./cktsim_memory_test 100
bsub_option -R "rusage [mem= 100]"
Bad resource requirement syntax. Job not submitted.
>bsub -R "rusage [mem= 100]" sleep 100s
Job <99775> is submitted to default queue <medium>.

Как вы можете видеть в выходных данных терминала выше, когда команда bsub запускается из скрипта, она терпит неудачу, когда та же команда запускается из терминала, все в порядке ...

Пожалуйста, помогите мне отладить проблему.

Это рабочий код:

#! /bin/csh -f

set cktsim_memory = $1
set tmp = "'rusage [mem = $cktsim_memory]'" #method2
set tmp = `echo $tmp | sed 's/ =/=/g'` #method2

set bsub_option = ""
set bsub_option = ( "$bsub_option" "-R" "$tmp") #method2

set cmd = "bsub $bsub_option sleep 100s"
echo $cmd > lsfcmd ; source lsfcmd

Поместите вашу команду в кавычки с небольшими изменениями.

     bsub -q medium -R 'rusage[mem=1000 ]' 'cd ; ./run_command' 
     -or-
     bsub -q medium -R 'rusage[mem=1000 ]' './FULL_PATH/run_command'

Примечание: - Убедитесь, что "run_command" доступна с вашего исполняющего хоста.