0

私は拡散モデルを私の(前処理された)データに適合させるために使用されるbedpostxと呼ばれるfslツールを使用しています。問題は、このプロセスが 24 時間以上実行されていることです。貧乏人並列化で処理を高速化したい。そのためには、複数のターミナルで bedpostx_single_slice.sh を実行し、これをスライスのバッチに適用する必要があります。私はエラーが発生し続けます。これは、ターミナルで起動するコマンドです。

bedpostx_single_slice.sh Tirocinio/Dati_DTI/DTI_analysis_copy 37

最初の入力はデータのあるディレクトリで、37 は分析したい i 番目のスライスです。これは私が得るエラーです:

terminate called after throwing an instance of 'std::bad_alloc'
what():  std::bad_alloc
Aborted (core dumped)

残念ながら、このツールに関するドキュメントはあまりありません。また、私はプログラミングの初心者です。

それが役立つ場合は、bedpostx_single_slice.sh のスクリプトを次に示します。

#!/bin/sh
#   Copyright (C) 2012 University of Oxford

export LC_ALL=C

subjdir=$1
slice=$2
shift
shift
opts=$*

slicezp=`${FSLDIR}/bin/zeropad $slice 4`

${FSLDIR}/bin/xfibres\
 --data=$subjdir/data_slice_$slicezp\
 --mask=$subjdir/nodif_brain_mask_slice_$slicezp\
 -b $subjdir/bvals -r $subjdir/bvecs\
 --forcedir --logdir=$subjdir.bedpostX/diff_slices/data_slice_$slicezp \
 $opts  > $subjdir.bedpostX/logs/log$slicezp  && echo Done && touch $subjdir.bedpostX/logs/monitor/$slice

4

1 に答える 1

0

BedpostX は現在、FSL チームによってかなりうまく並列化されています。それを直接利用する方がはるかに良いでしょう。

迅速かつ簡単に並列化する方法が必要な場合は、NeuroDebianの手間をかけずに Parallelizing FSL をチェックしてください。

于 2016-02-17T03:43:43.783 に答える