我試圖運行一個高度多線程的應用程序,並想測量其性能與不同的核心(0,1,2,3,4,5,6 ... 12)。用Google搜索,當我看到taskset的,爲什麼taskset對fedora沒有影響?
taskset 0x00000003 ./my_app
,但是當我看到的Fedora的系統監控,那隻能說明一個核心做100%,其他僅佔12%,0%,...等。 有沒有什麼辦法可以告訴程序在某個核心上運行。我也聽說過一個選項,如-t #no的核心。像
./my_app -t2
爲0和1的核心..但是這也沒有影響 我究竟做錯了任何一個可以請指引我走向正確的方向。
謝謝@jmetcalfe ..正在使用-t2和taskset類似..當我嘗試運行像taskset-pc 2 29537這樣的程序後運行時,仍然沒有任何效果,我可以在系統監視器上看到只有一個核心) – pokche
該命令的作用是將進程29537移動到核心2.如果要強制將兩個特定線程強制到2個核心上,則需要兩個任務集命令,每個線程一個 – jmetcalfe
如何taskset -pc 0-1 5984。 (5984是my_app的進程ID)。這會把這個過程分成0和1個核心嗎?假設進程有很多pthreads在進程的後臺運行..而且你是否還知道其他任何方式來強制程序運行在特定的線程中,到目前爲止我學到的是它可以完成,但是我的程序運行也必須支持它 – pokche