超級計算機如何實現大規模人腦模擬?演算法姿勢正確很重要
翻譯:小譯7號
審校:青子編輯:Queen原文地址:https://blog.frontiersin.org/2018/03/02/neuroscience-brain-simulation-algorithm-exascale人類大腦是一個複雜得令人難以置信的器官,由1000億個相互連接的神經元組成。 然而,即使是使用現今最強大的超級計算機來幫助計算,目前也不可能模擬如此大規模的網路中神經元信號的交換。
現在,一個國際研究小組已在實現 E 級超級計算機(每秒百億億次的計算峰值)上模擬大腦規模網路技術上邁出了決定性的一步。這個突破性的演算法發表在《Frontiers in Neuroinformatics》上。該演算法允許使用相同數量的計算機內存來表示人腦中較大的區域。 同時,新演算法顯著加快了現有超級計算機的大腦模擬的運行速度。圖片來源:Grafische Medien, Forschungszentrum Jülich, http://www.fz-juelich.de/inm/inm-6/EN/For
「早在2014年,我們的軟體就已經能模擬人腦中約百分之一的神經元及其之間的所有連接,」於利希神經科學與醫學研究所主任 Markus Diesmann 說。 為了實現這一令人印象深刻的壯舉,該軟體需要一個 P 級超級計算機(每秒千萬億次的計算峰值)的全部主要內存,比如日本神戶的 K 計算機和德國於利希的 JUQUEEN。超級計算機速度以每秒浮點運算次數( floating-point operations per second,簡稱「FLOPS」)作為度量單位。一個 petaFLOPS 等於每秒一千萬億( 10^15 )次的浮點運算,計算速度峰值可達到此速度的計算機稱為 P 級超級計算機。一個 exaFLOPS 等於每秒一百億億(10^18)次的浮點運算,計算速度峰值可達到此速度的計算機稱為E 級超級計算機。目前可用的超級計算機最高仍為 P 級,正在建設中的下一代超級計算機預計可達到 E 級。在截止2017年11月發稿時的的超級計算機列表中,JUQUEEN 排名第22,K 排名第10(排名詳情可見https://www.top500.org/list/2017/11/?page=1)。
圖片來源:http://www.fzjuelich.de/ias/jsc/EN/Expertise/Supercomputers/JUQUEEN/JUQUEEN_node.html
Diesmann 已經為模擬軟體 NEST 工作了20多年。NEST 是一個在神經科學界廣泛使用的免費開源模擬代碼,也是歐洲人腦計劃的核心模擬器。在歐洲人腦計劃中,Diesmann 正在領導一些項目,主要在理論神經科學和高性能分析與計算平台兩個領域。在 NEST 中,網路中每個神經元的行為都表示為一些數學方程組。未來的 E 級超級計算機,如正在計劃實施的神戶的 post-K 和於利希的 JUWELS,性能將會超過如今高端超級計算機10到100倍。研究人員將首次擁有能夠模擬人類大腦規模的神經網路的計算能力。山重水複疑無路
雖然目前的模擬技術使研究人員能夠開始研究大型神經網路,但它也代表了發展 E 級計算技術的瓶頸。超級計算機由大約10萬台小型計算機組成,這些計算機被稱為節點,每台計算機都配備了一些用於進行實際計算的處理器。「在神經元網路模擬開始之前,要先虛擬地創建神經元及其連接,這意味著它們需要在節點的內存中實例化。在模擬過程中,一個神經元不知道它的目標神經元在哪個節點運行,因此,它的短電脈衝需要發送到所有節點。 然後,每個節點再檢查所有電脈衝中有哪些與當前節點上存在的虛擬神經元相關。」位於斯德哥爾摩 KTH 皇家理工學院的 Susanne Kunkel 解釋道。目前的網路創建演算法高效的優點,是在於所有節點同時構造出網路中屬於各個節點的特定部分。然而,將所有電脈衝發送到所有節點的做法,並不適於在 E 級計算系統上的模擬。「要高效地檢查每個電脈衝的相關性,網路中每個神經元在每個處理器中都需要1比特的信息。當一個網路中有十億個神經元,每個節點中很大一部分內存就會被這每個神經元1比特的信息消耗掉。」 Markus Diesmann 補充道。這是模擬更大規模網路時的主要難題:每個處理器上需要額外為每個神經元占的內存將會隨著神經網路的大小而增加。 從人類大腦的規模來看,這就要求每個處理器的可用內存要比現在的超級計算機大100倍。 然而,這在下一代超級計算機中不太可能實現。 每個計算節點的處理器數量將會增加,但是每個處理器的內存和計算節點的數量更可能會保持不變。比特(Bit),又稱為二進位位,是信息最小的單位,其取值的選擇只有0和1。
在上文使用的演算法中,假設網路中有100萬個神經元,先為這100萬個神經元按照從1~100萬編號。每個節點上都需要分配100萬比特的內存空間,我們把它叫做神經元信息。當某個節點向神經元K和M發送信息時,需要將神經元信息中的第K和第 M個比特設為1,其他比特都設為0。然後將信息和神經元信息發送給網路中所有的其他節點,節點各自檢查神經元信息,檢查節點中的神經元是不是這個信息的接受者,如果不是則拋棄。由於1位元組(Byte)= 8位(bit),1KB=1024Byte,1MB=1024KB,1GB=1024MB,可算出下文的所列的5.2億神經元將消耗62MB左右內存。所以隨著網路規模越來越大,神經元信息對節點的內存的消耗也會越來越嚴重。
柳暗花明又一村
發表在《Frontiers in Neuroinformatics》中的這一突破,是在超級計算機中構建神經網路的一種新方法。通過當前演算法,每個節點上所需的內存不再隨網路大小增加。 在模擬開始時,新技術允許節點之間交換關於「哪些節點需要將神經元激活數據發送到哪些節點」的信息。有了這些信息,就可以對節點間的神經元激活數據交換過程進行規劃,使得每個節點只接受它需要的信息。這樣,就不需要再讓網路中每個神經元佔用額外的1比特內存。踏破鐵鞋無覓處得來全不費功夫
在測試他們的新想法時,科學家們還得到了另一個重要洞見。Susanne Kunkel 說:「在分析新的演算法時,我們意識到我們的新技術不僅能讓在未來 E 級超級計算系統上的模擬成為可能,還能使在現有的(P 級)超級計算機系統上的模擬運行得更快。」事實上,由於內存消耗問題已在掌控之中,模擬的運行速度成為該技術進一步發展的主要焦點。 例如,在於利希的超級計算機 JUQUEEN 上,一個由5.8萬億突觸連接的5.2億個神經元的大型模擬,需要28.5分鐘來計算生物時間中的1秒。在改進數據結構後的模擬中,這個時間縮短到5.2分鐘。「有了這個新技術,我們可以比以前更好地利用現代微處理器中不斷增加的並行性;這對將來在 E 級超級計算機中的應用會變得更加重要。」該研究報告的主要作者 Jakob Jordan 表示。「有了 E 級的硬體和相應軟體的適當結合,我們很快就能夠對於一些大腦功能的基本原理展開研究,例如大腦的可塑性,或是短期學習發生的過程。」 Markus Diesmann 補充道。在模擬軟體 NEST 的下一次發布中,研究人員會將他們的成果開源,免費提供給社區。「我們一直在超級計算機 K 上使用 NEST 來模擬健康和帕金森病中基底神經節環路的複雜動態。我們很高興聽到有關新一代 NEST 的消息,這將使我們能在超級計算機 post-K 上進行全腦模擬,以弄清楚運動控制和心理功能的神經機制。」 沖繩科學技術研究所的 Kenji Doya 說。「這項研究是國際合作建造 E 級超級計算機的一個很好的例子。我們能夠提前準備好應用方式是很重要的,這樣在這些寶貴的機器建出來的第一天起,我們就能將其投入使用。」神戶 RIKEN 計算機科學高級研究所的 Mitsuhisa Sato 總結道。圖片來源:https://www.fz-juelich.de/SharedDocs/Pressemitteilungen/UK/EN/2013/13-08-02LargestSimulation.html
圖片來源:https://www.fz-juelich.de/SharedDocs/Pressemitteilungen/UK/EN/2013/13-08-02LargestSimulation.html
關注集智AI學園公眾號
獲取更多更有趣的AI教程吧!搜索微信公眾號:swarmAI集智AI學園QQ群:426390994學園網站:http://campus.swarma.orghttp://weixin.qq.com/r/FzpGXp3ElMDrrdk9928F (二維碼自動識別)
商務合作|zhangqian@swarma.org 投稿轉載|wangjiannan@swarma.org推薦閱讀:
※什麼是自計算機取得情報罪?
※讓你的電腦不在卡
※台式電腦usb無線網卡怎麼驅動安裝?
※如何在影視後期行業找一份體面的工作
※想出去看看,你具備這三方面能力嗎?