Parallel merging two sorted arrays。解決這個問題,需要從以下幾個方面思考:
balancing the load among compute cores -minimizing the extra work brought about by parallelization -minimizing inter-thread synchronization -Efficient use of memory
其中,矩陣是這樣構建的:若A[i] >= B[i], 則matrix[i][j] = 1, or matrix[i][j] =0; 其中,路徑就是1與0的交界線(線上有一些點組成,pair(x, y)的集合)。在上一步構造出merge path后,每個線程平均分配任務,如,第i個線程從第j個元素開始處理,則每個線程的起始pair是這樣獲得的:x+y = j。 algo:
example:它的實驗結果是多線程與單線程比的。(起始單線程效果是比串行差很多的,一方面計算對角線與mergepath交點需要開銷,另一方面omp開啟有開銷。)
n個線程,相比單線程,大約能獲得n倍的加速比。

新聞熱點
疑難解答