現在のプロセス:
- ファイルがあり
tar.gz
ます。(実際、私はそれらを約2000個持っていますが、それは別の話です)。 - 一時ディレクトリを作成し、
tar.gz
ファイルを抽出して、100,000個の小さなファイル(それぞれ約600バイト)を表示します。 - ファイルごとに、それを処理プログラムにキャットし、そのループを別の分析プログラムにパイプして、結果を保存します。
私が使用しているマシンの一時的なスペースは、これらのプロセスの1つを一度に処理することはほとんどできません。デフォルトで送信される、16(ハイパースレッドデュアルクアッドコア)を気にする必要はありません。ディスクに保存せずにこのプロセスを実行する方法を探しています。を使用してファイルを個別にプルすることによるパフォーマンスの低下tar -xf $file -O <targetname>
は法外なものになると思いますが、それは私が立ち往生していることかもしれません。
これを行う方法はありますか?
編集:2人がすでにこの間違いを犯しているので、私は明確にするつもりです:
- 各ファイルは1つの時点を表します。
- 各ファイルは個別に処理されます。
- 処理されると(この場合はフーリエ解析の変形)、それぞれが1行の出力を提供します。
- この出力を組み合わせて、時間の経過に伴う自己相関などを行うことができます。
EDIT2:実際のコード:
for f in posns/*; do
~/data_analysis/intermediate_scattering_function < "$f"
done | ~/data_analysis/complex_autocorrelation.awk limit=1000 > inter_autocorr.txt