多核之间工作的协调
多个核之间在解决同一个任务的时候要进行任务的协调。这些协调一共跟为三类:
Communication(通许)- 一个或者多个核发送他们当前完成的结果到另一个核中进行任务的整合
Load balancing (负载均衡) - 将任务平均地分配给每一个参与的核,使得这些核之间不会出现某个或者某些核工作量太重的问题
Synchronization(同步)- 每个核是独立完成自己的任务,要抱成每个核不会比其他核快很多。
前面两种都比较容易理解。最后一个呢可以看下面的例子:
下面是一段伪代码-
if (I`m the master core)
for(my_i = 0; my_i < n; my_i ++)
scanf("%1f". &x[,y_i])
mater核读取数据,然后将数据分配到其他的核中进行执行。那么,剩余的所有的核都要等master核初始化数据完成之后才可以执行。