自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

“老子”是偉大的多核計算科學(xué)家

開發(fā) 前端
也許有人會納悶,“老子”為道家思想的創(chuàng)始人,生活于春秋末期,那時不要說計算機,連能用來進行手工計算的草稿紙都沒有發(fā)明,怎么會成為了偉大的多核計算科學(xué)家呢?這該不會是瞎忽悠人吧。

道家的思想可謂博大精深,“老子”的《道德經(jīng)》成為翻譯為外國文字最多的中國書籍,同時也是世界上翻譯成外國文字第二多的書籍,僅次于圣經(jīng)。要知道,《圣經(jīng)》子所以成為翻譯成外國文字第一多的書籍,是因為有10多億的基督教徒。不要說在國外,即使在中國國內(nèi),現(xiàn)在也沒有多少道教徒,道家的思想?yún)s能在世界上流傳如此之廣,實在讓人覺得是“玄之又玄”。

也許有人會納悶,“老子”為道家思想的創(chuàng)始人,生活于春秋末期,那時不要說計算機,連能用來進行手工計算的草稿紙都沒有發(fā)明,怎么會成為了偉大的多核計算科學(xué)家呢?這該不會是瞎忽悠人吧。

我要說的是,這決不是瞎忽悠人。雖然“老子”所處的時代沒有計算機,但是它提出的道家思想中,蘊含了現(xiàn)代多核計算的一些基本原理和思想在內(nèi)。從這個角度講,“老子”確實是一位偉大的多核計算科學(xué)家。

道家的思想中,無非就是“無為”、“小國寡民”、“大智若愚”、“大巧若拙”、“大音希聲”、信言不美、美言不信、…等各種思想。這些思想普遍都認為是一些哲學(xué)思想,這和作為科學(xué)的多核計算看上去好像是風牛馬不及的事??!老子又怎么能成為科學(xué)家呢?難道道家思想里真的蘊含了我們所不知道的多核計算原理和思想在里面?

沒錯,道家思想里確實蘊含了現(xiàn)代多核計算的原理和思想在內(nèi)。當然,這不是說白話,得拿出實際證據(jù)來證明它才行。下面就以一些多核計算方面的實例來論證道家思想中蘊含的深刻思想,從中也許可以窺見它的“眾妙之門”中的冰山一角。

小國寡民與多核計算

不 妨先從“小國寡民”思想說起,“小國寡民”歷來被看成是近似烏托幫式的無法實現(xiàn)的理想,在人類社會史中,好像還沒有見過那朝那代實現(xiàn)過這個理想。更有人認 為這是一個不切實際的想法,甚至認為是錯誤的思想??上驳氖?,這個理想不僅非常正確,而且現(xiàn)在在多核計算中變成了現(xiàn)實,也就是說它得到了科學(xué)的證實。下面 以多核中查找設(shè)計思想和“小國寡民”思想來作一番比較,以窺其中的奧妙。

多核查找-順序查找也瘋狂” 一文介紹了多核查找設(shè)計的基本思想,其基本思路是為了避免其中式鎖競爭導(dǎo)致的串行化執(zhí)行,必須將一個大的查找數(shù)據(jù)結(jié)構(gòu)拆分成多個獨立的小的子數(shù)據(jù)結(jié)構(gòu),然 后給每個小的子數(shù)據(jù)結(jié)構(gòu)加一把鎖,這個當多個線程訪問不同的子數(shù)據(jù)結(jié)構(gòu)時,就不會出現(xiàn)鎖競爭現(xiàn)象。“小國寡民”思想是在一個大國中,許多分解成許多獨立的 小國,這可以說和多核中查找設(shè)計的思路是一模一樣的。

不妨再回顧一下《道德經(jīng)》中第八十章中關(guān)于小國寡民的原文描述:

“小國寡民;使有什伯之器,而不用;使民重死,而不遠徙;雖有舟輿,無所乘之;雖有甲兵,無所陳之;使民復(fù)結(jié)繩,而用之。至治之極民各甘其食,美其服,安其俗,樂其業(yè)。鄰國相望,雞犬之聲相聞,民至老死,不相往來。”

先看最后一句,“鄰國相望,雞犬之聲相聞,民至老死,不相往來。”,這也就是說各個小國都是獨立的,并且由于不能相往來,相當于每個小國都有一把“鎖”,這和多核查找中的各個子數(shù)據(jù)結(jié)構(gòu)都加了一把鎖的場景是一樣的。

再看第一句“小國寡民;使有什伯之器,而不用;使民重死,而不遠徙;雖有舟輿,無所乘之;雖有甲兵,無所陳之;使民復(fù)結(jié)繩,而用之。”,這是最容易被人產(chǎn)生誤解的一句話,許多人認為老子想把人民倒退回結(jié)繩而治的原始狀態(tài),是一種愚民思想。事實上這些人根本沒有理解透這句話中包含的深刻思想。普通老百姓都知道有先進的工具和技術(shù)卻不使用,卻要倒退回結(jié)繩而治的狀態(tài)是一種倒退,除非發(fā)了瘋才會這么做。

“老子”是不是瘋子?當然不是,不僅不是,而且老子比他同時代的人要聰明得多。正所謂“大智若愚”,老子一生中遇到過許多聰明人,包括儒家創(chuàng)始人孔子也曾向老子請教過,然而老子卻發(fā)現(xiàn)沒有一個人能理解他的思想,最后只好“騎青牛,出函關(guān)”。

沒 有人能理解是很正常的,要是那個時代就有人能理解老子的思想的話,那么本文的標題只能改為“老子是一位多核計算學(xué)科學(xué)家”,萬萬不敢將“偉大”二字貫在前 面的。之所以沒有人能理解老子的思想,正是因為其中蘊含了深刻的多核計算思想在內(nèi)。這句話如果和多核的查找對照起來進行解釋,我們就能發(fā)現(xiàn)“老子”的真正 偉大之處。下面就來看看“老子”到底偉大在什么地方。

讓“小國寡民”倒退回結(jié) 繩而治的原始狀態(tài),反映到多核查找中就是讓小的子數(shù)據(jù)結(jié)構(gòu)采用最原始、最簡單的數(shù)據(jù)結(jié)構(gòu)和算法。最原始的數(shù)據(jù)結(jié)構(gòu)是什么?當然是數(shù)組。那么在數(shù)組中如何進 行查找呢?我們都知道在有序數(shù)組采用二分查找是很快速的,然而二分查找并不是最原始的查找方法,最原始的查找方法是順序查找。也就是說在數(shù)組中不要用二分 查找,只能用順序查找。寫到這里,可能就會有人有疑問了,不用高效的二分查找,卻去用原始落后的順序查找,不會有病吧,這也能體現(xiàn)出“老子”的偉大來?

我要說的是,用看似原始落后的東西來替代貌似先進的東西正是老子的偉大之處。為什么 這樣說呢?首先我們看看前提條件:“小國”,反映到多核查找中就是數(shù)組要足夠小。在一個很小的數(shù)組中進行查找,比如只有少數(shù)幾個數(shù)據(jù)的數(shù)組中進行查找,用 順序查找更好還是用二分查找更好呢?顯然稍有編程常識的人都知道,二分查找時雖然比較次數(shù)少一些,但是由于它要計算中間數(shù)據(jù)的下標位置,需要進行加法和除 以2的計算,存在計算開銷,計算速度可能會比順序查找更慢。從軟件的穩(wěn)定性方面來講,編寫一個順序查找程序非常簡單,不易出錯,而編寫一個二分查找程序就沒有那么容易了。不妨看看“90%程序員寫不出無BUG的二分查找程序?”這篇文章,就知道寫一個二分查找程序的難度了,這么難寫的程序能保證軟件的穩(wěn)定性嗎?要知道,道家思想中還蘊含了軟件中的穩(wěn)定可靠性思想,有興趣的不妨看這篇文章:“道家·老子的算法思想分析”。再者寫一個復(fù)雜度高的程序,開發(fā)和測試工作量增加了多少啊。

寫到這里,相信許多人已經(jīng)窺破了“小國寡民”的妙處,不會再簡單的認為它是一種愚民思想。我們也不得不由衷地欽佩和敬仰生活比我們早2500多年的“老子”,在那么原始的年代,“老子”就窺破了“眾妙之門”,道家思想之高深,由此可見一斑。由于實在找不到什么好的用詞來形容道家思想的高深和玄妙,只能慨嘆一聲:“道、可道,非常道”。 

 “無為”與多核計算

前面的“小國寡民”思想的分析,只是道家思想的冰山一角。不妨再將道家的“無為”思想和多核計算方面的實例聯(lián)系起來進行分析,看看它們之間是否有什么相似之處。

道家的“無為”,追求的是一種順應(yīng)自然的思想,這種思想的詳細闡述無須我多言,網(wǎng)上可以找出一大堆歷史典籍。所謂“大道自然”,即做事需要使用自然的力量,不要去強求使用一些人為的力量。

自然賦給了我們?nèi)祟愂裁戳α磕兀?ldquo;貪心”、“自私”、“偷竊”等都是自然賦給人類的自然力量,當然自然還賦給了人類很多自然力量,本文只討論“貪心”、“自 私”、“偷竊”這三種自然力量。把道家的“無為”思想應(yīng)用到多核計算上,也就是說要用自然的力量來設(shè)計多核算法,令人驚訝的是,“貪心”、“自私”、“偷 竊”正是用來設(shè)計多核算法的最有效的自然力量。下面以一些實例來說明它。

先說說“貪心”,儒家認為“人之初,性本善”,西方觀點則認為“人之初,性本惡”。其實,人之初是沒有所謂善惡的,善惡是人類后天形成的東西,自然界給予人 類的自然力量是沒有所謂的善惡之分的。所謂善惡皆因貪,也許說成“人之初,性本貪”更恰當。所以可以認為“貪心”是自然賦給人的一種自然力量。

有過算法經(jīng)驗的人都知道,單核時代,“貪心”就是算法設(shè)計的一種普遍性的最優(yōu)策略,特別是對于一些NP難題,往往可以用貪心策略設(shè)計出一些復(fù)雜度為O(N)的算法。當然在多核算法中,貪心策略也是必不可少,比如任務(wù)圖分解與調(diào)度問題,它就是一個NP難題,處理這類問題貪心策略往往是最有效的方法。

再看看“自私”,試問有那個人能一點都不“自私”。如果去觀察一下小孩子的行為,很容易得出“人之初,性自私”的結(jié)論。“自私”也是大自然賦給人類的一種自然力量。

“自私”也能用來設(shè)計多核算法嗎?答案是不僅可以,而且“自私”還是一種最有效的設(shè)計多核算法的優(yōu)化策略之一。這里舉個簡單的例子,比如多核中的內(nèi)存管理,如 果每個線程都帶有一個私有的內(nèi)存管理器的話,那么分配內(nèi)存時就只要從私有的內(nèi)存管理器里進行分配就可以了,不需要進行加鎖解鎖操作,效率能提高多少可想而 知。有興趣者不妨去試試Intel開源項目TBB中的內(nèi)存管理算法,就知道使用“自私”這種自然力量來設(shè)計多核算法有多大的好處了。

最后再看看“偷竊”,這可能會讓大多數(shù)人產(chǎn)生懷疑,“偷竊”在人類社會中歷來都是被看成是非法行為,這難道也是大自然賦給人類的自然力量?試看看自人類有史 以來,有那個朝代和那個時期能夠根絕“偷竊”這種現(xiàn)象,偷竊路人之物者有之,偷竊公家財物者有之,偷情者有之,甚至竊國者亦有之,…。不難發(fā)現(xiàn),這個世界中充滿了“偷竊”現(xiàn)象。再看看小孩子的行為,當小孩子看到自己想要的東西時,馬上就會去把它拿到自己手中,可以說,“人之初,性喜偷”。所以“偷竊”也是一種大自然賦給人類的自然力量。

也許有人要問了,我就姑且先承認“偷竊”是一種自然力量吧,難道“偷竊”也可以用來設(shè)計多核算法不成?這可問到點子上了,“偷竊”這種自然力量還真的在多核算法中得到了使用,在多核的動態(tài)任務(wù)調(diào)度算法中,就用到了“偷竊”的思想,有興趣的不妨去看看Intel的開源項目TBB中的任務(wù)調(diào)度算法,里面就用到了“偷竊”的思想,當然這個任務(wù)調(diào)度算法也使用“自私”的思想。

值得一提的是,動態(tài)任務(wù)調(diào)度算法可不是一個普通的算法,這可是多核中最酷的三大算法之一(另外兩個就是前面提到的多核查找和多核內(nèi)存管理算法)。許多的并行 算法都可以通過這個算法來實現(xiàn),并且你只要寫一個串行的算法,那么就可以動態(tài)任務(wù)調(diào)度的方式自動將它變成并行算法,用它可以實現(xiàn)并行排序,并行數(shù)值計算, 并行搜索等各種并行算法。這意味著程序員不需要學(xué)習并行計算的知識就可以復(fù)用以前單核時代的串行算法,由動態(tài)任務(wù)調(diào)度器自動將其變成并行算法,酷斃了吧! 同時這也意味著多核程序中,大量的并行計算都在調(diào)用動態(tài)任務(wù)調(diào)度算法,都在進行“偷竊”動作。可見多核程序中也將充滿“偷竊”現(xiàn)象。在南懷瑾的《老子他 說》一書中p90頁最后一行寫道,“照道家的看法,這個世界本來就是一個相互偷盜的世界,彼此相偷,互相混水摸魚”,這和多核程序中的相互偷盜可謂不謀而合。

看了上面這些內(nèi)容,可以發(fā)現(xiàn),道家的“無為”思想在多核計算中已經(jīng)得到了充分的實踐,道家思想中確實蘊含了深刻的多核計算原理和思想。雖然如此,但是也許有 人要不高興了,上面說的這些自然力量怎么盡是一些“貪心”、“自私”、“偷竊”,看起來像是人類陰暗面的東西。難道要讓每個人都去盡情地“貪心”、“自 私”、“偷竊”,才算符合道家的順其自然之理,這不是要讓人學(xué)壞嗎?如果這樣理解的話,我想就從根本上誤會了道家的“無為”思想。

道家之所以提倡“無為”的順其自然之理,在于它認為最優(yōu)的東西必然是使用自然力量才能達到,并不等于使用了自然力量就一定可以達到最優(yōu)。如果“老子”說使用 了自然的力量就一定最優(yōu),那么我不僅不會說“老子”偉大,而且會認為他是一個渾蛋。世界上的任何東西都有它的使用范圍,即需要合理使用它。當“貪心”變成 “貪婪”,“自私”變成“損人利己”的時候,自然就超越了這些自然力量的使用范圍,當然沒有人會認同這種現(xiàn)象的發(fā)生。

話要說回來,世界是復(fù)雜的,有圣人就有渾蛋,“圣人不死,大盜不已”,總會有人做“貪婪”、“損人利己”的事情而不自知,而且他們偏偏認為這是最優(yōu)的。所謂“有無相生”,濫用自然力量的人,最終逃脫不了自然的懲罰??纯醋罱A爾街的金融海嘯,也許可以有所啟示。

責任編輯:陳四芳 來源: blog.csdn.net
相關(guān)推薦

2013-12-18 13:26:24

多核編程

2020-02-12 16:49:49

數(shù)據(jù)科學(xué)技能云計算

2012-12-06 15:36:55

CIO

2019-07-30 11:47:29

數(shù)據(jù)科學(xué)云計算機器學(xué)習

2017-08-04 15:53:10

大數(shù)據(jù)真?zhèn)螖?shù)據(jù)科學(xué)家

2015-06-11 10:27:29

數(shù)據(jù)科學(xué)家

2022-11-03 14:13:24

騰訊科學(xué)家

2018-12-24 08:37:44

數(shù)據(jù)科學(xué)家數(shù)據(jù)模型

2019-04-30 15:14:11

數(shù)據(jù)科學(xué)家計算機

2009-03-31 19:31:09

多核計算Sun

2012-12-26 10:51:20

數(shù)據(jù)科學(xué)家

2018-02-28 15:03:03

數(shù)據(jù)科學(xué)家數(shù)據(jù)分析職業(yè)

2023-05-23 09:34:16

科學(xué)家AI

2020-03-20 14:40:48

數(shù)據(jù)科學(xué)Python學(xué)習

2016-04-11 14:15:06

數(shù)據(jù)科學(xué)數(shù)據(jù)挖掘工具

2015-08-25 13:20:29

數(shù)據(jù)科學(xué)

2018-10-16 14:37:34

數(shù)據(jù)科學(xué)家數(shù)據(jù)分析數(shù)據(jù)科學(xué)

2012-06-12 09:33:59

2021-03-29 13:38:41

數(shù)據(jù)科學(xué)機器學(xué)習技術(shù)

2019-12-04 15:02:22

數(shù)據(jù)科學(xué)家故事數(shù)據(jù)分析
點贊
收藏

51CTO技術(shù)棧公眾號