先講一下為什麼會有這樣的想法
大概二十多年前晶片網路(network on chip)就很紅
意思是晶片上有很多運算核心(core),每個core就像一台小電腦
然後把他們連接起來的方式就叫做晶片網路
晶片網路的原理跟電腦網路差不多,但晶片網路會比較有規則性
比較像是電腦教室的電腦,整齊擺放、整齊拉線,不會像是宿舍裡面的電腦
又剛好知道 Linux kernel 的 spinlock 演算法是 MCS
MCS是把等待進入 critical section 的 task 以 linked list 連在一起,形成FIFO
又又剛好,研究所時是做scheduling的,看到linked list,直覺上就是可以scheduling
然後就是最短路徑排程了
跟別人的差別在於,我讀書讀得比較少 :-p
大概十幾年前有人推出一個叫做cohort的演算法,在多處理器上以grouping的方式排序
這個方法跟最短路徑的差別是:
「同一個group的是不分前後順序,也就是同一個group就不再做細緻的優化」
使用最短路徑,優化的細緻度好很多,但這方法也有些缺點,方法稍微複雜一些
我認為處理器的核心數目越多,那麼最短路徑方法才會贏過其他方法
運氣很好的是,AMD忽然爆發小宇宙(參考 聖鬥士星矢),多核心從4顆變成32以上
就從「早晚會有用的演算法,變成現在就有用」
cohort是一個很棒的方法,非常的成功,在多處理器架構下他的效能很好,
因為很成功,做這方面的人都會去看他這篇論文,cohort的grouping概念
就影響了這時期的spinlock方法,因為我不曉得有cohort因此沒有受到影響
再來是為什麼投了四年還要繼續投,難道第二、第三年不會想要放棄嗎?
我真的很想上OSDI,但reviewer不太相信我們,有一種「民雄地下道標語的感覺」
「不是路走到盡頭,而是該轉彎」
(參考:https://hackmd.io/_uploads/HkQzvS4c3.jpg,來源:facebook網路)
但。。。老天爺就叫我一條路走到黑,投稿到次一級的會議
那個reviewer給我的感覺並不是相不相信的問題,而是有沒有認真看
要被後者reject,還不如被前者。為什麼執著於會議,因為我的領域就是會議比較重要
講到這裡好像都很吃運氣,補充一點不是運氣的部分
晶片網路不是我的研究領域,但念博士時還是有去看一下,這是因為計算機組織很迷人
google news也會推最新的硬體技術給我,因此這部分還有持續了解
第一次看到 MCS,是在「奔跑吧Linux kernel的作者『笨叔叔』」的wechat論壇
他下了個聳動標題「Linux kernel 黑科技 MCS」
大家可以去看MCS的文章,https://zhuanlan.zhihu.com/p/89058726
我概略性的看過,無論是中文或者是英文都看不懂(我相信jserv一定秒懂)
看不懂去洗個澡,然後看懂這個方法也想到這個資料結構可以排程
排程是我的老本行,雖然很久不做scheduling,但直覺還是有的
這種有先後順序,而且還是FIFO的鐵定可以排程
能改善多少要看演算法多逼近最短路徑,演算法的cost多少則看要逼進到則樣的程度,
不能太追求最短路徑,否則光是演算的成本就會過高
感覺起來就是跟作業系統耍曖昧,若即若離。寫論文渣一點沒關係啦,能動就好
最後就是寫程式,我們本來就對C語言和計算機結構比較熟,
問題不是太大,三個星期完成骨幹,後面就是定量分析和實際跑跑應用程式
在過往的研究上,失敗的紀錄超多,雖然國科會的報告寫得好像是一回事
但是改善幅度太小,根本不值得發表,有時候對實驗室做出來的成果也沒啥信心
這部分也不適合發表,我真的很缺論文,但也很討厭讀到過度包裝的論文
視情況決定要不要寫,實驗室總是要運營
有四年的時間在績效方面,本廢宅完全是國科會的米蟲
感謝國科會願意讓米蟲每年都有經費可以拿,感謝委員願意相信計畫書
有一點成果以後,又希望國科會可以多給實驗室經費
只有使用AMD 32核心處理器,審查委員眉頭一皺,覺得這裡面肯定有貓膩(真的發生)
「Intel、ARM的伺服器太貴」,這不能是理由,這是研究者自己要想辦法的
「人在不順利時希望社會主義,
順利時希望希望功利主義」
~~陳厝寮170號,廢才哲學家,shiwu
我看到有人提到「壓榨硬體效能會不會增加耗電」這問題很棒,
lock-unlock,就像是receive-send,unlock就是將資料丟給下一個人
lock則是擷取資料,如果資料傳遞路徑變短,原則上會降低溫度
但實際上是:因為傳輸變得更有效率,每個核心的「微小閒置」變得非常少
這個微小閒置就是pipeline的bubble,或者本廢宅在實驗室等email的時間
如果傳遞距離比較近,速度快,核心找不到偷懶的理由,因此很辛勤的工作
基於
「台灣勞工變成老闆,就會是血汗老闆」的基本原理
核心很忙是我們樂見的,因此整體溫度是增加的,花那麼多錢買CPU,不超爆它嗎?
「然而我們並沒有那樣的血汗,至少給了大同電風扇,
比起城戶沙織,還算是不錯」
~~引用(https://hackmd.io/_uploads/S1R4G8N52.jpg)
跟聖鬥士一樣,我們的小宇宙是不夠的,還有來自成大jserv大人、城市大學、中研院
頂頭上司,中正大學、科技部+國科會
參加會議時,有位在美國工作的台灣人說:這篇論文就是一股台灣味
不是氣勢宏偉的,而是小家碧玉型,台灣學術界比較少氣勢宏偉的伺服器
跟左岸的閒聊,系統軟體是國家重點項目,外加企業挹注資金,的確宏偉高大許多
右岸的論文也是氣勢滂薄
台灣軟體,搞了很久,我從小廢宅變成了老廢宅,台灣很重視利基 niche(硬體)
認為軟體可以在硬體基礎上變大變強。
在Nvdia上的確看到這樣,軟體所成的護城河,讓AMD很難攻進去。
x86能紅到現在,也是靠軟體所形成的完整生態圈,
ARM很難切入x86的普通領域,特別是許多公司有專屬軟體,這類軟體的可移植性很差
規劃上很合理,在落實方面常常偏向於「硬體功能的直覺延伸」(有錯請糾正)
大家怎樣理解「驅動程式」,這不一定是作業系統底層的那個驅動,
我認為直覺上延伸自硬體,而沒發展出超乎硬體的軟體,就只能稱之為驅動程式
iPhone會成功,是因為它上面有很多軟體,這些軟體讓我們更離不開iPhone
台灣這樣的發展沒好沒壞,或許在有限的人力、物力下,這樣的模式最適合
也或許可以像是新加坡那樣,有更開放的空間
太多運氣成份在裡面,或許沒有機會再到OSDI,
基於「知恥近乎勇,無恥那絕對是神勇」的精神
詢問工作人員可不可以在會後把OSDI的牌子帶回家紀念,底下是這次最好的收藏
https://hackmd.io/_uploads/S1n25_Qqn.jpg
左邊是Ron高舉OSDI的牌子,背景是我P圖的
https://hackmd.io/_uploads/rkHL1vV9h.jpg
跟工作人員說,可不可以給我Ron也一張名牌
國名有些問題,在官方正式文件已經做了修改,但名牌沒改,不要砲我
廢材被閃電打到,就會有熊熊火光
系統軟體的大神,是不斷地發光,讓這個領域持續進步
像jserv是全方面的領先,而我對系統的認知就只是單點
如果有研究生需要喝一碗熱雞湯,這個文章應該可以給您恢復一些生命力