comparison bin/_ex1.sh @ 2:b4801f5696b2

compute node workers, see cirrus_home/bin repo for login node masters
author Henry S. Thompson <ht@inf.ed.ac.uk>
date Mon, 18 Jul 2022 19:22:42 +0100
parents
children 668579197bec
comparison
equal deleted inserted replaced
1:d5b6748f29a9 2:b4801f5696b2
1 #!/bin/bash
2 # This runs on the compute nodes...
3 # count top 21 solitary languages in parallel, taking input directly from /work/dc007/dc007/hst/results/$1/cdx_counts/xxx.tsv
4
5 N=$SLURM_JOB_NUM_NODES
6 n=$SLURM_NTASKS
7 c=$SLURM_CPUS_PER_TASK
8 nodename=$SLURMD_NODENAME
9 local=$SLURM_LOCALID
10 node=$SLURM_NODEID
11 task=$SLURM_PROCID
12
13 threadsPerTask=2
14 pjobs=$((c / $threadsPerTask))
15
16 cc=$1
17 resdir=$W/$USER/results/$cc/$2
18 srcdir=$W/hst/results/$cc/cdx_counts
19 langs=$3
20 s1=$4
21 sn=$5
22
23 echo $(date) task $n.$task on $nodename:$N.$node start
24
25 mkdir -p $resdir
26
27 doit () {
28 echo $(date) start $1 $task $PARALLEL_SEQ
29 fgrep ' w ' $srcdir/$1.tsv | awk 'BEGIN { | uniq -c | \
30 $W/shared/bin/uniq_merge.py > $resdir/${langs}_$1.tsv
31 echo $(date) end $1 $task $PARALLEL_SEQ
32 }
33
34 export -f doit
35 export srcdir resdir task
36
37 seq $s1 $sn | while read i
38 do if [ $((i % $n)) -eq $task ]
39 then printf '%03g\n' $i
40 fi
41 done | \
42 parallel -j $pjobs doit '{}'
43
44 echo $(date) task $n.$task on $nodename:$N.$node end
45