python并行計算numpy_【Nature文章摘錄】NumPy: 從單機到分布式并行計算

原標題:【Nature文章摘錄】NumPy: 從單機到分布式并行計算

點擊上圖,查看詳情

本公眾號的推送以互聯網大數據技術為主,是《互聯網大數據處理技術與應用》《Python爬蟲大數據采集與挖掘》等課程的配套號。內容涉及 大數據采集、存儲、分析挖掘的模型算法、隱私等技術問題,其特色為原創性、技術性。

NumPy開發團隊在 Nature 上發表了 Review文章(Array programming with NumPy, 2020.9.16),詳細介紹了使用 NumPy 的數組編程。本文對其中主要內容進行了摘錄和翻譯,主要包括Numpy的基本計算原理和NumPy對分布式并行計算的支持。

1、Numpy的基本計算原理

數組編程(array programming)為以向量、矩陣和高維數組的方式訪問、操作和操作數據提供強大的語法。NumPy是Python語言的主要數組編程庫,在物理、化學、天文學、心理學、工程、金融和經濟等領域的研究分析中發揮著重要作用。本文回顧了一些基本的數組概念,以及如何形成一個簡單而強大的編程范式來組織、探索和分析科學數據。

Numpy的生態

NumPy數組是一種能夠高效存儲和訪問多維數組(也稱為張量)的數據結構,并支持各種科學計算。它能夠運行在從嵌入式設備到超級計算機各種設備上,性能接近編譯語言。基本的概念包括 數據結構、索引(切片)、向量化、廣播和規約。

2、NumPy對分布式并行計算的支持

現在各種大數據集規模都很大,超過一臺機器的存儲容量,需要存儲在多臺機器上或云中。同時由于需要加速深度學習和人工智能應用,出現了各種專門的加速器硬件,如圖形處理單元(GPU)、張量處理單元(TPU)和現場可編程門陣列(FPGA)。由于其內存數據模型,NumPy目前無法直接利用此類專用硬件。然而,無論是分布式數據還是GPU、TPU、FPGA的并行執行方式都很符合數組編程范式。不管怎樣,現代硬件體系結構與利用其計算能力所需的工具之間存在差距。

目前,在縮短這一差距方面所做的努力有,包括 GPU數組、稀疏數組和分布式數組。每個深度學習框架創建了它們自己的數組:PyTorch38、Tensorflow39、Apache MXNet40和JAX數組都能夠以分布式方式在CPU和GPU上運行,使用延遲求值來允許額外的性能優化。SciPy和PyData/Sparse都提供稀疏數組,這些數組通常包含很少的非零值,為了提高效率,它們只存儲在內存中。此外,還有一些項目如Dask實現了分布式數組。但不管是哪種方式,他們通常會為開發人員提供類似于Numpy的數組表示、操作和API,以便開發人員能更快地適應。

為此,為了支持這些外部數組對象之間的數組操作,NumPy添加了中央協調機制及其API的功能,使得 NumPy數組、GPU數組、分布式數組等之間可以進行切換。這樣用戶就只需要編寫一次代碼。為了實現這種互操作性,NumPy提供了一種“協議”,允許將專門的數組傳遞給NumPy函數(圖)。反過來,NumPy根據需要將操作分派到原始庫。包括Dask、CuPy、xarray和PyData/Sparse在內的流行庫都實現了這些協議。因此,用戶現在可以使用Dask將他們的計算從單機擴展到分布式系統。通過這些協議,也 允許用戶在分布式、多GPU系統上大規模地重新部署NumPy代碼。使用NumPy的高層API,用戶可以在具有數百萬核的多個系統上利用高度并行的代碼執行,所有這些操作都只需進行最小的代碼更改。

【1】《Python爬蟲大數據采集與挖掘》(清華大學出版社,2020)一書,配備教學PPT、案例和代碼、講解視頻,實踐性強,是學生非常喜歡的課程,是大數據教學和研究必不可少的第一個環節。歡迎選做大數據相關專業的教材。()

【2】《互聯網大數據處理技術與應用》(清華大學出版社,2017),互聯網大數據的開放性更好、具備大數據的各種典型特征,是學習大數據技術最好的切入點。本書包含了互聯網大數據采集、信息提取技術、非結構數據的結構化、大數據語義技術、分析模型算法、大數據隱私保護等。()

提供300分鐘視頻講解,教學大綱、課件、教案、習題答案、程序源碼等配套資源。

掃碼,優惠購書

凡是在京東購書的用戶,可以將訂單信息和評價發到itbook8@163.com,將會獲取超值大禮包(包括案例源碼,超多的視頻教程,數據集等資源)返回搜狐,查看更多

責任編輯:

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/397283.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/397283.shtml
英文地址,請注明出處:http://en.pswp.cn/news/397283.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Aho-Corasick automaton 模板

typedef struct Node* node;const int MAXNs ;//模式串最大長度 const int MAXNS ;//文章(待匹配串)最大長度 struct Node{node next[26];node fail;//失配指針int sum;Node(){sum 0;fail NULL;memset(next,NULL,sizeof next);} };char s[MAXNs];//…

Ubuntu Server 14.04 下root無法ssh登陸

今天安裝了Ubuntu Server 14.04 在終端配置了root密碼后,使用SecureCRT和putty竟然不能ssh登陸,SecureCRT一直提示密碼不對,但是可以肯定輸入的密碼100%正確,用putty則一直報Access Denied,所以可以肯定系統限制了ro…

計算機的控制面板打不開,控制面板打不開,教您控制面板打不開怎么辦

最近有些不少的小伙伴向小編反映說,控制面板突然出現了打不開的情況,那么遇到這種情況該怎么辦呢?其實控制面板打不開很有可能是因為系統文件損壞造成的。今天,小編就來把打不開控制面板的解決方法分享給你們。其實控制面板是我們…

【算法題】Multiples of 3 and 5

Multiples of 3 and 5 原題 題意如下: 找出N以內的3和5的倍數的和。 思路 1、剛看到覺得好弱智,直接遍歷一遍不就OK了嗎?但是第2和第3個測試用例報了TLE,超時。 2、然后想不出來了,搜了一下,發現有一個類似…

PIL簡單圖片處理(上)

自己看了下python,本來想照教程上一點一點學的,學了一會發現好沒勁(教程本身質量很好),學python就是為了好玩,為什么還這么按部就班勒?果斷google下python的爬蟲(開始目的是這個&…

方舟服務器制作修改,ARK方舟:生存進化服務器禁止物品制造的修改方法

ARK方舟:生存進化服務器禁止物品制造的修改方法代碼對應的文件目錄:文件:Game.ini框架:[/script/shootergame.shootergamemode]例如禁用C4遙控器代碼為:ConfigOverrideItemCraftingCosts(ItemClassString"PrimalItem_WeaponC4_C",BaseCraftingResourceRequirements((…

Java中ArrayList的使用

ArrayList類是一個特殊的數組--動態數組。來自于System.Collections命名空間;通過添加和刪除元素,就可以動態改變數組的長度。 優點: 1、支持自動改變大小 2、可以靈活的插入元素 3、可以靈活的刪除元素 局限: 比一般的數組的速度…

mallco動態分配_malloc動態分配的內存的生存周期是多少?

曾經有一個朋友提過這樣一個問題,malloc動態分配的內存的生存周期是多少當時直接回答,當然是在調用free進行釋放之前阿!!但回頭我仔細想過這個問題,在free調用之前那段范圍內,但free只有一個指針參數,它是如何知道要釋…

中興中心管理服務器fxh3120,中興多媒體業務中心ZXMS80

運營支撐層: 提供面向視訊用戶的客服中心和面向管理員的業務中心、網管中心。客服中心提供會議預約、會議控制、帳單查詢、意見反饋等功能。業務中心分為業務受理中心、業務管理中心、認證計費中心。其中業務受理中心實現開戶、放號及收費等功能;業務管理…

隨機森林經典文

原文鏈接 轉載于:https://www.cnblogs.com/luoganttcc/p/10525324.html

python namespace unique_Python使用uuid庫生成唯一標識ID

uuid是128位的全局唯一標識符(univeral unique identifier),通常用32位的一個字符串的形式來表現。有時也稱guid(globalunique identifier)。python中自帶了uuid模塊來進行uuid的生成和管理工作。python中的uuid模塊基于信息如MAC地址、時間戳、命名空間、隨機數、偽…

SQL Server 2008空間數據應用系列四:基礎空間對象與函數應用

SQL Server 2008空間數據應用系列四:基礎空間對象與函數應用 原文:SQL Server 2008空間數據應用系列四:基礎空間對象與函數應用友情提示,您閱讀本篇博文的先決條件如下: 1、本文示例基于Microsoft SQL Server 2008 R2調測。 2、具…

HBase-1.2.4LruBlockCache實現分析(一)

一、簡介 BlockCache是HBase中的一個重要特性,相比于寫數據時緩存為Memstore,讀數據時的緩存則為BlockCache。 LruBlockCache是HBase中BlockCache的默認實現,它采用嚴格的LRU算法來淘汰Block。 二、緩存級別 目前有三種緩存級別&#xf…

c .net ajax,Asp.net mvc 2中使用Ajax的三種方式

在Asp.net MVC中,我們能非常方便的使用Ajax。這篇文章將介紹三種Ajax使用的方式,分別為原始的Ajax調用、Jquery、Ajax Helper。分別采用這三種方式結合asp.net mvc去實現一個史上最簡單的留言板。首先看一下原始的Ajax的調用的:定義CommentController&am…

爆款AR游戲如何打造?網易楊鵬以《悠夢》為例詳解前沿技術

本文來自網易云社區。 7月31日,2018云創大會游戲論壇在杭州國際博覽中心103B圓滿舉行。本場游戲論壇聚焦探討了可能對游戲行業發展有重大推動的新技術、新實踐,如AR、區塊鏈、安全、大數據等。 網易AR游戲生態合作負責人楊鵬表示,傳統游戲模式…

景深決定照相機什么特性_照相機光圈與景深的關系

展開全部「光圈」,光圈是一個用來控制光線透過鏡頭,進入機身636f70793231313335323631343130323136353331333264663664內感光面的光量的裝置,它通常是在鏡頭內。表達光圈大小我們是用f值。光圈f值鏡頭的焦距/鏡頭口徑的直徑從以上的公式可知要…

潤乾V4導出TXT時自定義分隔符

◆ 背景說明 報表中,導出text時,默認沒有分隔符;應用中對導出Text,希望能自定義分隔符。在tag中定義了 textDataSeparator屬性,讓用戶在導出Text時自定義分隔符,從而確保滿足應用…

Spark學習體會

在去年圖計算工作中,和公司里實習的博士生嘗試過Spark后,發現Spark比Hadoop在計算速度上后很大的提高。Spark的計算使用Scala語言編寫代碼,其中圖計算用到了GraphX。對Spark技術的學習已經非常重要。 最近半年多時間里,經常看…

fastadmin自定義按鈕不是ajax,Fastadmin 自定義按鈕實現審核功能

功能描述新增自定義審核按鈕,點擊審核按鈕后,按鈕變為取消審核按鈕,同理點擊取消審核按鈕后,按鈕變為審核按鈕實現功能如下圖微信圖片_20200827112914.png上代碼{field: operate, title: __(Operate), table: table, events: Tabl…

函數的命名空間以及作用域

轉載于:https://www.cnblogs.com/mpfei/p/9451208.html