場景:我有一個程序,它可以是容易使用OpenMP並行化,可以說該程序的主循環是一個用於在其內循環和獨立的數據,所以它paralleizing將是微不足道的。不過目前我不要並行它,而是使用親和度調度。使用OpenMP與Affinity調度進行軟件並行化?
此程序對由在命令行參數的文件夾指定的一些輸入文件的工作。並行運行這個程序,有人可以創建一個bat文件,像這樣:
start \affinity 1 "1" bat1
start \affinity 2 "2" bat2
start \affinity 3 "3" bat3
start \affinity 4 "4" bat4
其中BAT1 - 4是與每一個bat文件不同的輸入文件夾調用main.exe
一個bat文件。因此,在這種情況下,input_folder1, input_folder2, input_folder3, input_folder4
上分別會運行main.exe
的4個實例。
使用類似OpenMP的庫的好處是什麼,而不是親和性調度?我想
- 使用更少的內存,單棧和堆的,而不是一個程序的
n
實例爲n
核心 - 更好的縮放
但我會想到竟看到一個程序實例性能提升?爲什麼如此?
用戶如何不必創建一個巨大的bat文件每次必須並行運行? – NoseKnowsAll