通过并行化加速 Bedpost

问题描述 投票:0回答:1

我正在使用名为 bedpostx 的 fsl 工具,该工具用于将扩散模型拟合到我的(预处理的)数据。问题是这个进程已经运行了超过24小时。我想通过穷人并行化来加速这个过程。为此,我应该在多个终端中运行 bedpostx_single_slice.sh,将其应用于一批切片。但我不断收到错误。这是我在终端中启动的命令:

bedpostx_single_slice.sh Tirocinio/Dati_DTI/DTI_analysis_copy 37

第一个输入是包含我的数据的目录,37 是我要分析的第 i 个切片。这是我得到的错误:

抛出“std::bad_alloc”实例后调用终止
什么(): std::bad_alloc
已中止(核心已转储)

不幸的是,关于这个工具的文档并不多,而且我在编程方面还很陌生。

如果有帮助的话,下面是 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
c++ parallel-processing
1个回答
0
投票

BedpostX 现在已经被 FSL 团队很好地并行化了。直接利用这一点会更好。

如果您想要一种快速、简单的并行化方法,请查看 NeuroDebian 的无痛并行化 FSL。

© www.soinside.com 2019 - 2024. All rights reserved.