以多任务分布Matlab的计算(3)-划分一个参数序列到多任务中 Example: Dividing a Parameter Sweep into Tasks

源代码在线查看: 以多任务分布matlab的计算.txt

软件大小: 2 K
上传用户: leeixndong
关键词: Parameter Dividing Example Matlab
下载地址: 免注册下载 普通下载 VIP

相关代码

				以多任务分布Matlab的计算(3)-划分一个参数序列到多任务中
				Example: Dividing a Parameter Sweep into Tasks
				9/21/2008 11:40:32 AM 
				文章介绍如何划分参数型的多任务序列。
				Matlab并行计算工具箱? ,使我们能够在集群电脑上执行我们的MATLAB ?程序。在本演示中,我们看看如何划分一个拥有大量操作的MATLAB集合成较小的工作单位,我们称这些工作单位为任务,其中每个任务可以在在我们的群集计算机中执行。我们将使用pctdemo_helper_split_scalar和pctdemo_helper_split_vector函数来实现这些功能。
				
				内容目录
				1. 获得配置 
				2. 开始顺序代码 
				3. 分析顺序问题 
				4. 示例:划分一个仿真到多任务中 
				5. 示例:划分一个参数序列到多任务中 
				6. 更多的参数序列 
				7. 划分Matlab操作到多任务中:最佳实践
				
				这一部分,将讲解第5-6节。1-3节见,上一篇文章以多任务分布Matlab的计算(1)-顺序代码,第4节见以多任务分布Matlab的计算(2)-并行循环拆分 。
				
				
				5. 示例:划分一个参数序列到多任务中
				这节,我们将使用sin函数,做简单的例子。首先,让x作为一个长度10的矩阵:
				x = 0.1:0.1:1;
				
				现在,我们希望把sin(x)划分到4个计算机的集群中。我们希望4个机器分别同时执行sin(x(1:3)), sin(x(4:6)), sin(x(7:8))和sin(x(9:10))。因为,这种划分参数序列到多个任务的情况非常常见,所以,我们也做了一个函数:
				
				numTasks = 4;
				[split, numTasks] = pctdemo_helper_split_vector(x, numTasks);
				celldisp(split);
				split{1} =
				    0.1000    0.2000    0.3000
				split{2} =
				    0.4000    0.5000    0.6000
				split{3} =
				    0.7000    0.8000
				split{4} =
				    0.9000    1.0000
				
				现在,无论使用dfeval,还是createJob和createTask,都很容易执行计算了。
				 
				
				y = dfeval(@sin, split, 'Configuration', configName);
				cat(2, y{:})  % Concatenate all the cells in y into one column vector.
				
				ans =
				  Columns 1 through 9
				    0.0998    0.1987    0.2955    0.3894    0.4794    0.5646    0.6442    0.7174    0.7833
				  Column 10
				    0.8415
				
				亦或,
				
				job = createJob(sched);
				for i = 1:numTasks
				   createTask(job, @sin, 1, {split{i}});
				end
				submit(job);
				waitForState(job, 'finished');
				y = getAllOutputArguments(job);
				destroy(job);
				cat(2, y{:})  % Concatenate all the cells in y into one column vector.
				
				ans =
				  Columns 1 through 9
				    0.0998    0.1987    0.2955    0.3894    0.4794    0.5646    0.6442    0.7174    0.7833
				  Column 10
				    0.8415
				
				
							

相关资源