當前位置:吉日网官网 - 紀念幣收藏 - 構建象棋模擬專家系統會遇到哪些困難?

構建象棋模擬專家系統會遇到哪些困難?

編者按吳馮光,Linux內核的守護者,學生時代被同學戲稱為“老神仙”。他對窗外的事充耳不聞,壹心撲在Linux上。吳的Linux內核之路,是天賦、興趣、耐心、堅持的結合,從壹個補丁在叠代了16個版本之後,又被改寫簡化就可以看出來。本期開源英雄,讓我們壹起走進吳的技術人生。

采訪|劉仁、李欣欣

作者|李欣欣編輯|唐

|編輯部出品

2011三藩市4月4日,在Linux存儲、文件系統和內存管理(LSF/MM)研討會上,大家都在討論吳和Jan Kara的代碼哪個進內核更合理。此時,遠在上海的吳非常焦急,仿佛在等待命運對他的審判...結果,捷克人揚·卡拉贏得了大多數人的支持。這種集體決策的基調恐怕很難逆轉。“我真的迷路了。”吳對說:

揚·卡拉的《補丁》更合安德魯·莫頓的胃口,因為大多數人覺得它的方案更簡單,壹目了然。然而,在該方案中,吳深入研究了內核的balance_dirty_pages偶爾出現的長期阻塞問題。他們認為沒有必要。他們認為用戶根本無法感知內核內部的細微差異,可以忽略。

早在2008年,31歲的吳就開始在英特爾優化寫回算法。Jan Kara是ext3文件系統的維護者。在最初的兩年裏,他和吳互相檢討,寫回補丁。2011二月,五豐廣發第六版遇到困難,差點擱淺。突然,揚·卡拉“乘勢而上”。他簡化了目標,提出了更簡單的方案,並獨立更新了兩個版本。

程走到壹半,壹個競爭對手出現了。

壹度競爭激烈,兩人爭分奪秒...壹方面,吳對很有信心,另壹方面,他也感到了困難:“我認為這個事情本質上是壹個‘控制算法’的問題。其實我是管制專業的,有優勢。”然而,“真的很難。為了兼顧多個指標,我選擇了高難度的算法設計,所以反復遇到技術問題,進展緩慢。我甚至需要重新構建算法,重新發明兩次。”

Peter Zijlstra是吳的代碼審查員。作為Linux四個重要子系統的維護者,他試圖以局外人的身份去理解吳的代碼。他先找了控制論方面的書,看了之後能理解吳的算法,但還是很難理解動力學行為。“我確實貼了很多動態響應曲線,很難琢磨。”吳對說:

吳和競爭對手揚·卡拉相持不下...正當吳準備放棄,打算按照大家的意願,把自己的壹些好東西嫁接到簡的方案上的時候,他意識到自己的方案雖然復雜,但是經過了很多考驗,正在走向成熟。Jan的方案“未經測試”且簡單,因此很難對其進行改進以支持其他理想目標(如低延遲)。吳決定最後壹搏。然而,大家似乎並不認為他的計劃有“無可比擬的優勢”,吳又壹次陷入了困境。

為了加快進度,Linux社區決定召開會議,現場評論。結果我們在文章開頭都知道了。吳對很不甘心。他反復琢磨,認為在壹個重要場景中,競爭對手的代碼束手無策,自己的代碼可以應付。第二天,吳給幾個核心維護人員發了郵件,圖文並茂。壹周之內,吳給發了20多封郵件進行深入討論。為了讓大家明白他的方案內部原理中的必然收益,他用了大量的數據和動態圖。幾天後,吳收到了壹封來自揚·卡拉的電子郵件,他承認吳的代碼處理方法有其優點。從那以後,揚·卡拉就銷聲匿跡了,吳·繼續改進代碼。

201110,在布拉格的內核峰會上,大家再次討論吳的代碼方案。此時,他的代碼已經更新到版本12。直到2011165438+10月6日,吳的無IO寫回補丁集終於被Linus Torvalds(以下簡稱Linus)並入內核線程。這不是吳的代碼第壹次被納入Linux內核,也不是吳第壹次經歷“多事之秋”。

打開網易新聞查看精彩圖片。

吳和Linux之父李納斯·托沃茲

早在2005年,合肥,中國科技大學(以下簡稱中科大),28歲的吳正在讀博士二年級。每隔幾周,他就會給Linux內核社區更新壹個版本。原因是他在863項目中搭建高性能流媒體服務器時,遇到了並發不足的問題。經過深入調查,他發現根本原因是內核預讀算法沒有像預期的那樣檢測出視頻流和音頻流交織的序列。吳立即開始優化預讀算法,然後他順手把補丁提交給了Linux社區。他的深層動機源於他想讓世界上更多的人享受到改進,讓“技術”產生實用價值。

吳在Linux社區連續更新了五個版本,都沒有人響應。他的心壹直懸著,他認為必須有人來解決這個問題。直到2005年6月10,吳收到壹封抄送給他的內部郵件。技術骨幹Ingo Molnar對Linux內核的把關人Andrew Morton說:“這個補丁還不錯。要不要看壹看?”安德魯·莫頓回答道:“對,其實我也註意到了。只是最近沒時間,比較忙……”然後,安德魯·莫頓@另外兩個人問:“妳能看看嗎?”

看完吳的郵件,覺得有戲了!心裏壹直懸著的石頭落了地,他更有動力了。“我肯定能給它100分!”“只有可靠的研究成果才能通過社區的檢驗。是否進入內核是0和1的值差。所以壹定要進入內核。”

然後,吳收到了來自世界各地的技術專家的反饋,他們有著不同的背景和不同的專業經驗。吳以深不可測的耐心,壹次又壹次地修改版本,即使壹次又壹次地推翻重寫,他也毫無怨言。每更新壹個版本,吳都需要不斷地做實驗測試,分析論證,總結復制,然後把圖片和文字發到Linux社區,供社區成員公開討論。“我對所有意見都持開放態度。妳說什麽我就改什麽,我會改進到妳無話可說。”“事情不怕困難,就怕認真。既然我這麽做了,我就壹次性徹底解決相關問題,然後就沒人要為此努力了。”吳繼續完善,提交了16版。在通過了社區的幾道審核流程後,他的代碼即將進入Linux內核,只需要最後壹步,等待安德魯·莫頓的最終提交操作。

幾周後,吳意外地收到了壹封來自安德魯·莫頓的郵件:“我受不了了。妳的補丁越來越復雜了。我無法將其納入Linux內核。”這對吳來說無疑是個晴天霹靂。吳以深不可測的耐心,又開始反思,又重寫又簡化代碼,直到安德魯愉快地接受了。

2007年7月19日,吳打開電腦,滿屏都是安德魯·莫頓發來的壹系列郵件,每壹封都代表壹個補丁。接下來,Andrew Morton將補丁集發送給Linus,然後從-mm樹中刪除消息。至此,提升IO性能的文件預讀算法代碼已經被Linux官方正式接受。

這壹天對吳來說意義重大。幾經周折,前後寫了16個版本。到這個時候,他的功德圓滿了。但他沒有和任何人分享,也沒有慶祝。吳和往常壹樣,只有壹個人享受這種快樂。

此後吳壹發不可收拾,先後完成了readahead、writeback、hwpoison、0day/LKP、NVDIMM等Linux項目。,這跨越了他從醫生到英特爾14年的學習和職業生涯。

在學習上受到啟發。

吳,剛上小學,身體不好,學習差。到了三年級,老師打算把吳調到下面的班級,和成績最好的學生坐在壹張桌子上,幫助他學習。他好像突然明白了,從此以後,無論學什麽,都能輕而易舉地拿第壹。

打開網易新聞查看精彩圖片。

小時候的吳

1977 165438+10月7日,吳出生在浙江金華市浦江縣的壹個小山村。父母種地,每天淩晨3點天還黑。他們起床開始壹天的工作,挖沙、挖土、種菜、賣菜...做所有骯臟的工作。日復壹日,早出晚歸。吳的父親總是渴望自己壹個人做幾個人的工作。他常說:“有實力就不花。過期了就作廢了。”冬天,天寒地凍,吳的父母經常在雪地裏摘菜,手凍得腫得像饅頭。南方的田裏濕氣很重,他們經常在土裏勞作的手壹年到頭都會皸裂潰爛...晚上,父母辛苦壹天回到家,煤油燈點著,豆大的火苗在屋裏忽明忽暗。吳經常看到他們坐在椅子上睡著了...

在學習上,吳的父母從來沒有管教過,而是經常談到“如果妳考不上大學,妳就要下地幹活”。吳心裏知道,自己要好好學習,不辜負期望。我的父親是壹個嚴肅的人,他不生氣也不傲慢。雖然沒打過他,但是他發脾氣的時候氣勢磅礴。吳馮光很害怕,從來不敢違抗他。好在吳從小性格比較安靜,能坐得住學習,但這讓他父母很擔心。

1984年,7歲的吳在本村大溪中心小學讀壹年級。他又笨又胖。“我身體不好,經常流鼻涕,學習成績也不好。”同學們都叫他“蝌蚪”,在浦江方言裏就是壹個人“傻”的意思。直到吳上了三年級,他的學習才有了轉機。

小吳馮光喜歡在他家後面的運河裏抓小魚小蝦,去大運河和池塘洗澡。每年暑假,壹家人都要走很長的山路去外婆家。每當他們走近村口,他就看到路口有兩棵老樟樹像巨大的傘壹樣立著,像站崗的哨兵。他心裏充滿了幸福,這意味著他很快就能見到奶奶了。

小山村背靠茶山。每到采茶季,村民們就分散在茶山各處,遠遠地望著對方。有人聲嘶力竭地唱著山歌,另壹邊采茶的人過來回應。這種勞動場景讓小吳馮光感受到了集體勞動的快樂氣氛。夏天,山裏各種水果都熟了,西瓜、桃子、梨……整個夏天都可以吃。吳快樂而輕松的小學時光很快就過去了。

打開網易新聞查看精彩圖片。

1989,吳高中畢業,進入中學學習。

1989,吳考入浦江二中。小學三年級的良好狀態延續了吳的整個中學階段。他全身心投入到學習中,繼續輕而易舉地獲得壹等獎。精神飽滿,興致勃勃,總是跑著去學校,放學跑著回家,超越了壹個又壹個同學。“我很喜歡這種感覺。”

在中學課堂上,班上的老師有時間親自與學生互動,這讓吳感到很親近。當他遇到壹個對他很好並且有教學魅力的老師時,吳在那個班的成績自然很好。家庭條件有限。在業余時間,吳喜歡去他的鄰居家看書,漫畫書和研究期刊。初中的時候看了金庸和梁羽生的武俠小說。

看壹周書,掌握C語言。

吳,16歲,高二暑假,人生第壹次出門。他被老師選中去杭州參加物理競賽培訓。在杭州的壹家書店裏,他翻到壹本譚浩強的《C程序設計語言》,買了下來,讀了壹個星期,就掌握了C語言的要點。整個暑假,他的註意力都被電腦吸引了,物理競賽告吹。

1992,中考後,吳考上了當地最好的浦江中學。吳在這個全縣性的學校裏很快就受到了壓力,在那裏,他在初中時毫不費力地獲得了第壹名,但現在他在班上名列前茅。課後他只能更加努力地學習。半年後,吳重回第壹名,此後壹直稱霸榜單,有時甚至遠遠超過第二名。

吳中考物理100分。高中物理老師很看重他,有意培養他。被選為物理課代表,送到杭州參加物理競賽培訓班...直到他的興趣悄悄轉向了杭州。暑假回家後,吳把大部分時間和精力都花在了自學電腦上,忙得顧不上正常上課。他的第壹名表現開始變得不穩定。

高二,學校有機房。吳第壹次接觸到Apple II電腦,學會了簡單的編程。計算機老師寫了壹個BASIC程序統計學生成績,在機器裏運行半天才統計出結果。這顛覆了吳的認知,電腦這麽快,為什麽要這麽久?

他開始優化老師的算法,跳過老師先排序的方法,直接統計每個分數出現的次數,然後累加,很快得到學生成績降序排列的結果。從那以後,計算機老師把壹把機房鑰匙給了吳,壹個“最喜歡的學生”。

高三那年,吳的身體又不行了。他很虛弱,每天都心煩意亂。他壹邊吃藥壹邊學習,勉強熬到高考。吳高考考了600多分,在全縣都是前幾名。引人註目的是他在物理和化學方面的成就。“我物理能考得好,得益於高二暑假去杭州參加了壹個物理競賽培訓班。老師們對競賽的講解,開啟了我學習物理的第二次脈動,即使遇到再難的題,我也能輕松作答。”“化學老師是我的班主任。每次上他的課,我都很害怕。他壹進教室就在黑板上寫壹道題,然後隨機找三個學生上臺解題。這招真厲害!我們必須在課前做好準備。"

中科大的招生老師找到吳,問他:“妳願意來中科大嗎?”吳在填的中國科技大學誌願表上。隨後,他考上了第二誌願“自動控制專業”,與自己喜歡的第壹誌願“計算機專業”失之交臂。

自學Linux

1999,合肥,中國科技大學,男生宿舍,606宿舍。22歲的吳靜靜地站在他的同學龔身後,看著龔在筆記本上敲打著鍵盤,熟練地操作著Linux控制臺。他很羨慕,學著像海綿壹樣快速吸收。“我後來覺得這是最理想的學習方式,有個師傅帶我飛。”

1995,18歲的吳第壹次坐火車,從老家到合肥科技大學,這是他人生中第二次出遠門。壹路奔波的勞累導致舊病復發。吳在醫院呆了幾個月,才勉強讀完第壹學期。為了養病強身,他又休學了壹年。第二學期,吳被推遲到96級繼續學業。

中科大每年招生很少,五年制本科培養周期比其他大學多壹年。吳和他的同學們學得更紮實了。吳說:“從專業方面來說,我的自動化學科分為兩類:壹類是計算機知識,五花八門,比如C語言、數據庫、Unix操作系統等。;另壹類是各種理論知識,比如數學,物理。理科是HKUST的優勢學科,課程比其他學校難。”

打開網易新聞查看精彩圖片。

本科時期的壹個下雪天,吳和同學梁家恩(雲之聲創始人)在中科大校園裏合影。

進入偏遠但專業的中國科技大學後,吳壹頭紮進書房,對窗外的事充耳不聞。壹個學期後,吳的成績從他入學時在班上的中等水平上升到第壹名。被同學戲稱為“老神仙”,形容他不食人間煙火,心中有自己的山頭和山谷的超然人格。電腦仍然是吳最著迷的東西。他和舍友合夥買了壹臺電腦,放在宿舍裏,供四個人輪流使用。

1999,大三的時候,吳幫老鄉安裝Linux。第壹次接觸Linux後,他意猶未盡。龔,吳的同學,多年Linux高手,恰好住在他隔壁宿舍。在水塔附近,吳經常去龔的宿舍,靜靜地坐在他身後看他玩Linux。

吳在啃過Borland C++之後,更喜歡Linux。他決心深入鉆研GNU/Linux。他意識到Linux的世界是廣闊而深邃的,是經得起時間考驗的,是值得深潛的。GNU/Linux是開源代碼,可以深入研究;所有的命令行工具都像樂高模塊,組合靈活。壹旦掌握了做事的效率,很多原本想都不敢想的事情,現在都觸手可及。“學了之後,我會終身享受。”

打開網易新聞查看精彩圖片。

2001,吳畢業後立即開始攻讀碩士學位。

2001,24歲的吳大學畢業。當時,吳的父親希望家裏有個醫生。雖然家裏經濟條件壹直不好,但全家都支持他繼續讀書。吳聽從了父親的命令。同年考入中科大“模式識別與智能系統”碩士。在他的碩士學位期間,吳與實驗室老師壹起做實驗,並深入到諸如神經網絡的課題中。2004年,吳被破格提拔為控制理論與控制工程專業的博士,終於實現了父親的心願。

在中國科技大學、瀚海星雲的論壇上,內向的吳找到了社交的杠桿。他在其中很活躍,發布帖子,討論技術,甚至成為了Linux版主。除了計算機系的學生,吳還認識了壹大批不同背景的學習Linux的學生,比如生物系、物理系、數學系的...吳的眼睛睜得大大的,他得知物理系和生物系都在用Linux做超級計算。作為壹個學習Linux的自動化專業的學生,他覺得自己不再是壹個人,他有壹種共同學習的感覺。“我們部門的網絡發生了IP沖突。發現服務器在實驗室的壹個角落,風扇壞了還能運行。我寫了壹個解決IP沖突的程序,當時還挺有成就感的。”“我對服務器壹直很有感情,我喜歡為別人提供服務。只要是和服務器有關的,我都願意研究解決。”吳的Linux水平悄然突飛猛進。

後來,吳和龔用網線把他們的電腦連在壹起,試著壹起做網絡服務。龔建論壇,吳做文件服務。“後來,我和龔的關系非常好。他非常活躍。他很擅長計算機和社交活動,他能吃,不像我總是很笨。我當時就很佩服他。”吳在宿舍裏摸了三年的Linux遊戲機。後來自然成了實驗室的網管,幫老師接管機房。

博士期間,吳大實驗室的幾位老師都是數學系的。吳打算和老師們壹起做理論研究,他的博士論文題目鎖定在控制理論的研究方向。沒想到,實驗室接到了863項目,擅長Linux服務和編程的吳自然成了這個項目中的關鍵力量。他很難抽出時間和精力繼續原來的理論研究。吳幹脆把手頭的863項目作為論文的新課題,開始轉向計算機方向的研究——Linux的IO優化。此後,吳開始優化預讀算法,並提交給Linux社區。

打開網易新聞查看精彩圖片。

吳的老照片

從1995到2008年,吳在中國科學技術大學學習了十三年。他在兩個本科生,碩士生和博士生,兩個實驗室,認識了很多學生。和這樣密密麻麻的高手打交道,似乎是在積累無形的財富。中國科學技術大學有很多有魅力的人,有同學把《紅樓夢》研究得很透徹。有的同學能記住整套牌,還能算出對手手裏的牌。有的同學壹般在考前玩幾天,學習幾天,但總能考過。“和他們在壹起真有趣。

  • 上一篇:幫我找英語短語
  • 下一篇:微信聊天記錄怎麽復制?
  • copyright 2024吉日网官网