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> |