Приветствую всех!
У меня вопрос по разделению памяти в кластере. Я новичок в кластере и не могу решить свою проблему после нескольких недель попыток, поэтому я ищу здесь помощи, любое предложение будет признательно!
Я хочу использовать soapdenovo, программное обеспечение, которое использовалось для сборки генома человека, чтобы собрать мои данные. Однако это не удалось сделать за один шаг из-за нехватки памяти (на моей машине память 512 ГБ). Поэтому я обратился к кластерной машине (у которой три больших узла, каждый узел также имеет 512 памяти) и начал изучать задание отправки с помощью qsub. Учитывая, что один узел не мог решить мою проблему, я погуглил и обнаружил, что openmpi может помочь, но когда я запускал openmpi с демонстрационными данными, казалось, что команда запускалась только несколько раз. Затем я обнаружил, что нужно использовать openmpi, программное обеспечение должно включать библиотеку openmpi, и я не знал, поддерживает ли soapdenovo openmpi, я задал вопрос, но автор еще не дал мне ответа. Предположим, что soapdenovo поддерживает openmpi, как мне решить мою проблему. Если он не поддерживает openmpi, могу ли я использовать память в разных узлах для запуска программного обеспечения?
Проблема так мучила меня, спасибо за любую помощь. Ниже приводится то, что я сделал, и некоторая информация о кластерной машине:
- Установите openmpi и отправьте задание
1) Скрипт задания:
#!/bin/bash
#
#$ -cwd
#$ -j y
#$ -S /bin/bash
#
export PATH=/tools/openmpi/bin:$PATH
export LD_LIBRARY_PATH=/tools/openmpi/lib:$LD_LIBRARY_PATH
soapPath="/tools/SOAPdenovo2/SOAPdenovo-63mer"
workPath="/NGS"
outputPath="assembly/soap/demo"
/tools/openmpi/bin/mpirun $soapPath all -s $workPath/$outputPath/config_file -K 23 -R -F -p 60 -V -o $workPath/$outputPath/graph_prefix > $workPath/$outputPath/ass.log 2> $workPath/$outputPath/ass.err
2) Отправьте задание:
qsub -pe orte 60 mpi.qsub
3) Лог в ass.err
а) судя по логу несколько раз запускал соапденово
cat ass.err | grep "Pregraph" | wc -l
60
б) подробная информация
less ass.err (it seemed it only run soapdenov several times, because when I run it in my machine, it would only output one Pregraph):
Version 2.04: released on July 13th, 2012
Compile Apr 27 2016 15:50:02
********************
Pregraph
********************
Parameters: pregraph -s /NGS/assembly/soap/demo/config_file -K 23 -p 16 -R -o /NGS/assembly/soap/demo/graph_prefix
In /NGS/assembly/soap/demo/config_file, 1 lib(s), maximum read length 35, maximum name length 256.
Version 2.04: released on July 13th, 2012
Compile Apr 27 2016 15:50:02
********************
Pregraph
********************
and so on
c) информация стандартного ввода
cat ass.log:
--------------------------------------------------------------------------
WARNING: A process refused to die despite all the efforts!
This process may still be running and/or consuming resources.
Host: smp03
PID: 75035
--------------------------------------------------------------------------
--------------------------------------------------------------------------
mpirun noticed that process rank 58 with PID 0 on node c0214.local exited on signal 11 (Segmentation fault).
--------------------------------------------------------------------------
- Информация о кластере:
1) qconf-sql
all.q
smp.q
2) qconf -spl
mpi
mpich
orte
zhongxm
3) qconf -sp zhongxm
pe_name zhongxm
slots 999
user_lists NONE
xuser_lists NONE
start_proc_args /bin/true
stop_proc_args /bin/true
allocation_rule $fill_up
control_slaves TRUE
job_is_first_task FALSE
urgency_slots min
accounting_summary FALSE
4) qconf -sq smp.q
qname smp.q
hostlist @smp.q
seq_no 0
load_thresholds np_load_avg=1.75
suspend_thresholds NONE
nsuspend 1
suspend_interval 00:05:00
priority 0
min_cpu_interval 00:05:00
processors UNDEFINED
qtype BATCH INTERACTIVE
ckpt_list NONE
pe_list make zhongxm
rerun FALSE
slots 1
tmpdir /tmp
shell /bin/csh
prolog NONE
epilog NONE
shell_start_mode posix_compliant
starter_method NONE
suspend_method NONE
resume_method NONE
terminate_method NONE
notify 00:00:60
owner_list NONE
user_lists NONE
xuser_lists NONE
subordinate_list NONE
complex_values NONE
projects NONE
xprojects NONE
calendar NONE
initial_state default
s_rt INFINITY
h_rt INFINITY
s_cpu INFINITY
h_cpu INFINITY
s_fsize INFINITY
h_fsize INFINITY
s_data INFINITY
h_data INFINITY
s_stack INFINITY
h_stack INFINITY
s_core INFINITY
h_core INFINITY
s_rss INFINITY
h_rss INFINITY
s_vmem INFINITY
h_vmem INFINITY
5) qconf -sq all.q
qname all.q
hostlist @allhosts
seq_no 0
load_thresholds np_load_avg=1.75
suspend_thresholds NONE
nsuspend 1
suspend_interval 00:05:00
priority 0
min_cpu_interval 00:05:00
processors UNDEFINED
qtype BATCH INTERACTIVE
ckpt_list NONE
pe_list make zhongxm
rerun FALSE
slots 16,[c0219.local=32]
tmpdir /tmp
shell /bin/csh
prolog NONE
epilog NONE
shell_start_mode posix_compliant
starter_method NONE
suspend_method NONE
resume_method NONE
terminate_method NONE
notify 00:00:60
owner_list NONE
user_lists mobile
xuser_lists NONE
subordinate_list NONE
complex_values NONE
projects NONE
xprojects NONE
calendar NONE
initial_state default
s_rt INFINITY
h_rt INFINITY
s_cpu INFINITY
h_cpu INFINITY
s_fsize INFINITY
h_fsize INFINITY
s_data INFINITY
h_data INFINITY
s_stack INFINITY
h_stack INFINITY
s_core INFINITY
h_core INFINITY
s_rss INFINITY
h_rss INFINITY
s_vmem INFINITY
h_vmem INFINITY
ldd /tools/SOAPdenovo2/SOAPdenovo-63mer
(если это настоящий двоичный файл ELF), чтобы узнать, есть ли какой-либо libmpi, связанный с приложением. Для использования MPI приложение должно быть написано с использованием вызовов MPI и скомпилировано с вашей версией библиотеки MPI (OpenMPI, а не MPICH). - person osgx   schedule 12.06.2016