GIMPS.Hong Kong

任何人都可以參與,共同搜尋下一個梅森質數!


多處理器、多核心、多線程

GIMPS 牽涉大量運算,現代的處理器都已經具備多工功能,即使是家用的電腦,動輒都有 4 核心、8 核心,再加上支援多線程,隨便一部電腦便有 10 個以上的邏輯處理器 (logical CPU)。GIMPS 是否可以自動識別這些多工處理器?如果要充分發揮處理器的運算能力,是否需要同時執行多個 GIMPS 程式?

簡單答案是 GIMPS 有能力自動識別處理器的多工能力,調配足夠數量的計算工作給每一個核心和線程。即使是多處理器的電腦(家用電腦一般很少有多個處理器),GIMPS 也能自動識別,充分運用。

所以我們無需執行多個 GIMPS 以充分利用電腦的運算力。

剛好相反,我們有時反而不想 GIMPS 用盡電腦的運算力做成系統癱瘓,本來只打算把剩餘的運算力貢獻出來,現在反客爲主,被 GIMPS 搶奪了所有的 CPU 資源。解決辦法有兩個:

  1. 限制 GIMPS 使用的核心數量,例如你的處理器有 4 核心,GIMPS 自動設定爲用盡 4 個核心,你可以調整爲只使用兩個核心。
  2. 降低 GIMPS 程式的優先程度,讓其他程式例如系統程式、桌面應用程式等等優先獲得 CPU 資源,只有當其他程式暫停運作(例如等待用戶輸入),才執行 GIMPS。

在 Windows 中調整 CPU 核心的使用

首先在菜單中選擇 Test -> Worker Windows…

然後在 CPU cores to sue (multithreading): 中填入允許 GIMPS 使用的處理器核心數量,GIMPS 自動偵測核心的數量並以此爲預設值。

在 Linux 或 MacOS 中調整 CPU 核心的使用

首先利用終端軟件到 mprime 的目錄並執行 GIMPS:

./mprime -m

輸入 2,程式會詢問使用多少處理器核心:

  1. Number of workers to run? 這個數字等於有多少顆 CPU。
  2. Type of work to get. 一般選擇 0,即讓 GIMPS 自行選擇工作類別。
  3. CPU cores to use (multithreading). 這個數字就是問有多少個核心。例如你有兩顆 CPU,每一個有 8 核心,每一個核心有 2 線程,總共就是 2 x 8 x 2 = 32,輸入一個較小的數字,保留部分運算力給其他進程使用。
  4. Get occasional proof certification work。回答 yes 就行了。

調整 GIMPS 程式的優先程度

在 Windows 中可以使用 Task Manager 來調整個別程式的優先程度。

在 Linux 或 MacOS 中可以使用 nice 指令,例如

nice ./mprime -m

啓動 mprime,並把它的優先程度降低。

使用 WordPress.com 設計專業網站
立即開始使用