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.mzph.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