王益分布式机器学习讲座~Random Notes (1)

news2024/11/23 5:13:21

0 并行计算是什么?并行计算框架又是什么

并行计算是一种同时使用多个计算资源(如处理器、计算节点)来执行计算任务的方法。通过将计算任务分解为多个子任务,这些子任务可以同时在不同的计算资源上执行,从而实现加速计算过程并提高计算效率。

并行计算框架是一种软件工具或平台,用于管理和协调并行计算中的任务分发、数据传输、同步与通信等操作。它提供了一套编程模型和接口,以便开发者可以方便地利用并行计算资源来编写并行化的代码。常见的并行计算框架包括MPI(Message Passing Interface)、OpenMP(Open Multi-Processing)、CUDA(Compute Unified Device Architecture)等

1 为什么并行计算框架MPI无法在大数据中入流?

MPI和当时很火的MapReduce是并行计算框架的两个极端,MPI允许进程在任意一个时刻通信,非常灵活,而MapReduce在任何时候都不许通信,mapper worker或者reduce worker是无法通过写程序的方式与其他的同伙worker来通信,所有的数据交换都只是发生在mapper phase和reduce phase之间的shuffle phase的,完全由mapreduce的runtime来操作,对于用户是完全封闭的

2 算法使用MPI和MapReduce框架来进行并行的区别是什么?

几乎任何算法都可以使用MPI框架来并行,而绝大部分复杂的算法是无法套进MapReduce当中的,这是因为复杂算法要求频繁的数据交换、数据合并、不同性质的计算任务的协调运行,所以对进程通信要求高。

3 一个大的计算任务,大概是启动多少个进程?

1万到10万个进程

4 如果一个计算任务失败了,需要重做哪些操作?

所有的I/O操作、所有的通信操作(与这个进程通信的所有进程都要kill掉,然后重启,由于数据依赖,就会导致所有的进程都要kill再重启)。

5 1万个进程只要运行五分钟,基本上就会有至少一个进程挂掉,为什么会出现挂掉的情况呢?

因为优先级高的进程会直接抢占掉优先级低的进程,把资源给优先级高的先用。个人理解,如果系统资源越丰富,就越不需要这种pre-exmption,挂掉的概率就会降低。并不是因为硬件或者软件的故障造成的,是这种进程管理策略导致的必然结果。

注:一般论文中的所使用的集群都是专门针对那个特定任务的,其中所提出的优化通信的方法:平衡CPU和GPU、平衡内存和CPU、平衡网卡和磁盘等在实际情况中都是不适用的,这是因为在实际的云计算平台中,可能提供给你的机器资源是假的,也就是可能是一些docker container或者virtual machine,因而根本无法控制或者甚至无法得知对应的网卡的状态。

进而,所有基于这些假设的论文都是无法在工业上发挥实际价值的。

6 Scalable的机器学习系统更重要的是数据模型,还是工程技法?

是后者。Good System = Good algorithm + Good Architecture (王益认为这占据了接近90%的重要性)

7 长尾数据在计算机工业上为什么比一般的数据更重要?

长尾数据是指那些在统计分布中位于尾部、出现频率较低的数据。
在这里插入图片描述

在计算机工业中,长尾数据比一般的数据更重要的原因有以下几个:

潜在商机: 长尾数据可能包含一些独特的、非传统的需求和市场机会。通过挖掘长尾数据,企业可以发现新的产品、服务和市场细分,从而提供更有针对性的解决方案。

个性化和定制化产品: 长尾数据的出现频率较低意味着个体间存在差异性。通过深入了解长尾数据,企业可以更好地理解不同用户的需求和偏好,从而提供个性化和定制化的产品和服务。

创新和发展: 长尾数据可能包含独特的洞察和研究价值,涉及新的技术、概念或想法。通过研究和分析长尾数据,企业可以获得新的思路和灵感,从而推动创新和发展。

8 分布式操作系统和分布式计算框架有什么区别和联系?有哪些分布式操作系统?有哪些分布式计算框架?

区别:分布式操作系统:主要关注整个分布式系统的资源管理、进程调度和通信等方面,提供了一个统一的操作系 统接口;分布式计算框架则:更注重于分布式计算的任务调度、数据分发和结果整合等方面;

依赖关系:分布式计算框架需要基于分布式操作系统来提供底层的资源管理和调度功能。

操作系统有:

Google的Google File System(GFS)和Google的Bigtable:这两个系统构成了Google的分布式基础架构。
Apache Hadoop和Apache Mesos:这些系统提供了分布式文件系统、资源管理和任务调度等功能。

计算框架有:

Apache Spark:一个快速的通用分布式计算系统,支持内存计算和大规模数据处理。
Apache Hadoop MapReduce:一个基于分布式文件系统的计算模型,适合大规模数据处理。
Apache Flink:一个分布式流处理和批处理计算框架,支持容错和低延迟处理。

9 构建大规模机器学习系统中遇到的Pitfall有哪些?

在这里插入图片描述
1)一般所认为的数据噪音就包含了长尾数据,但是长尾数据其实是有很多价值的,去掉之后数据其实失去了完整性和实际性

2)论文中的数据模型基本上是建立在这样的一个数据分布假设上**(指数族分布):高斯钟形分布 和 拉普拉斯分布(双指数分布)**,而没有考虑长尾数据

例子1:SBD(Singular Bounded Decomposition)是一种矩阵分解算法,看上去不涉及概率问题,但是其其实是要求输入数据要满足高斯分布,不然分解结果中的component就是无用且混乱的principal component

例子2:广告系统的广告点击率模型最常见的是Logistic Regression, 其目标函数是:
在这里插入图片描述
将预测出来的概率值和对应的label(0或者1)求距离,距离之和最小为优化的目标;此时频率出现高的数据对该目标优化的方向有着更大的影响,长尾数据对参数的优化影响较小,所以模型没法针对长尾数据进行相应的调整

4)现在很多的并行计算框架比如Spark希望能够保证两边的好处,既能支持各种复杂的算法,也能支持fault recovery,但是其实也同时获得了MPI和MapReduce两边的坏处

Pregel是一种图计算框架,用于并行处理大规模图数据,它是由Google提出的,用于分布式计算的系统。它处理fault recovery的方法是:每隔一段时间出现一个server process stack,所有进程把这段时间接收到的信息都在磁盘上checkpoint一个版本,这样的话虽然依旧需要重启所有的进程,但是只需要把它们拉回到最近一次的checkpoint就可以了,不用从头完全重启。这是一个很直观的很通用的彻底的方法,但是容易出现out of memory。为什么呢?如果process stack的通信量不是很大,可以把process缓冲到memory里,到时候再check in到磁盘上;但是如果通信量很大,那么这个缓冲区buffer就都会overflow了,也就是out of memory了。所以像pagerank这样通信量小的算法可以用pregel来进行并行,而像RDA这样通信量大的算法就不可以

尽量不要把分布式操作系统和集群管理系统混合在一起,就像hadoop 1.0做的那样。为什么呢?
因为混合使用可能导致功能重叠和管理冲突,进而影响系统的效率和可靠性

谷歌很多的大规模机器学习系统都专门写了一个对应的并行计算框架

8)语言的问题:Java or Python or C++的代码会很长,而分布式系统的bug本身就很难定位,非go写的程序代码更加不好定位错误了

下面这段Go代码的逻辑是:如果有100个机器,可能有5台罢工,剩下的95台机器中任何一个有结果都应该立即返回,确保用户能第一时间收到。

在这里插入图片描述
对应的javascript版本的代码是(JS不是一个低端语言,是一个有着c/c++外皮的lisp的实现,lisp是人类历史上描述能力最强的编程语言,是所有语言之母,但是它没有那么强的宏的功能):timeout和rpcResp都是callback,return这个全局变量保证了只有第一个Call的机器才能执行clearTimeout和use这两个操作;setTimeout(timeout, 1)表示在1s后才会执行timeout这个回调函数
在这里插入图片描述

10 如何平衡零碎的业务和技术上的大杀器?

在这里插入图片描述
软件服务在单机上很好卖,但是在分布式系统上不好卖,因为你需要去部署它,甚至有时候需要针对集群的特点去调试它。

框架很难适应所有的业务场景。

ML as a Platform 自动化平台,不受用户欢迎;ML as service,

11 总结:full stack knowledge

在这里插入图片描述
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/703465.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

高数基础9

目录 求函数的极值以及曲线的凹项和拐点 例题1 例题2: 例题3: 例题4: 例题5: 例题6: 求渐近线: 例题7 例题8 例题9 例题10: 方程的根 例题11: 零点定理: 罗…

ECharts x轴文本标签全部显示

如果echarts显示标签的时候没有全部显示 代码如下: xAxis: {axisLabel: {interval: 0, //设置文本标签全部显示rotate: 5, //如果内容重叠最好设置一下旋转,就不会重叠了formatter: function(value) { //如果再不行就用formatter自己来截取换行return va…

Echarts折线图设置折线阴影

series中lineStyle添加阴影相关的属性: option {......series: [{......lineStyle: {normal: {width: 4,shadowColor: rgba(0,0,0,1), shadowBlur: 10,shadowOffsetY: 10,shadowOffsetX: 0,......}},......}] };未添加阴影效果: 添加阴影效果&#xf…

F#奇妙游(2):dotnet命令行工具

TUI vs. GUI TUI和GUI分别是文本用户界面(Text User Interface)和图形(Graphic User Interface),是计算机交互界面的两种流派。 最初的时候,神研制了大型机,其输入输出依靠卡带;后…

运动耳机哪款好用推荐、推荐几款专业运动耳机

无论你是健身爱好者、跑步达人还是热衷户外运动的人,一副优秀的运动耳机都是你在运动过程中不可或缺的伴侣。它们不仅能为你提供出色的音质,让你沉浸在动感的节奏中,还能提供稳定舒适的佩戴感,让你忘记耳机存在的同时享受到极致的…

深度学习05-RNN循环神经网络

概述 循环神经网络(Recurrent Neural Network,RNN)是一种具有循环连接的神经网络结构,被广泛应用于自然语言处理、语音识别、时序数据分析等任务中。相较于传统神经网络,RNN的主要特点在于它可以处理序列数据&#xf…

1.1 Metasploit 工具简介

Metasploit 简称(MSF)是一款流行的开源渗透测试框架,由Rapid7公司开发,可以帮助安全和IT专业人士识别安全性问题,验证漏洞的缓解措施,并管理专家驱动的安全性进行评估,提供真正的安全风险情报。…

Nginx HTTPS实践

Nginx HTTPS实践 文章目录 Nginx HTTPS实践1.HTTPS基本概述1.1.为何需要HTTPS1.2.什么是HTTPS1.3.TLS如何实现加密 2.HTTPS实现原理2.1.加密模型-对称加密2.2.加密模型-非对称加密2.3.身份验证机构-CA2.4.HTTPS通讯原理 3.HTTPS扩展知识3.1.HTTPS证书类型3.2.HTTPS购买建议3.3.…

SCTF2023复现(部分web复现)

文章目录 SCTF2023复现webezcheck1nSycServerpypyp? SCTF2023复现 web ezcheck1n find the way to flag.Looks like there are two containers with an evil P in the configuration file of the frontend server 源码&#xff1a; <?php$FLAG "flag{fake_flag}&…

华为OD机试真题 Python 实现【分奖金】【2022Q4 100分】

目录 一、题目描述二、输入描述三、输出描述四、解题思路五、Python算法源码六、效果展示1、输入2、输出 一、题目描述 公司老板做了一笔大生意&#xff0c;想要给每位员工分配一些奖金&#xff0c;想通过游戏的方式来决定每个人分多少钱。按照员工的工号顺序&#xff0c;每个…

《移动互联网技术》 第七章 数据存取: 掌握File、SharePreferences、SQLite和ContentProvider四种数据存取方式

&#x1f337;&#x1f341; 博主 libin9iOak带您 Go to New World.✨&#x1f341; &#x1f984; 个人主页——libin9iOak的博客&#x1f390; &#x1f433; 《面试题大全》 文章图文并茂&#x1f995;生动形象&#x1f996;简单易学&#xff01;欢迎大家来踩踩~&#x1f33…

iview button组件点击第一次无效的原因解决

最近在开发页面&#xff0c;发现登陆页老是需要点击两下才能进入具体页面&#xff0c;一开始没在意&#xff0c;但是使用久了&#xff0c;就感觉肯定是问题&#xff0c;于是仔细查看了代码&#xff0c;如上图所示&#xff1a; 一开始我的跳转是放在存储token的上面的&#xff0…

管理类联考——英语——趣味篇——词根词汇——按“认识自然、认识自我、改造自然、情感智力、人与社会”分类”

文章目录 前言第⼀部分、认识⾃然1&#xff0e; ⾃然源于⽣命-bio-“⽣命&#xff0c;⽣物”-nat-“⽣命&#xff0c;出⽣”-gen-&#xff0c;-geo- “⽣&#xff0c;出⽣&#xff0c;⽣发;⼟地”-viv- -vit-, “⽣&#xff0c;⽣命&#xff0c;出⽣”-mort- “死&#xff0c;死…

如何使用企业门户(门户,Portal)平台构建千人千面的企业数字神经网络、门户工作台,集团数字化门户系统?

基于人工智能与AI算法的信创门户“One”&#xff0c;打破了IT系统间信息孤岛。实现了系统间的互联互通&#xff08;数字孪生&#xff0c;塔尖通信&#xff09;&#xff0c;结合机器学习&#xff0c;打造企业数字神经网络&#xff0c;给用户一个千人千面的智慧门户工作台&#x…

【Python】一文带你学会数据结构中的堆、栈

作者主页&#xff1a;爱笑的男孩。的博客_CSDN博客-深度学习,活动,python领域博主爱笑的男孩。擅长深度学习,活动,python,等方面的知识,爱笑的男孩。关注算法,python,计算机视觉,图像处理,深度学习,pytorch,神经网络,opencv领域.https://blog.csdn.net/Code_and516?typeblog个…

移除所有本地应用程序(数据库)加密设置

大家好&#xff0c;才是真的好。 最近我就有这样一个烦恼&#xff0c;要移除Notes本地的所有本地应用程序&#xff08;数据库&#xff09;的加密设置&#xff0c;这样就可以放到Domino服务器上&#xff0c;然后支持其他电脑上不同的Notes访问。毕竟&#xff0c;默认地&#xf…

Open-World Class Discovery with Kernel Networks (ICDM 2020)

Open-World Class Discovery with Kernel Networks (ICDM 2020) 摘要 我们研究了一个开放世界类发现问题&#xff0c;在这个问题中&#xff0c;训练样本是来自旧类有标签的样本&#xff0c;而我们从没有标记的测试样本中发现新的类。解决这一范式有两个关键的挑战:(a)将知识从…

【ESP-IDF】在squareline studio上设计GUI并移植到esp-box上

因为squareline studio软件中适配了ESP-BOX&#xff0c;所以作者本想直接使用该软件创建的工程&#xff0c;但是会出现花屏的现象&#xff0c;也不知道是不是没有做好esp-box-lite的适配。 因此只能先用squareline studio设计好GUI&#xff0c;然后再导出其代码&#xff0c;在其…

实时数仓详解

前言 本文隶属于专栏《大数据理论体系》&#xff0c;该专栏为笔者原创&#xff0c;引用请注明来源&#xff0c;不足和错误之处请在评论区帮忙指出&#xff0c;谢谢&#xff01; 本专栏目录结构和参考文献请见大数据理论体系 背景 伴随着社会的发展&#xff0c;用户对数据仓库…

ChatGPT中 top_p 和 temperature 的作用机制

1. temperature 的作用机制 GPT 中的 temperature 参数调整模型输出的随机性。随机性大可以理解为多次询问的回答多样性、回答更有创意、回答更有可能没有事实依据。随机性小可以理解为多次询问更有可能遇到重复的回答、回答更接近事实&#xff08;更接近训练数据&#xff09;…