并行池(Parallel Pool)是MATLAB中的一个功能,它允许用户以并行的方式执行计算。在并行池中,可以异步启动任务,以便在后台执行计算。下面是一个示例代码,演示了如何异步启动并行池中的任务:
% 创建并行池
pool = gcp('nocreate'); % 检查是否已经存在并行池
if isempty(pool)
pool = parpool(); % 如果不存在并行池,则创建一个
end
% 异步启动任务
future1 = parfeval(pool, @myFunction, 1, arg1); % 启动第一个任务
future2 = parfeval(pool, @myFunction, 1, arg2); % 启动第二个任务
% 等待任务完成
result1 = fetchOutputs(future1); % 获取第一个任务的结果
result2 = fetchOutputs(future2); % 获取第二个任务的结果
% 打印结果
disp(result1);
disp(result2);
% 关闭并行池
delete(pool);
% 自定义函数
function output = myFunction(arg)
% 这里可以编写自定义的计算代码
output = arg * 2; % 假设这里是一个简单的计算
end
在上述代码中,首先通过gcp('nocreate')
检查当前是否已经存在并行池,如果不存在则使用parpool()
创建一个。然后,使用parfeval
函数启动两个任务,并将任务句柄存储在future1
和future2
变量中。接下来,通过fetchOutputs
函数等待任务完成并获取结果。最后,通过disp
函数打印结果。最后,使用delete(pool)
关闭并行池。
请注意,myFunction
是一个自定义函数,用于模拟实际的计算过程。你可以根据实际需要修改自定义函数的实现。
上一篇:并行池不识别全局变量