Parallel processing 如何使用pararrayfun(或任何其他函数也可以)在倍频程中并行for循环?
嗯,我对倍频程不熟悉,我想知道如何在倍频程中实现for循环的并行执行 我正在寻找以下代码的并行实现(这不是我试图执行的确切代码,而是与此类似的代码) 目前,我正在使用并行pkg(pararrayfun)来实现这一点,但如果有任何其他方法(包)可以实现倍频程中for循环的并行化,那么我也愿意探索这一点Parallel processing 如何使用pararrayfun(或任何其他函数也可以)在倍频程中并行for循环?,parallel-processing,octave,Parallel Processing,Octave,嗯,我对倍频程不熟悉,我想知道如何在倍频程中实现for循环的并行执行 我正在寻找以下代码的并行实现(这不是我试图执行的确切代码,而是与此类似的代码) 目前,我正在使用并行pkg(pararrayfun)来实现这一点,但如果有任何其他方法(包)可以实现倍频程中for循环的并行化,那么我也愿意探索这一点 谢谢大家! 正如您所提到的,“官方”解决方案是并行pkg。为什么这对你不起作用?@tpapastylianou,很抱歉延迟回复。我在并行包中实现parcellfun()函数时遇到了以下问题。错误:p
谢谢大家! 正如您所提到的,“官方”解决方案是并行pkg。为什么这对你不起作用?@tpapastylianou,很抱歉延迟回复。我在并行包中实现parcellfun()函数时遇到了以下问题。错误:parcellfun:fun必须是函数句柄或名称。这就是我如何调用parcellfun函数
parcellfun(nprocs、@processingData(array\u abc)、array\u abc、delta\u avg)
//这里的数组abc是输入数组,delta avg是输出数组,我想我的语法搞错了;如果你能帮我弄明白这一点,那会很有帮助的。好吧,在这里提供这个作为实际答案是没有意义的,因为这不是帖子中所问的实际问题,但是是的,实际上你使用的函数是错误的。@processingData(array_abd)
不是此函数所期望的。您应该传入一个函数句柄,或者一个适当的匿名函数来处理您的输入。“官方”解决方案是并行pkg,正如您所提到的。为什么这对你不起作用?@tpapastylianou,很抱歉延迟回复。我在并行包中实现parcellfun()函数时遇到了以下问题。错误:parcellfun:fun必须是函数句柄或名称。这就是我如何调用parcellfun函数parcellfun(nprocs、@processingData(array\u abc)、array\u abc、delta\u avg)
//这里的数组abc是输入数组,delta avg是输出数组,我想我的语法搞错了;如果你能帮我弄明白这一点,那会很有帮助的。好吧,在这里提供这个作为实际答案是没有意义的,因为这不是帖子中所问的实际问题,但是是的,实际上你使用的函数是错误的。@processingData(array_abd)
不是此函数所期望的。您应该传入一个函数句柄,或者一个适当的匿名函数来处理您的输入。
`%read a csv file
master_sheet = csv2cell('master_sheet.csv');
delta = 0.001;
nprocs= nproc();
%extract some values from the csv file and store it in the variables
a = master_sheet{34,2} ;
b = master_sheet{38,2} ;
c = master_sheet{39,2} ;
for i=0:1000
%%create variants of a,b and c by adding a delta value
a_adj = a +(i)*delta ;
b_adj = b +(i)*delta ;
c_adj = c +(i)*delta ;
%club all the above variables and put it to an array variable
array_abc = [a_adj, b_adj, c_adj];
%send this array as an argument/parameter to a function
%processingData() function would essentially perform some series of calculation and would write the
%results onto a file
processingData(array_abc);
endfor