Site Tools


anthill_sri013

description

This article shows how to download in parallel hundreds of BAM files using Anthill cluster.
It can also be used as a template when using the Anthill cluster for similar tasks .

file list

Assume you have file download.list that has lines location of files that you would like to download with wget. Beginning of this file can look like this :

ftp.sra.ebi.ac.uk/vol1/run/ERR322/ERR3223712/GVA311_CGG_1_019861.Horse_mt.realigned.r.t.s.m.s.bam
ftp.sra.ebi.ac.uk/vol1/run/ERR322/ERR3223713/NewBotai_31_CGG_1_017023.Horse_mt.realigned.r.t.s.merged.bam
ftp.sra.ebi.ac.uk/vol1/run/ERR322/ERR3223714/Arz3_CGG_1_017089_i9_GATCAG_U.r.t.s.bam

where to download

Login to anthill23. Go to W01_NFS storage with cd /workspace/${USER}. And create new folder for your download.list file. Remember to check with quota -sg how much free space you have. If not enough compress/remove some old files, or request for quota increase.
Lets assume your download.list file was located in new folder /workspace/${USER}/anthill23_wget at anthill23 host.

sbatch example

In the same folder (/workspace/${USER}/anthill23_wget) create subfolder batch.
In /workspace/${USER}/anthill23_wget/batch/ create file download_list.batch . File download_list.batch :

#!/bin/bash -l
#SBATCH --job-name="wget list download"
#SBATCH --ntasks=1 
#SBATCH --mem=1G
#SBATCH --partition=medium
#SBATCH --time=1-01:59:59

WORK_DIR="/workspace/${USER}/anthill23_wget"
LIST_FILE_PATH="${WORK_DIR}/download.list"
DOWNLOAD_DIR="${WORK_DIR}/results"

cd ${WORK_DIR}
mkdir -p ${DOWNLOAD_DIR}

GET_LINE=`sed "${SLURM_ARRAY_TASK_ID}q;d" ${LIST_FILE_PATH}`

echo "date: `date -R`"
echo "host: `hostname`"
echo "taks id: ${SLURM_ARRAY_TASK_ID}"
echo "will download ${GET_LINE}"
echo "start timestamp: `date +%s`"
echo " "

cd ${DOWNLOAD_DIR}
wget -c "${GET_LINE}"

echo " "
echo "ended "
echo "end timestamp: `date +%s`"
echo " "

run sbatch example

To run /workspace/${USER}/anthill23_wget/batch/download_list.batch we need to provide additional argument of how many lines there is in download.list file as –array=1-999 argument. In our case number of lines in download.list file is counted automatically ( with wc conmand ).

cd /workspace/${USER}/anthill23_wget/batch/
sbatch --array=1-`cat ../download.list | wc -l` download_list.batch

exam download / job status

How many array jobs waits (PD - PENDING) to be executed :

[tmatejuk@anthill23 ]$ squeue -u ${USER} -t PD
           JOBID PARTITION     NAME     USER ST       TIME  NODES NODELIST(REASON)
 11547_[714-878]    medium wget lis tmatejuk PD       0:00      1 (Resources)

How many array jobs is in progress (R - RUNNING ) :

[tmatejuk@anthill23 ]$ squeue -u ${USER} -t R
           JOBID PARTITION     NAME     USER ST       TIME  NODES NODELIST(REASON)
       11547_385    medium wget lis tmatejuk  R      37:02      1 ant009
       11547_383    medium wget lis tmatejuk  R      37:13      1 ant008
       11547_382    medium wget lis tmatejuk  R      37:16      1 ant008
       ...

Where are jobs standard output information :

[tmatejuk@anthill23 ]$ cd /workspace/${USER}/anthill23_wget/batch
[tmatejuk@anthill23 ]$ cat slurm-11547_682.out
date: Sun, 22 Sep 2019 13:51:31 +0200
host: ant606
taks id: 682
will download ftp.sra.ebi.ac.uk/vol1/run/ERR322/ERR3225474/LOBOT_B_CGG_1_020182.Horse_nuc_wY.realigned.r.t.m.3p1.S.bam.bai
start timestamp: 1569153091
 
--2019-09-22 13:51:31--  http://ftp.sra.ebi.ac.uk/vol1/run/ERR322/ERR3225474/LOBOT_B_CGG_1_020182.Horse_nuc_wY.realigned.r.t.m.3p1.S.bam.bai
Resolving ftp.sra.ebi.ac.uk (ftp.sra.ebi.ac.uk)... 193.62.192.7
Connecting to ftp.sra.ebi.ac.uk (ftp.sra.ebi.ac.uk)|193.62.192.7|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 7198680 (6.9M) [application/octet-stream]
Saving to: ‘LOBOT_B_CGG_1_020182.Horse_nuc_wY.realigned.r.t.m.3p1.S.bam.bai’

     0K .......... .......... .......... .......... ..........  0%  469K 15s
    50K .......... .......... .......... .......... ..........  1%  228K 23s
...
  6900K .......... .......... .......... .......... .......... 98%  574K 0s
  6950K .......... .......... .......... .......... .......... 99%  257K 0s
  7000K .......... .......... .........                       100%  695K=24s

2019-09-22 13:51:56 (297 KB/s) - ‘LOBOT_B_CGG_1_020182.Horse_nuc_wY.realigned.r.t.m.3p1.S.bam.bai’ saved [7198680/7198680]
 
ended 
end timestamp: 1569153116

Where are downloaded files :

[tmatejuk@anthill23 ]$ cd /workspace/${USER}/anthill23_wget/results

other / limits

Usually 1 wget process uses only few % of CPU core. And usually download speed for single file from public ftp servers is about ~1MB/s . So more efficient way would be submitting more than one wget process to one core or one wget process with more than one URL. That change however, would complicate significantly batch file and clarity of whole process and it is hard to say how much efficient download process would be.

It is very unlikely but currently ( 2019.09 ) on Anthill cluster described download process has potential to generate about 5GB/s total transfer. Such transfers still would be handled by CeNTs network/storage infrastructure but it is more than possible latency increase of CeNTs storage / network would be noticeable for all users.

anthill_sri013.txt · Last modified: 2023/08/01 01:08 by 127.0.0.1