我想在多個核心中運行我的程序。我的桌面上有12個內核,並且希望計算機能夠逐個使用1,2,3,4,......,11,12,並且要測試程序在不同數量的內核中的執行情況。我嘗試使用-t4或-t 4之後的可執行文件。什麼是在多個核心運行進程的命令行參數(linux)
./a.out -t4
但我不能確定它是否正好使用4。任何人都可以幫助我理解這一點,或者將我指向正確的方向。
我想在多個核心中運行我的程序。我的桌面上有12個內核,並且希望計算機能夠逐個使用1,2,3,4,......,11,12,並且要測試程序在不同數量的內核中的執行情況。我嘗試使用-t4或-t 4之後的可執行文件。什麼是在多個核心運行進程的命令行參數(linux)
./a.out -t4
但我不能確定它是否正好使用4。任何人都可以幫助我理解這一點,或者將我指向正確的方向。
你應該檢查出libnuma庫。
您可以設置您希望不同線程以編程方式運行的或通過使用命令行選項運行的核心。以下是一些詳細文檔的鏈接:http://www.halobates.de/numaapi3.pdf
你想設置核心親和力嗎? http://stackoverflow.com/questions/8486314/setting-processor-affinity-with-c-that-will-run-on-linux和http://www.cyberciti.biz/tips/setting-processor-affinity- some-task-or-process.html – thang
謝謝thang的鏈接..你看我正在使用線程,並希望這些線程使用從1 - 12的核心。我聽說我們可以做到這一點使用Linux中的命令行像 - t4 for four cores .. – pokche
你不能真正控制你正在運行的是哪個核心,但是當你創建線程的時候,你可以在你的程序中設置親和力(我認爲api是sched_setaffinity) 。我認爲這是需要在代碼中完成的事情,而不是在命令行中。你的代碼可以通過命令輸入來控制線程/內核的數量。 – thang