作者softpak (喔喔喔)
看板Minecraft
標題Re: [討論] 請問如何建立大型伺服器(2)
時間Mon May 19 02:24:23 2014
軟體篇
測試環境:
Windows7 +
Aparapi +
OpenCL
測試硬體1:I3-3220 + Quadro K2000 (FP performance:732.7 GFLOPS) 0.7 T
測試硬體2:Phenom II X3 720 + AMD 6670 (FP performance:1,360.0 GFLOPS)1.3 T
測試硬體3:G3420 + R270X (FP performance:2,560.0 GFLOPS)2.5 T
模式1:JTP模式(Java Thread Pool)
模式2:GPU模式(用GPU計算)
(原本有要用E5,但是LINUX下的環境一直建置失敗,只好先拿這三個出來講)
這三台電腦的主要差異在於Conversion Time(GPU模式)
主要是跑四則運算的迴圈(10次)
硬體1平均為22ms
硬體2平均為50ms
硬體3平均為45ms
(影響Convertion Time的主因應該是處理器沒錯)
而四則運算的時間如下:
GPU平均執行時間為1ms
JTP平均執行時間為2ms
但是將迴圈增加到100次時
GPU平均為2ms
JTP平均為8ms
迴圈增加到1000次
GPU平均為3ms
JTP平均為25ms
從這可以得知GPU的確是很快
但是以Aparapi來說還無法做即時運算
(仔細思考過後 轉換時間普遍小於50ms 1 tick 應該可以承擔重要迴圈的運算)
這個套件算是最好上手的
如果要快速套用在麥塊的伺服端
我想是可行的
像是非即時的運算如地圖的載入(手拿的地圖)
一次就要跑128*128次的迴圈
像是CHUNK 產生器
一次要產生上千個陣列
還有AI的部分
以上參考Spigot的原始碼
使用了大量迴圈
就很適合丟給GPU算
最近會先嘗試將比較簡單的部分作程式碼的置換
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 1.172.58.9
※ 文章網址: http://webptt.com/m.aspx?n=bbs/Minecraft/M.1400437466.A.CCF.html
1F:推 GTR12534:專業推可是都看不懂(炸 05/19 06:59
2F:推 up9cloud:hi想請教,這樣的效益比換算成設備價錢。會合算嗎? 05/19 11:04
這個要做個浮點運算效能與價格的比較表
以GTX TITAN BLACK來說FP效能為5121.0 GFLOPS(5.1 T)
價格為3萬5左右
最低階的PHI-3120為例 FP效能為1003.0 GFLOPS(1.0 T)
售價為6萬左右
不過專門用來做平行處理的協同處理器跟顯卡的運算單元當然是有差別的
我個人認為用一般個人電腦等級的顯卡就能夠自己玩玩看
市面上5000塊左右的顯卡FP效能普遍在2.0 TFLOPS
絕對划算
最後還有一點很重要
就是GPU模式在轉換時
會消耗部分處理器效能
占用約10~20%不等
所以實際使用情形尚須測試
處理器不能太差就是了
此時更多的核心就有非常大的幫助了
※ 編輯: softpak (1.175.118.105), 05/19/2014 13:25:31
3F:推 janice001:我有問題! 現行上萬人伺服器已經存在 所以程式面上 05/19 13:35
4F:→ janice001:應該也有解決方案了? 是因為沒有釋出嗎? 05/19 13:35
5F:→ lsslss:國外有出租專架麥塊伺服的伺服器 出租業者還可以幫忙寫插件 05/19 13:44
6F:→ lsslss:高級的方案人數可以無上限 應該是有解決方案 05/19 13:45
幾個比較大的萬人服
以hypixel為例
有玩的人都知道他分流很多
但並不是全部的玩家都集中在同一張地圖裡
玩家都被分散了
他是無法查詢用了什麼插件
畢竟人家商業化(商業祕密被知道可能就沒錢賺了)
我個人推測是單純用多重世界跟Bungeecord來達成
這樣其實是不需要額外的解決方案
只要伺服器的分流和遊戲內容規劃好就好了
這樣也妥善利用了麥塊伺服端的特性
另外可以提供推文中所謂專業出租麥塊伺服器的業者名稱或網頁嗎?
這樣我也較好參考
※ 編輯: softpak (1.175.118.105), 05/19/2014 14:11:11