]> git.sesse.net Git - remoteglot-book/blob - build-book.sh
Use GNU parallel instead of rolling our own (parallel-parse-pgn.sh is unchanged,...
[remoteglot-book] / build-book.sh
1 #! /bin/bash
2
3 set -e
4
5 export SHARDS=40
6 export PARALLEL_LOADS=20  # Reduce if you have problems with OOM
7
8 rm -f part-*.bin part-*.mtbl part-*.mtbl.part???? open.mtbl.new open.mtbl.part???? open.mtbl.part????.new 2>/dev/null
9
10 for FILE in "$@"; do
11         date | tr -d "\n"
12         echo "  $FILE"
13         ./parallel-parse-pgn.sh "$FILE"
14 done
15 date 
16
17 echo "Loading..."
18 parallel -i -j ${PARALLEL_LOADS} bash -c 'FILE="{}"; set -x; ./binloader "$FILE" "${FILE/bin/mtbl}" $SHARDS' -- part-*.bin
19
20 rm -f part-*.bin
21
22 parallel -i -j ${PARALLEL_LOADS} bash -c 'X={}; set -x; ./binmerger part-*.mtbl.part$( printf %04d $X ) open.mtbl.part$( printf %04d $X ).new' -- $( seq 0 $(( SHARDS - 1 )) )
23
24 for X in $( seq 0 $(( SHARDS - 1 )) ); do
25         mv open.mtbl.part$( printf %04d $X ).new open.mtbl.part$( printf %04d $X )
26 done
27 rm -f part-*.mtbl.part????