Bash
Version 1 (Andrey Golovin, 12.08.2014 10:17)
1 | 1 | Andrey Golovin | h1. Использование GNU parallel |
---|---|---|---|
2 | 1 | Andrey Golovin | |
3 | 1 | Andrey Golovin | Итак, есть задача по запуску счёта для некоторого количества задач. |
4 | 1 | Andrey Golovin | Чаще всего используется скрипт с циклом: |
5 | 1 | Andrey Golovin | <pre> |
6 | 1 | Andrey Golovin | for i in $(seq 0 6);do |
7 | 1 | Andrey Golovin | # mkdir model_${i} |
8 | 1 | Andrey Golovin | ## remove OXT and H1-H2, rename H3 to H in original autodock pdb |
9 | 1 | Andrey Golovin | echo "save model_${i}/pep.pdb, all, $i" |
10 | 1 | Andrey Golovin | cat flex_short.pdb model_${i}/pep.pdb > model_${i}/compl.pdb |
11 | 1 | Andrey Golovin | cd model_${i} |
12 | 1 | Andrey Golovin | FlexPepDocking.linuxgccrelease -s compl.pdb -flexpep_prepack -ex1 -ex2aro \ |
13 | 1 | Andrey Golovin | -peptide_chain A -receptor_chain H >& log.prepack |
14 | 1 | Andrey Golovin | FlexPepDocking.linuxgccrelease -s compl_0001.pdb -receptor_chain H -peptide_chain A \ |
15 | 1 | Andrey Golovin | -out:file:silent decoys.silent -out:file:silent_struct_type binary \ |
16 | 1 | Andrey Golovin | -pep_refine -ex1 -ex2aro -use_input_sc -nstruct 300 >& log.run & |
17 | 1 | Andrey Golovin | cd .. |
18 | 1 | Andrey Golovin | done |
19 | 1 | Andrey Golovin | </pre> |
20 | 1 | Andrey Golovin | |
21 | 1 | Andrey Golovin | Часто, в ходе работы надо коментировать некторые строки, так как эти задачи уже выполнены. Так же не плохо бы было реализовать эффективное использование всех вычмслительных ядер компьютера. |
22 | 1 | Andrey Golovin | |
23 | 1 | Andrey Golovin | Давайте я предложу несколько примеров как эти шаги можно эффективно реализовать с GNU parallel: |
24 | 1 | Andrey Golovin | |
25 | 1 | Andrey Golovin | |
26 | 1 | Andrey Golovin | h5. Сделать N директорий: |
27 | 1 | Andrey Golovin | <pre> |
28 | 1 | Andrey Golovin | parallel --gnu mkdir model_{1} ::: {1..6} |
29 | 1 | Andrey Golovin | or |
30 | 1 | Andrey Golovin | export n=6 |
31 | 1 | Andrey Golovin | parallel --gnu mkdir model_{1} ::: $(seq 1 $n) |
32 | 1 | Andrey Golovin | </pre> |