From 4a7c263734f23fc6b2ef0e6f8adb1ce344a22053 Mon Sep 17 00:00:00 2001 From: "Steinar H. Gunderson" Date: Fri, 12 Dec 2014 19:12:25 +0100 Subject: [PATCH] Use GNU parallel instead of rolling our own (parallel-parse-pgn.sh is unchanged, though). Allows us to limit parallel binloader instances, since we have had some RAM issues. --- build-book.sh | 14 +++++--------- 1 file changed, 5 insertions(+), 9 deletions(-) diff --git a/build-book.sh b/build-book.sh index 38284cf..7d49663 100755 --- a/build-book.sh +++ b/build-book.sh @@ -2,7 +2,8 @@ set -e -SHARDS=40 +export SHARDS=40 +export PARALLEL_LOADS=20 # Reduce if you have problems with OOM rm -f part-*.bin part-*.mtbl part-*.mtbl.part???? open.mtbl.new open.mtbl.part???? open.mtbl.part????.new 2>/dev/null @@ -13,17 +14,12 @@ for FILE in "$@"; do done date -for FILE in part-*.bin; do - ( ./binloader "$FILE" "${FILE/bin/mtbl}" $SHARDS ) & -done -wait +echo "Loading..." +parallel -i -j ${PARALLEL_LOADS} bash -c 'FILE="{}"; set -x; ./binloader "$FILE" "${FILE/bin/mtbl}" $SHARDS' -- part-*.bin rm -f part-*.bin -for X in $( seq 0 $(( SHARDS - 1 )) ); do - ( ./binmerger part-*.mtbl.part$( printf %04d $X ) open.mtbl.part$( printf %04d $X ).new ) & -done -wait +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 )) ) for X in $( seq 0 $(( SHARDS - 1 )) ); do mv open.mtbl.part$( printf %04d $X ).new open.mtbl.part$( printf %04d $X ) -- 2.39.2