1

Я пытаюсь запустить много небольших серийных заданий с GNU Parallel на кластере PBS, каждый вычислительный узел имеет 16 ядер, поскольку я намеревался использовать несколько вычислительных узлов, поэтому я передал параметр -S $ SERVERNAME в GNUParallel, однако что меня смущает является то, что количество заданий, запущенных на узле с помощью -S $SERVERNAME не равно числу рабочих мест я заданных когда я собирался на нерест более 9 рабочих мест, ниже мои наблюдения:«Максимальное количество заданий для запуска» не равно количеству заданий, заданных при использовании GNU Parallel на удаленном сервере?

[[email protected] ~]$ parallel --version 
GNU parallel 20160922 
Copyright (C) 2007,2008,2009,2010,2011,2012,2013,2014,2015,2016 
Ole Tange and Free Software Foundation, Inc. 
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html> 
This is free software: you are free to change and redistribute it. 
GNU parallel comes with no warranty. 

Web site: http://www.gnu.org/software/parallel 

When using programs that use GNU Parallel to process data for publication 
please cite as described in 'parallel --citation'. 
[[email protected] ~]$ hostname # this shows my hostname 
shelob001 

при использовании GNUParallel в качестве локального хоста без -S $ SERVERNAME, нет проблем, я намеревался создать 10 заданий, а GNUParallel запустил 10 заданий:

[[email protected] ~]$ parallel --progress echo ::: `seq 1 10` 

Computers/CPU cores/Max jobs to run 
1:local/16/10 # 10 jobs spawned, no problem 

Computer:jobs running/jobs completed/%of started jobs/Average seconds to complete 
local:10/0/100%/0.0s 1 
local:9/1/100%/0.0s 2 
local:8/2/100%/0.0s 3 
local:7/3/100%/0.0s 4 
local:6/4/100%/0.0s 5 
local:5/5/100%/0.0s 6 
local:4/6/100%/0.0s 7 
local:3/7/100%/0.0s 8 
local:2/8/100%/0.0s 9 
local:1/9/100%/0.0s 10 
local:0/10/100%/0.0s 

Когда я использую GNUP параллельно с появлением менее 10 заданий с использованием -S $SERVERNAME, все равно проблем нет.

[[email protected] ~]$ parallel -S shelob001 --progress echo ::: `seq 1 1` 

Computers/CPU cores/Max jobs to run 
1:shelob001/16/1 # When the number of jobs is less than 10, no problem 

Computer:jobs running/jobs completed/%of started jobs/Average seconds to complete 
shelob001:1/0/100%/0.0s 1 
shelob001:0/1/100%/1.0s 

[[email protected] ~]$ parallel -S shelob001 --progress echo ::: `seq 1 8` 

Computers/CPU cores/Max jobs to run 
1:shelob001/16/8 # When the number of jobs is less than 10, no problem 

Computer:jobs running/jobs completed/%of started jobs/Average seconds to complete 
shelob001:8/0/100%/0.0s 1 
shelob001:7/1/100%/1.0s 7 
shelob001:6/2/100%/0.5s 3 
shelob001:5/3/100%/0.3s 8 
shelob001:4/4/100%/0.2s 5 
shelob001:3/5/100%/0.2s 2 
shelob001:2/6/100%/0.2s 6 
shelob001:1/7/100%/0.1s 4 
shelob001:0/8/100%/0.1s 

[[email protected] ~]$ parallel -S shelob001 --progress echo ::: `seq 1 9` 

Computers/CPU cores/Max jobs to run 
1:shelob001/16/9 # When the number of jobs is less than 10, no problem 

Computer:jobs running/jobs completed/%of started jobs/Average seconds to complete 
shelob001:9/0/100%/0.0s 1 
shelob001:8/1/100%/1.0s 5 
shelob001:7/2/100%/0.5s 8 
shelob001:6/3/100%/0.3s 2 
shelob001:5/4/100%/0.2s 6 
shelob001:4/5/100%/0.2s 9 
shelob001:3/6/100%/0.2s 3 
shelob001:2/7/100%/0.1s 4 
shelob001:1/8/100%/0.1s 7 
shelob001:0/9/100%/0.1s 

Вот что меня смущает, когда я пытаюсь использовать номер задания> = 10, число рабочих мест породил всегда один меньше, чем хотелось, вот я хочу икру 10, только начал 9 работ:

[[email protected] ~]$ parallel -S shelob001 --progress echo ::: `seq 1 10` # I want to start 10 jobs 

Computers/CPU cores/Max jobs to run 
1:shelob001/16/9 #why here "Max jobs to run" is 9? 

Computer:jobs running/jobs completed/%of started jobs/Average seconds to complete 
shelob001:9/0/100%/0.0s 2 
shelob001:9/1/100%/3.0s 1 
shelob001:8/2/100%/1.5s 7 
shelob001:7/3/100%/1.0s 4 
shelob001:6/4/100%/0.8s 9 
shelob001:5/5/100%/0.6s 8 
shelob001:4/6/100%/0.5s 3 
shelob001:3/7/100%/0.4s 5 
shelob001:2/8/100%/0.4s 6 
shelob001:1/9/100%/0.4s 10 
shelob001:0/10/100%/0.4s 

[[email protected] ~]$ parallel -S shelob001 --progress echo ::: `seq 1 11` 

Computers/CPU cores/Max jobs to run 
1:shelob001/16/10 # it seems the jobs started is one less than I specified 

Computer:jobs running/jobs completed/%of started jobs/Average seconds to complete 
shelob001:10/0/100%/0.0s 1 
shelob001:10/1/100%/3.0s 2 
shelob001:9/2/100%/1.5s 8 
shelob001:8/3/100%/1.0s 3 
shelob001:7/4/100%/0.8s 4 
shelob001:6/5/100%/0.6s 5 
shelob001:5/6/100%/0.5s 7 
shelob001:4/7/100%/0.4s 10 
shelob001:3/8/100%/0.4s 9 
shelob001:2/9/100%/0.3s 6 
shelob001:1/10/100%/0.4s 11 
shelob001:0/11/100%/0.4s 
[[email protected] ~]$ 

Я проверил состояние вычислительного узла с помощью «сверху», он показывает, что только 9 Cpus используются, когда я использую seq 1 10. Надеюсь, я поставил свою проблему в ясность, мог ли кто-нибудь указать на возможную причину этой проблемы? Любое предложение приветствуется.

спасибо!

ответ

0

Похоже, вы нашли ошибку. Обходной путь: -j + 1

+0

Спасибо Оле, однако кажется, что -j + 1 не помогает: –

+0

[fchen14 @ shelob001 ~] $ parallel -j + 1 -S 16/shelob001 --progress echo ::: 'seq 1 10' Компьютеры/ядра процессора/Max рабочих мест для запуска 1: shelob001/16/9 Компьютер: рабочие места работы/работы завершены /% начатых заданий/сек Среднее для завершения shelob001: 9/0/100% /0.0s 1 shelob001: 9/1/100%/2.0s 2 shelob001: 8/2/100%/1.0s 9 shelob001: 7/3/100%/0.7s 7 shelob001: 6/4/100%/0,5 с 3 shelob001: 5/5/100%/0,4 с 8 shelob001: 4/6/100%/0.3s 5 shelob001: 3/7/100%/0.3s 4 shelob001: 2/8/100%/0,2s 6 shelob001: 1/9/100%/0.3s 10 shelob001: 0/10/100%/0.3 s –

 Смежные вопросы

  • Нет связанных вопросов^_^