GNU並列処理の並行性問題

GNU並列処理の並行性問題

GNU Parallelでスクリプトが正しく実行されるのに問題があります。

同様のものがありますsub_script(これらはすべて実際に単純化されたバージョンです)。

#! /bin/bash   
input=$1  
# input is a date in YYYYMMDD format  
mkdir -p $input

cd $input  
filename=$input'.txt'  
echo 'line1' > $filename  
echo 'The date is: '$input >> $filename

次に、次の multi.sh ファイルがあります。

cd /home/me/scripts; ./sub_script 20141001   
cd /home/me/scripts; ./sub_script 20141002   
cd /home/me/scripts; ./sub_script 20141003   
cd /home/me/scripts; ./sub_script 20141004   
cd /home/me/scripts; ./sub_script 20141005    

このコマンドを使用して、GNUを使用して複数のコアを介してこれらすべての機能を並列に実行しようとしています。

parallel -j 3 --delay 1 < multi.sh 

3つのコアで実行されます。問題を回避するために、各行の実行間に1秒の遅延を実装しようとしましたが、機能しませんでした。

無効なファイルを含む新しいディレクトリの使用に問題があります。これmulti.shは、によって指定されたコア数よりも多くの行がある場合にのみ発生し、時々発生します-j(常に再現可能ではありません)。parallel行を連続して2回再実行すると、他の結果が得られます。場合によっては、ファイルの代わりにディレクトリ20141002.txtにファイルをインポートすることもあります。それ以外の場合は、ディレクトリからのみファイルをインポートできます。2014100520141005.txt20141002.txt201005

この問題を解決する方法に関する提案はありますか? GNU パラレルが優先されますが、他のコマンドも試すことができます。

ベストアンサー1

並列性を使用する場合、追加のバッチファイルが必要なのはなぜですか?

parallel -j3 --delay 1 ./sub_script ::: 20141001 20141002 20141003 20141004 20141005

おすすめ記事