日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 综合教程 >内容正文

综合教程

从灯泡到超级计算机,如何模拟浩瀚星空?

發布時間:2023/11/21 综合教程 44 生活家
生活随笔 收集整理的這篇文章主要介紹了 从灯泡到超级计算机,如何模拟浩瀚星空? 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

  天文學家中有這樣一群人,他們既不觀星,也不刷公式,而是通過模擬來研究浩瀚星空。在星團、星系這樣的恒星系統中,往往包含著上百萬顆恒星,規模如此驚人的恒星系統該如何處理?本期“賽先生天文”為你解讀天文學中恒星系統數值模擬的開端與發展。


球狀星團模擬的 RGB 圖像(Credit: MPA)

  撰文:李碩(中國科學院國家天文臺)
  編輯:韓越揚  

  提起天文學家,我們腦海里最先想到的可能就是一群夜貓子。他們晝伏夜出,沒事喜歡守在望遠鏡前,不知道在搗鼓些啥,總之看上去很厲害就是了。或者,像有些科幻電影里的角色一樣,手里抱本厚厚的《星系動力學》,辦公室黑板上寫滿了連符號都看不懂的公式。當然后者看上去更拉風些。畢竟守著望遠鏡“發呆”的難度系數并不算高,可沒事在黑板上刷公式就不是誰都玩得起的了。

  其實,還有那么一小撮天文學家,他們覺得天天盯著望遠鏡和黑板太沒創意,而有了計算機就可以當上帝,想要什么都可以用計算機來模擬。這群喜歡沒事趴在顯示器前,十指噼里啪啦敲個不停的家伙管自己叫:搞數值模擬的。

  今天,我們就來看看這個行當是怎么發家的。篇幅有限,我們只聊最“簡單”也是最早開始發展的數值模擬——恒星系統直接動力學模擬中的直接N體數值模擬。

  預測恒星的運動

  圖 1.著名的球狀星團杜鵑座 47,含有數百萬顆恒星(圖源:哈勃拍攝,NASA and Ron Gilliland (Space Telescope Science Institute);地面拍攝,David Malin, © Anglo-Australian Observatory)

  我們的銀河系是由數千億顆恒星組成的。其中還有大量由眾多恒星聚集而成的星團。既然這些系統都是由恒星構成的,而支配恒星運動的又是萬有引力,那么我們是不是能夠通過計算每顆恒星受到的引力來預測他們的運動呢?

  想法挺好,但問題的關鍵是計算量。以最簡單的三體系統為例,要想近似地在紙面上計算,需要把系統演化的過程分成若干間隔盡可能小的時間段(這就是計算機模擬中所謂的時間步長),然后在每個時間點計算每個天體受到其它天體的引力之和,再根據已有的位置速度“預測”下一時間每個天體的位置速度,循環反復。

  聰明的你可能已經意識到了,這類計算的復雜度隨著天體數目是以平方指數增加的。而一個恒星系統,不說像銀河系那樣有幾千億顆恒星,也不說像球狀星團那樣動輒幾十萬顆恒星(不信?可以試著在圖 1 里面數數),就算只有十幾顆,計算量也足以讓人吐血了。所以說,沒有計算機,這事也就是想想,真要去做那簡直是瘋了。

  “瘋狂”天文學家

  圖 2.最早的星系交匯模擬與合并星系 NGC2207 照片的比較(圖源:Erik Holmberg, 1941, The Astrophysical Journal, 94, 385; NGC2207: ESO)

  現在有請“瘋狂”天文學家 Erik Holmberg 登場。這位仁兄在沒有計算機的年代完成了兩個恒星系統交匯的模擬。圖 2 左邊是他模擬的恒星系統交匯過程中的形態演化,右圖則是我們拍到的合并星系 NGC 2207。

  這項工作可是在 1941 年發表的,還要再等五年,人類第一臺計算機才會誕生。前面提過,沒有計算機幫助這樣的計算可是要出人命的。而 Holmberg 活到了 92 歲,顯然并沒在 33 歲的時候就累死在稿紙堆里。那他是怎么做到的呢?

  Holmberg 找了 74 個燈泡來代表兩個星系。對,你沒看錯,74 個燈泡!他給不同的燈泡通上了不同的電壓來代表星系中恒星的密度分布。越靠近中心電壓越高,燈泡也就越亮,他通過移動燈泡來模擬星系在交匯過程中的演化。可怎么計算每個燈泡下一步應該挪到哪里去呢?Holmberg 找來了光電管測量各處的光強。因為光與引力一樣是遵循距離平方反比衰減的,他巧妙地利用光強的測量代替了引力的計算。

  就這樣,史上第一個天體系統動力學演化的模擬就算是完成了。當然,這個模型的分辨率很低——用 37 個燈泡代替整個星系是有點勉強的。那多加燈泡不行嗎?醒醒吧,剛才我們提到的球狀星團有多少恒星來著?幾十萬顆。幾十萬個燈泡,要開燒烤店么?這畫面太美,實在不敢想。

  圖 3.Hoerner 用來完成首例星團數值模擬的晶體管計算機西門子 2002(圖源:Wikipedia)

  計算機誕生后,德國天文學家 Sebastian von Hoerner 在五十年代末開始了在晶體管計算機上的模擬。當時的計算機沒有顯示器和鍵盤(圖3)。所有程序都要借助穿孔的紙帶輸入計算機,得到的輸出也是一條打滿了孔的紙帶。那時候程序員們每天的工作就是扎眼,代碼不按行來計算而是按捆算。Hoerner 在 1959 年就是用這樣的計算機實現了 16 顆星的數值模擬。夢想總是要有的,萬一實現了呢?Hoerner 同學估算了一下,發現按照當時的計算速度,“只要”花 1400 億年就能模擬一個球狀星團了。

  “頭號玩家”入局

  幾乎是同時,另一位重要的玩家參與到了這項游戲中,這便是挪威人 Sverre Aarseth。這位奇人開創了 Nbody 系列模擬程序、獲得過國際象棋通訊賽國際大師稱號、炒股掙錢買過法拉利、50 歲時迷上登山并因此凍掉過好幾根腳趾、80 歲時玩野外漂流,為了騙取工作人員許可謊稱自己才 60。最有個性的是,在劍橋大學工作了幾十年卻一直是普通研究員,相當于現在的博士后。要說學術貢獻不夠吧,有一顆小行星可是以他命名的,用來表彰其貢獻的。他的人生經歷簡直可以寫一本書了。呃,其實書也已經寫了。

  言歸正傳,Aarseth 在A. Schlüter 的建議下為每個天體賦予了獨有的計算步長。這就避免了兩個密近天體因為步長太小而拖慢整個計算的情況。這一方法在 1963 年提出,于 1986 年才最終完善為等級阻塞時間步長方案。從 80 年代初開始,Aarseth 用 FORTRAN 語言編寫了著名的 Nbody 程序,并在之后與合作者一道維護更新至今。

  為了更真實地模擬恒星系統,他們又把目標對準了雙星。銀河系中雙星非常普遍。而由于其軌道過于靠近,需要非常小的時間步長才能保證計算精度。這就導致包含雙星的計算會非常緩慢。借助數學的幫助,Aarseth 等人在六七十年代通過一種叫做 KS(Kustaanheimo & Stiefel)正則化的坐標變換,將雙星的軌道積分轉換成了一種簡單的諧振子計算。后來 Seppo Mikkola 與 Aarseth 又在 1992 年將這一工具應用在了多個天體上,即所謂的 KS 鏈。

  同時,為了進一步提高精度,日本天文學家 Junichiro Makino 與 Aarseth 在 91-92 年引入了厄米積分方法,通過泰勒展開的數學變換巧妙地用一階導數取代了模擬中所需的二三階導數計算,從而在不增加計算復雜性的前提下有效地提高了計算精度。

  隨著計算機硬件的飛速發展,1996 年,德國天文學家 Rainer Spurzem 與 Aarseth 一起實現了 10000 個天體的數值模擬。而在同一年, Makino 借助專門設計的計算設備 GRAPE-4 實現了 32768 個天體的模擬。

  GRAPE 是一種專門用來進行引力計算的特殊硬件,很容易進行并行化計算。在 GPU 異構加速計算興起之前,GRAPE 是最高效的引力系統模擬硬件。但是,GRAPE 專精于引力計算,很難被大規模應用于其它領域,因此制造成本高昂。而 GPU 在這方面擁有與 GRAPE 類似的能力,且成本更低。在 GPU 計算興起后,GRAPE 也就慢慢地退出了歷史舞臺。

  圖 4.天龍數值模擬使用的超級計算機 Hydra(圖源:馬克思普朗克計算與數據中心)

  懸賞一瓶威士忌

  九十年后期,Aarseth 的 Nbody 模擬程序已經發展為 Nbody6 并加入了各種真實的物理過程。隨著高性能計算機群的發展,人們開始考慮將模擬工作交給多個 CPU 并行完成。1999 年,Spurzem 在 Nbody6 的基礎上開發出了第一個并行版本 Nbody6++。幾年之后,一些簡單的動力學模擬(包括 GRAPE)已經可以處理百萬天體量級的計算。

  當然這些計算還無法兼顧恒星演化等星團中重要的物理過程。為此,英國數學與天文學家 Douglas C. Heggie 專門懸賞,將為第一個完成真實球狀星團模擬的工作贈送一瓶他珍藏的威士忌。

  2000 年后,GPU 加速計算迅速興起。Spurzem 嘗試借助德國基金會幫助建造 GPU 機群未果。他得到的答復是:“我們已經有了非常強大的超級計算機,為什么還要 GPU 機群呢?”而中國此時為了鼓勵 GPU 計算正準備資助建造若干個 GPU 超級計算機。就這樣 Spurzem 來到了中國,開始將 Nbody++ 與 GPU 加速相結合。

  與此同時,Aarseth 與日本天文學家 Keigo Nitadori 合作,為 Nbody6 加入了 GPU 計算支持,使模擬工作可以在一臺有 GPU 加速卡的工作站上完成。Nbody 數值模擬由此進入了 GPU 加速時代。

  圖 5. 天龍數值模擬星團“快照”與球狀星團 M13 照片(圖源:模擬結果,Wang, L., Monthly Notices of the Royal Astronomical Society, 2016, 458, 1450;M13 照片,NASA, ESA, and STScI/AURA)

  終于,在 2015-2016 年,經過與 Spurzem、Aarseth 等人多年的合作,來自北京大學的博士生王龍完成了 Nbody 程序的并行 GPU 版本——Nbody6++GPU,并在先進的通用 GPU 異構機群上(圖4,可以和圖 3 比較一下)一舉實現了百萬恒星量級的球狀星團模擬——天龍星團數值模擬,毫無懸念地贏得了 Heggie 的威士忌。

  圖 5 中可以看到經過可視化處理的數值模擬結果。左圖是模擬結果按星團中不同種類天體呈現的“觀測”效果,中間的圓圖是所有天體疊加的結果,與右圖中 Hubble 望遠鏡拍攝的球狀星團 M13 非常接近。而與觀測不同的是,數值模擬可以輕松地區分各種天體,甚至連觀測中基本無法發現的黑洞都能輕松標識。左圖中最右邊的白色背景小圖就是恒星質量級黑洞在星團中的分布。

  故事講到這里該告一段落了。但還要多啰嗦兩句,我們只介紹了直接N體方法數值模擬的成長,實際上隨著這一領域的發展,出現了很多方法用以研究恒星系統的演化。即便是N體模擬,在九十年代以后也出現了大量的替代程序,比如 Starlab、phi-GPU、Hi-GPU 等。篇幅所限就不一一介紹了。

  圖 6.銀河系中心恒星軌道,所有恒星都圍繞著在中心不可見的超大質量黑洞(圖源:UCLA Galactic Center Group - W.M. Keck Observatory Laser Team)

  最后想說的是,Nbody 的故事還遠未到落幕的時刻。我們雖然已經能夠實現星團的模擬,但仍然有很多物理過程無法很好地實現。比如說星系中心的超大質量黑洞(圖6)或球狀星團中心可能存在的中等質量黑洞,現有的N-body 程序還無法很好地處理這些極大質量天體與普通天體的相互作用。要想模擬一個有著幾千億顆恒星的星系,我們恐怕還有相當長的路要走,好在我們總能找到幾個喜歡天天坐在電腦前面發呆的家伙來干這事。

  致謝:Rainer Spurzem 教授為本文的撰寫提供了大量資料,在此深表謝意!

  作者簡介

  李碩,中國科學院國家天文臺助理研究員。2012 年于北京大學物理學院天文學系獲得理學博士學位。研究領域是引力系統演化,集中在超大質量黑洞與星系的共同動力學演化。

    參考資料

  [1] Holmberg, Erik“On the Clustering Tendencies among the Nebulae. II. a Study of Encounters Between Laboratory Models of Stellar Systems by a New Integration Procedure”, The Astrophysical Journal, 1941, 94, 385

  [2] von Hoerner, S., “Die numerische Integration des n-Körper-Problemes für Sternhaufen. I”, Zeitschrift fur Astrophysik, 1960, 50

  [3] Aarseth, S. J., “Dynamical evolution of clusters of galaxies, I”, Monthly Notices of the Royal Astronomical Society, 1963, 126, 223

  [4] Aarseth, S. J. & Zare, K., “A regularization of the three-body problem”, Celestial Mechanics, 1974, 10, 185

  [5] Makino, J. & Aarseth, S. J., “On a Hermite integrator with Ahmad-Cohen scheme for gravitational many-body problems”, Publications of the Astronomical Society of Japan, 1992, 44, 141

  [6] Mikkola, S. & Aarseth, S. J., “An implementation of N-body chain regularization”, Celestial Mechanics and Dynamical Astronomy, 1993, 57, 439

  [7] Spurzem, R. & Aarseth, S. J., “Direct collisional simulation of 10000 particles past core collapse”, Monthly Notices of the Royal Astronomical Society, 1996, 282, 19

  [8] Makino, J., “Postcollapse Evolution of Globular Clusters”, The Astrophysical Journal, 1996, 471, 796

  [9] von Hoerner, S., “How it all started”, Dynamics of Star Clusters and the Milky Way, ASP Conference Series, Vol. 228. Edited by S. Deiters, B. Fuchs, R. Spurzem, A. Just, and R. Wielen. San Francisco: Astronomical Society of the Pacific. ISBN: 1-58381-060-9, 2001., p.11

  [10] Aarseth, S. J., “Gravitational N-Body Simulations”, pp. 430. ISBN 0521432723. Cambridge, UK: Cambridge University Press, November 2003. (New Edition 2010)

  [11] Wang, L., Spurzem, R., Aarseth, S., Giersz, M., Askar, A., Berczik, P., Naab, T., Schadow, R., Kouwenhoven, M. B. N., “The DRAGON simulations: globular cluster evolution with a million stars”, Monthly Notices of the Royal Astronomical Society, 2016, 458, 1450

總結

以上是生活随笔為你收集整理的从灯泡到超级计算机,如何模拟浩瀚星空?的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。