Ускорить пост кровать параллелизмом

Я использую инструмент под названием bedpostx, который используется для подгонки диффузионной модели к моим (предварительно обработанным) данным. Проблема в том, что этот процесс был запущен более 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

1 ответ

BedpostX довольно хорошо распараллелил себя командой FSL. Тебе было бы гораздо лучше воспользоваться этим напрямую.

Если вы хотите быстрый и простой способ распараллеливания, посмотрите Распараллеливание FSL без боли от NeuroDebian.

Другие вопросы по тегам