并行程序设计第一次作业
定义最后返回的累加值$sum$,以及各个核中操作数的始末$my \underline{ }first \underline{ } i, my \underline{ } last \underline{ } i$:
1 | sum=0; |
在多个核中分别进行累加操作:
1 | for(i=my_first_i;my_i<my_last_i;i++){ |
当有$n$个数且有p个核时,可以知道
大多数核处理的数的数量为$ave=n/p$个;
平均分配后剩余的数字有$remain=n%p$个;
给每个核进行分配,如果不整除,就把余数分配到各个核中。如果被分配到,则当前核个数+1;反之则不变。
1 | ave=n/p; |