2022-09-06

MC最佳化(或WFO)電腦升級評估與效能驗收

警語:最佳化是雙面刃,可以讓人成仙,亦可成魔,請謹慎使用!

最佳化或WFO(兩者其實都適用本文章,以下直接簡稱最佳化)很花時間,要升級電腦才能縮短最佳化運算時間,升級過程大概可以分成以下幾個階段

  1. 電腦轉移很麻煩
  2. 升級程度選項
  3. 最佳化縮短率預估
  4. 要花多少錢(C/P值)、在哪裡DIY
  5. 燒機硬體驗收
  6. 單次縮短達成率驗收
  7. 批次縮短達成率驗收

電腦轉移很麻煩

舊電腦用的好好的,想到移轉就懶的升級,但其實可以不用移轉,依舊繼續用你習慣的舊電腦,要執行最佳化時才打開並用遠端桌面連線到新的電腦即可(可以想像成多了一台On-Demand伺服器在身邊),實體上就只是多了以下幾個東西而已

  • 一台新的實體主機
  • 一條電源線
  • 一條Crossover網路線(比較大的電腦商場就有在賣,或者網路上也有在賣)

設定如下

  1. 把Crossover網路線的一端插進舊主機的網孔,在把另一端插進新主機的網孔
  2. 舊主機網路設定如下(舊主機如果沒有多餘的網孔,再買一個USB外接式網卡就好了)
    1. IP:10.0.0.99
    2. Gateway:255.255.255.0
  3. 新主機網路設定如下
    1. IP:10.0.0.1
    2. Gateway:255.255.255.0
  4. 新主機設定好遠端桌面,由舊主機連進來操作
  5. 每次要使用新電腦前,先同步MC資料,把舊電腦的此目錄完整複製到新電腦的同目錄
    C:\ProgramData\TS Support\MultiCharts64
  6. 如果新主機有短暫上網需求(MC授權需要連網),可透過手機USB上網,或連WIFI

升級程度選項

其實真正能縮短最佳化時間的主要只有CPU,所以直接看CPU就好

註:理論上記憶體的存取速度也會影響運算速度,但實際上在MC最佳化時,沒什麼影響性,請參考此篇『記憶體頻率和雙通道對MC最佳化(或WFO)的影響


最佳化縮短率預估

選好CPU後,再來就是預估最佳化的運算時間能縮短到時麼程度,請使用此網頁的CPU性能比較工具

UserBenchmark的性能比較

把左邊的型號改成舊CPU型號,右邊改成新CPU型號,如下圖所示

再把畫面拉到下面的【Nice To Haves】,請記錄紅框這個值,如下圖所示
以本圖為例(我這次的例子),此值為+334 %,那麼最佳化縮短率預估值為
= 1 / (1 + 334 / 100) = 23.04 %
也就是說,如果原本舊電腦最佳化要跑100分鐘(1小時40分鐘),理論上在新電腦只要跑23.04分鐘,不過實際上可再細分兩種情況:
  1. 單次執行最佳化:實際縮短率>預估縮短率(通常略高)
  2. 批次執行最佳化:實際縮短率=預估縮短率(幾乎等於)
單次執行最佳化的意思是,同時間一次只跑一個最佳化,這種情況的實際縮短率會略高的原因是,UserBenchmark的多執行緒運算是幾乎獨立運算,而MC的多執行緒是協同運算,所以會浪費一些運算時間,等待其他執行緒完成目前的派工後,才再進行下一輪的新派工(用工作管理員查看CPU使用率可看到,每隔一段時間就會出現一小段協調等待CPU空檔,隨即又快速的恢復CPU滿載,請參考下圖),而協調等待空檔會跟邏輯處理器核心(CPU執行緒)有關,邏輯處理器核心越多,協調等待空檔容易越大,舊電腦通常邏輯處理器核心比較少,而新電腦通常邏輯處理器核心比較多,所以才容易造成單次執行最佳化時,實際縮短率通常略高於預估縮短率


另一方面,批次執行最佳化,也就是同時間一次跑好幾個最佳化,這種情況全部的MC最佳化的協調等待空檔不容易全部重疊,所以CPU能持續跑好跑滿,實際縮短率也就會幾乎等於預估縮短率


要花多少錢(C/P值)、在哪裡DIY

AutoBuy與原價屋都可以DIY電腦,實際上根本不用出門,網路選好菜單下訂單即可,組好會配送到你家

估價網頁

如果可以自己配的話,直接配好給他們就可以了,如果不熟悉怎麼搭配的話,可以在AutoBuy留言,指定好CPU,再跟他們說你是要跑模擬的,CPU跑起來會滿載(務必要請他們留意CPU散熱的問題),再讓他們幫你配好一份菜單,你再來微調,不過有幾點要注意

  • 頂級的CPU一定要換一個好一點的空冷散熱器,原廠附的散熱器在最佳化時,很可能仍會讓CPU過熱,導致主機自動重啟
  • 基於前一點的原因,機殼也要選散熱好的,前後有風扇或可裝風扇,也有足夠通風孔
  • 最佳化會跑一段時間,很可能你人不會在現場,電源供應器也不能選太差,不然燒起來很可怕的,就算不燒起來,發出陣陣惡臭也足夠令人噁心的
  • RAM最佳化時16G綽綽有餘(12年的一分K棒歷史資料也才200多MB而已),本文前面提到記憶體的存取速度對最佳化時間沒什麼影響,可以不用特別花錢買超頻記憶體或走雙通道,但如果超頻記憶體只貴一點點,也可以買(可超頻的記憶體,它的體質天生就會比較好;其實CPU也是,但要看預算與CP值),但不要在BIOS打開XMP(記憶體超頻),超頻會影響CPU的保固
  • 最佳化用不到GPU,如果沒有額外需求,可以不用多花這筆錢
  • 其他的東西都選中等的即可,太便宜也沒好貨
我是在AutoBuy買的,我購買的菜單如下

https://diy.autobuy.tw/91671a006

原始總金額為$30,219,但他們幫我開賣場後,優惠價為$29,850

註:我用雙通道超頻記憶體(一套兩支),但後來發現實際用在最佳化時,其實是多餘的(無奈沒人寫測試文告訴我,只能以身試法),如果可以重來一次的話,也許我會改買單條不超頻的記憶體,可以再少1千塊


燒機硬體驗收

在AutoBuy能退貨的只有前七天,所以燒機測試這個階段,一定要先執行

等收到新主機後,如果不放心別人預載的作業系統(怕有病毒或什麼的),可以重新安裝作業系統,可以參考此篇『如何建立及使用USB隨身碟的安裝媒體重新安裝Windows 11/10』,沒有買作業系統,照樣也可以安裝,只是一直處於未啟用的狀態而已,灌好作業系統後,接下來就可進行燒機程序(主要是針對CPU/記憶體進行壓力測試),如果會過熱自動重啟,可以請AutoBuy派物流來收回去檢測(他們會出運費),燒機軟體可以使用以下幾款

  • CoreTemp(看CPU溫度/免費)
  • Prime95(燒機軟體/免費)
  • AIDA64(燒機軟體/可試用)

使用方法可參考網路文章

註:我那份菜單,在室溫下只開窗戶通風,沒開冷氣,用Prime95燒機連續燒12小時,也沒自動重啟,能燒得過,只不過用CoreTemp查看歷史最高溫時,有好幾個核心(應該都是P-Core)過程中最高都曾高達100度(此CPU最高可耐溫100度),但其實只要燒機燒得過,MC跑最佳化一定跑得過(在室溫下只開窗戶通風,沒開冷氣,這台主機同時批次執行7個最佳化,用CoreTemp查看歷史最高溫也才85度)


單次縮短達成率驗收

到這個階段,主機的硬體方面應該已經沒問題了,可以開始在舊主機與新主機進行第一輪最佳化測試比較,請用以下方法來測試

  • 使用Exhaustive(暴力法),不要選基因,因為基因的過程是隨機的,沒有一致性,不適合量測比較
  • 使用時間稍微長一點的最佳化模型,然後等它的進度跑超過5%後,擷取畫面(按下【Win + shift + S】按鍵),把已使用時間與剩餘時間加總起來
  • 另外已使用時間會即時跳動更新,但剩餘時間則是一段時間才更新一次,所以如果最佳化所需時間比較短的話,容易受它影響(長一點才能稀釋它)
以下是我的畫面



  • 舊主機(i5-8400):306(分鐘)
  • 新主機(i9-12900):80(分鐘)
  • 最佳化縮短率預估值:23.04 %
  • 最佳化縮短率實際值:1 / (306 / 80)=26.14 %
  • 單次縮短達成率23.04 / 26.1488 %

前面有提到,在單次最佳化的情況下,縮短率的實際值通常容易略高於預估值,所以單次縮短達成率也通常容易略低,不過如果出現以下這兩種情況

  1. 單次縮短達成率過低
  2. 單次縮短達成率過高

這兩者都是不對的,所以要重新檢視新電腦與舊電腦,兩者任何一方都可能有問題,可以試著在這兩方執行以下動作

  1. 新增一個登錄機碼(此作法與在BIOS把Hyper Threading關閉效果相同)
    電腦\HKEY_CURRENT_USER\SOFTWARE\TS Support\Power Language\StudyRunner\NumberOfThreadsOnOptimization (DWORD)
    把此值設定為實體處理器核心數
    注意:機碼路徑【TS Support】下面緊接【Power Language】,中間沒有隔著【MultiCharts64】
  2. 或在MC最佳化時的【Number of CPU cores to use】拉到實體處理器核心數,預設是會在邏輯處理器核心數(執行緒)

如果新增該登入機碼,則無需再手動調【Number of CPU cores to use】,兩者擇一嘗試即可


舉例來說,當我的新主機環境如下時
  • 作業系統:Windows 11專業版(版本21H2)
  • MultiCharts:64位元版 Version 14.0 Release (Build 21978)
  • BIOS的Hyper-Threading狀態為開啟,且也無新增NumberOfThreadsOnOptimization機碼
執行畫面長這副德性

  • 新主機(i9-12900):134(分鐘)
  • 最佳化縮短率實際值:1 / (306 / 134)=43.79 %
  • 單次縮短達成率僅僅只有=23.04 / 43.79=52 %
達成率這麼低,顯然有問題,當我在BIOS把Hyper-Threading關閉之後(或新增登錄機碼),達成率才跳到正常的88%;如果不在BIOS關閉Hyper-Threading,而是在MC最佳化時把【Number of CPU cores to use】拉到16(實體處理器核心數),則MC最佳化預估時間也會慢慢收斂,讓達成率能靠近88%的程度


批次縮短達成率驗收

在這個階段,請準備一個碼表(手機裡面就有了),用以下方法來測試

  • 使用Exhaustive(暴力法),不要選基因,因為基因的過程是隨機的,沒有一致性,不適合量測比較
  • 開始之前要把MC的優先權調低,方法請參考此文『最佳化與WFO電腦執行技巧
  • 如果作業系統為Windows 11,需要額外設定作業系統,請參考此文『Windows 11下執行批次MC最佳化(或WFO)必須額外設定
  • 這次要改採用時間稍微短一點的最佳化模型(把參數組合調少一點),同時間一次跑三個此模型的最佳化,先把三個MC都用滑鼠點到最佳化的最後一個畫面,然後暫時還不要開始執行
  • 接著開啟工作管理員,等到CPU使用率靜止後,就可以快速的在三個MC畫面按下最後一個按鈕,開始批次執行最佳化,開始跑的時候,請按下碼表開始計時
  • 再把工作管理員放到最上層,觀察這三個MC應用程式的CPU使用率,一直等到這三個MC全部的CPU使用率都低於N%或逼近0的時候(N = 100 / 邏輯處理器核心數),才按下碼表結束計時
以下是我的批次最佳化測試結果
  • 舊主機(i5-8400):1951(秒)
  • 新主機(i9-12900):447(秒)
  • 最佳化縮短率預估值:23.04 %
  • 最佳化縮短率實際值:1 / (1951 / 447)=22.91 %
  • 批次縮短達成率23.04 / 22.91100 %

前面有提到,在批次最佳化的情況下,實際縮短率會幾乎等於預估縮短率,所以這樣是很OK的,不過如果你的主機在沒有CPU超頻的情況下,批次縮短達成率往上或往下偏離超過5%,那很可能就有問題了,不過這次就不用考慮Hyper-Threading的因素了,因為Hyper-Threading無論是開啟或關閉都不會影響批次縮短達成率(Hyper-Threading只會影響單次最佳化)


最後重點整理

  • 可以用UserBenchmark來預估每顆CPU的最佳化縮短率
  • CPU價格可以在AutoBuy或原價屋查到,再加$10,000~$15,000,大約就是DIY主機的價格
  • 用最佳化縮短率、DIY主機價格,找出適合自己的C/P值
  • 雙通道/超頻記憶體這筆錢或許可以省下來,不如直接把CPU改成K版的CPU來的實際有感
  • Prime95燒機燒得過的話,MC最佳化一定過的了
  • 單次縮短達成率驗收不過的話,可以試著在BIOS關閉Hyper-Threading(或把使用核心數拉到實體核心數)
  • 批次縮短達成率則與Hyper-Threading無關
  • 如果該主機的定位只是讓MC執行最佳化,可直接在BIOS把Hyper-Threading關閉

  • 相關文章











    沒有留言:

    張貼留言

    (僅顯示與本文切題的留言)

    注意:只有此網誌的成員可以留言。