有人可以帮我理解矢量化吗?

时间:2013-02-13 03:21:30

标签: parallel-processing vectorization

我真的试图围绕矢量化,但我似乎无法理解它。我不知道我是否不理解如何向量化,或者如果我不理解正在使用的数组符号。我正在学校学习的循环示例如下:

for (M=0; M< number_of_iterations/2; M++){
   for (i=2; i<n-1; i++)  
      for (j=1; j<n-1; j++)  
          y[i][j]= (x[i-1][j]+x[i][j-1]+x[i+1][j]+x[i][j+1]+x[i-2][j])/5.;

我不确定我是否完全了解依赖项的全部内容 - 是否有一种方法可以使用数组表示法对其进行矢量化,或者我是否需要以某种方式调整它来解释整个依赖项?

提前感谢您的帮助。

2 个答案:

答案 0 :(得分:1)

假设xy是完全不重叠的不同数组,则没有依赖关系。 x永远不会更改,并且所有计算的结果仅取决于x。没有计算取决于先前计算的结果。

该循环中使用的计算和赋值可以按任何顺序和任何并发发生。

答案 1 :(得分:1)

首先,我建议您使用brakets {}来组织代码行并更好地理解它。 其次,请查看此页面:http://www.javatutorialhub.com/java-arrays.html Thirg,总是从简单的例子开始,不要混淆。