多体素模式识别工具箱(TDT toolbox )如何并行计算?
问题描述
在32核的服务器上运行The decoding toolbox (TDT)。利用searchlight的方法分析,searchlight的数目是140434个。
解码代码如下:
cfg = decoding_describe_data(cfg,{labelname1 labelname2 labelname3 labelname4},[-1.5 -0.5 0.5 1.5],regressor_names,beta_loc);
cfg.decoding.method = ‘regression’; % choose this for regression
cfg.results.output = ‘zcorr’;
如此运行代码将花费数天不止,多模式识别工具箱(TDT toolbox )如何并行计算?
解决方案一
1、明确探照灯的数目n_sl,假设没有并行化处理。假设处理数据利用n_split 个并行迭代。于是可以将不同顺序的探照灯并行处理完成后,将结果进行累加,从而完成加速。
iter = 1;
n_sl = 49000;
n_split = 7;
splitsize = ceil(n_sl/n_split);
cfg.searchlight.subset = (iter-1)*splitsize + (1:splitsize); % would run the first 7k searchlights
根据这个示例,更改不同的iter值,就可以得到不同位置的searchlight结果。然后利用matlab parfor 可以完成整个程序的并行。可参考如下代码进行修改完善:
pool = gcp(‘nocreate’);
num_workers = pool.NumWorkers;
num_searchlights = size(misc.residuals,2);
searchlights_per_worker = ceil(num_searchlights/num_workers); % Divide the task up into the number of workers
parfor crun = 1:num_workers
results{crun} = decoding_parallel_wrapper(cfg,misc,searchlights_per_worker,crun)
end
all_results = results{1};
for crun = 2:num_workers
all_results.decoding_subindex = [all_results.decoding_subindex; results{crun}.decoding_subindex];
all_results.other_average.output(results{crun}.decoding_subindex) = results{crun}.other_average.output(results{crun}.decoding_subindex);
end
results = all_results;
disp(‘Crossnobis on the whole brain complete, saving results, note this could take some time’)
save(fullfile(cfg.results.dir,‘res_other_average.mat’),‘results’,’-v7.3’)
assert(sum(cellfun(@isempty,all_results.other_average.output))==0,‘Results Output not completely filled despite completion of the parallel loop - please check’)
delete(fullfile(cfg.results.dir,‘parallel_loop*.mat’))
其中调用的decoding_parallel_wrapper如下:
function results = decoding_parallel_wrapper(cfg,misc,searchlights_per_worker,worker_number)
cfg.searchlight.subset = ((worker_number-1)searchlights_per_worker)+1:worker_numbersearchlights_per_worker;
cfg.results.resultsname = cellstr([‘parallel_loop_’ num2str(worker_number)]);
addpath /group/language/data/thomascope/spm12_fil_r6906/ % Your SPM path for the workers
spm(‘ver’); % Needed or sometimes the decoding toolbox complains in parallel that SPM is not initialised.
results = decoding(cfg,[],misc);
多体素模式识别工具箱(TDT toolbox )如何并行计算?相关推荐
- Matlab样条工具箱(Spline ToolBox)与曲线拟合
MATLAB 样条工具箱可以通过节点获得样本函数值,但不能根据x求y或z,也不能求得样本曲线方程.例如: ctrlpoints=[ 0 -1.2 -1.6 -1.4 -1 ...
- MATLAB优化工具箱—Optimization Toolbox™
Optimization Toolbox™ 提供了寻找最小化或最大化目标并同时满足约束条件的函数.工具箱中包括了线性规划 (LP).混合整数线性规划 (MILP).二次规划 (QP).非线性规划 (N ...
- 安装MATLAB工具箱Robotics Toolbox 9.10.0 版本
Robotics工具包是由Peter Croke团队开发的一款基于Matlab平台的机器人运算.仿真的强大工具,提供对经典手臂型机器人研究和仿真有用的功能,例如运动学.动力学和轨迹生成等. 官网地址: ...
- Matlab机器人工具箱Robotics ToolBox --rvctools安装 图文详解(附rvctools工具箱资源)
rvctools工具箱资源地址分享: 链接:https://pan.baidu.com/s/1DqeCwS0F-P2DgQJQeL9boA 提取码:lmgp 首先找到你的Matlab安装位置,找到to ...
- Matlab优化工具箱——Optimization Toolbox
最优化模型的一般形式: 一.三大要素 决策变量 decision bariable 式(1)称为目标函数 objective function 式(2)称为约束条件 constraints (2 ...
- android rom 制作工具,ROM工具箱(ROM Toolbox Pro)
ROM工具箱是一款Android系统管理工具箱程序,功能非常强大,需要注意的是,目前这款软件支持绝大多数机型,且需要ROOT权限! 这款软件除了强大功能外,值得一提的是它的软件界面,我感觉还是比较漂亮 ...
- matlab nag 工具箱,matlab 数值算法工具箱 NAG toolbox
用了那么长的matlab,似乎很少听人提到过NAG toolbox ,今天用了,别有一番感受. 所谓NAG,就是 Numerical Algorithms Group . http://www.nag ...
- MATLAB机器人工具箱Robotics Toolbox安装——以Win10环境下MATLAB2017b为例【个人学习笔记】
MATLAB学习--经验与交流[个人学习笔记] 此处安装的机器人工具箱版本为10.4:MATLAB2017b. 安装包来源:机器人工具箱官网:https://petercorke.com/toolbo ...
- matlab优化坐标,Matlab优化工具箱——Optimization Toolbox
最优化模型的一般形式: 一.三大要素 决策变量 decision bariable 式(1)称为目标函数 objective function 式(2)称为约束条件 constraints (2 ...
最新文章
- Centos和Redhat的区别和联系
- @autowired注解_品Spring:对@Autowired和@Value注解的处理方法(文末附spring系列资源合集)...
- 复制MySQL实时_自制mysql主从复制(实时)软件——实现
- c语言 while 教案,c语言电子教案(刘丹)
- CTFshow php特性 web141
- 中国.NET域名注册量近55万个 稳居全球第三位
- sklearn中eof报错_sklearn中的数据预处理和特征工程
- 阿里云佘俊泉:创新探索不停,边缘云持续为客户创造价值
- 站在智能路由的风口,他选择把传统OA放进盒子
- 面试 技术 教训_我如何应用从失败的技术面试中学到的经验教训来获得5个工作机会
- html怎么去li间隙,求助大神 如让图片展示在li标签里面,不要间隙 谢谢
- linux socket 模式,pythonsockets:如何在linux中启用混杂模式
- 开发微信网页及调试方法
- java url解码_URL的编码和解码
- 龙芯2F装debian5
- How I Hacked Facebook with a Word Document
- redis学习之redis的发布和订阅
- 安卓系统监控任务管理器App推荐
- 外贸客户邮箱用什么?外贸哪个邮箱好?
- 视频剪辑自学怎么入门?借助这款软件可以达到意想不到的效果