線程綁定CPU,顧名思義,就是建立線程和某個或某些CPU的關聯,使得線程只能運行在指定的CPU上。個人認爲,這有三個好處:
1.減小L1 L2cache的miss
2.減少線程調度的開銷
3.合理分配計算資源給I/O密集型線程和CPU密集型線程。
具體到實現上,不管是線程還是進程,都是通過設置親和性(affinity)來達到目的。對於進程的情況,一般是使用sched_setaffinity這個函數來實現,網上講的也比較多,這裏主要講一下線程的情況。
線程綁定CPU,顧名思義,就是建立線程和某個或某些CPU的關聯,使得線程只能運行在指定的CPU上。個人認爲,這有三個好處:
1.減小L1 L2cache的miss
2.減少線程調度的開銷
3.合理分配計算資源給I/O密集型線程和CPU密集型線程。
具體到實現上,不管是線程還是進程,都是通過設置親和性(affinity)來達到目的。對於進程的情況,一般是使用sched_setaffinity這個函數來實現,網上講的也比較多,這裏主要講一下線程的情況。