我有一个包含数据的数组x [].还有一系列"系统状态"c [].过程:
for(i = 1; i < N; i++) { a = f1(x[i] + c[i-1]); b = f2(x[i] + c[i-1]); c[i] = a + b; }
有没有发现的价值的任何有效的方式f1
,并f2
使用2个并行线程2核心系统?我的意思是以下(伪代码):
thread_1 { for(i = 1; i < N; i++) a = f1(x[i] + c[i-1]); } thread_2 { for(i = 1; i < N; i++) { b = f2(x[i] + c[i-1]); c[i] = a + b; //here we somehow get a{i} from thread_1 } }
f1
并且f2
不是时间消耗,但必须多次计算,所以期望的加速大约是x2.请参见图表以获取图形表示:
寻找Windows的代码示例.