Intel 为了更好的卖他们家的cpu,花了不少力气参与分布计算社区的开发,比如spark。如果真正用好这些芯片提供的特性,确实可以极大的提升分布式计算系统的性能。

SIMD


传统的计算指令输入是两个数,输出是一个数。SIMD指令的输入是两个数组,输出是也是数组。这就使得批量计算的效率大大提高了。Intel的CPU从最早的MMX指令,发展的SSE,以及现在的AVX,AVX2,这些指令都可以统称为SIMD指令。最初这些指令大部分是用于多媒体和图形处理领域,现在也有计算引擎和数据库系统开始利用这些SIMD指令进行加速。值得一提的是,显卡的GPU也是类似SIMD的方式来工作的,所以也有数据库开始利用GPU进行计算了。

这是一个利用了SIMD指令的数据库系统的架构图

DPDK


DPDK的作用就是利用Intel的高端网卡的特殊驱动,可以使得在用户态的普通程序绕过Linux内核,直接控制网卡收发IP包。如果利用 DPDK 在用户态实现了本来由Linux内核实现的TCP协议栈。那么就可以用来提高类似 Kafka 这样的纯转发的数据应用场景的网络性能。

ADR

Intel最近演示了利用他们家的ADR技术如何加速etcd数据库的写入性能


这项技术的专利说明在这里:https://www.google.com/patents/US20090089514
华为公司在这个基础上有一个新的专利:http://www.google.com/patents/CN103544080A?cl=zh
在专利说明里清晰地描述了 ADR 的工作机制

现今,为了保证存储系统中数据的可靠性,通常会在存储系统中增加备电单元,从而保证在电源异常和/或存储系统异常的情况下,使得内存数据不丢失,同时现今主流的备点单元是NVDIMM(Non-Volatile DIMM,非易失性内存条)。该NVDIMM在保护数据时通常是通过通用的DIMM(Dual Inline Memory Modules,双列直插式存储模块)接口与存储系统连接。因此,当存储系统电源发生异常时,CPLD(Complex Programmable Logic Device,复杂可编程逻辑器件)产生中断到PCH(Platform Controller Hub,集成南桥)芯片,在PCH中触发 ADR (Asynchronous Dram Refresh,异步内存刷新)流程,使得 CPU (Central ProcessingUnit,中央处理器)将cache缓存中的数据写入NVDIMM中的DRAM(Dynamic Random AccessMemory,动态随机存取存储器)然后再将NVDIMM置为self-refresh自刷新模式,从而使得NVDIMM完成备电切换,将DRAM数据拷贝到flash闪存中保存。

简单来说就是把一块 <100MB 的内存区域在断电的时候自动刷到 NVDIMM 中,而 NVDIMM 是一种在断电时内容不会丢失的内存(http://baike.baidu.com/item/NVDIMM)。这类技术可以统称为 Persistent Memory(http://pmem.io/)。
在过去数据库为了提供durability,标准的做法都是把用户的改动写入一个叫做 Write Ahead Log (WAL)的日志文件里。然后调用操作系统的 fsync() 函数确保这个文件的内容已经被持久化到了磁盘上。然后再返回给用户说写入已经成功。即便WAL文件的写入是顺序写,但是磁盘的fsync操作仍然是昂贵的。Persistent Memory技术可以在将来被用于改善WAL的性能。Intel对etcd的性能优化就是一个很好的榜样。

Intel 加速分布式计算系统的三个神器相关推荐

  1. 蚂蚁金服:超大规模分布式计算系统 + 超大规模分布式优化算法

             人工智能大数据与深度学习  公众号: weic2c 近年来,随着"大"数据及"大"模型的出现,学术界和工业界对分布式机器学习算法引起了广泛关注 ...

  2. 打造云原生大型分布式监控系统(三): Thanos 部署与实践

    视频 附上本系列完整视频 打造云原生大型分布式监控系统(一): 大规模场景下 Prometheus 的优化手段 打造云原生大型分布式监控系统(一): 大规模场景下 Prometheus 的优化手段_哔 ...

  3. 阿里云计算资深总监唐洪:飞天大规模分布式计算系统解析

    CSDN首页 > 云计算 发表于2012-05-25 11:11| 5566次阅读| 来源CSDN| 0 条评论| 作者杨爽 分布式应用 云计算 分布式计算 阿里云 飞天 摘要:阿里云计算资深总 ...

  4. 开源分布式计算系统框架比较

    开源分布式计算系统框架(Storm,Spark, MapReduce ) 目前流行的分布式计算框架主要有 Hadoop MapReduce, Spark Streaming, Storm; 这三个框架 ...

  5. 什么是分布式计算系统?—Vecloud微云

    分布式计算系统,指的是位于不同地方的多个计算机系统通过网络连接在一起.各种计算机的集合,对于客户端而言,似乎是一个统一的系统. 根据定义,所有计算机都在局域网(LAN)或广域网(WAN)的网络中被捆绑 ...

  6. memcached 分布式锁 java_分布式锁的三种实现方式

    分布式锁的三种实现方式 一.zookeeper 1.实现原理: 基于zookeeper瞬时有序节点实现的分布式锁,其主要逻辑如下(该图来自于IBM网站).大致思想即为:每个客户端对某个功能加锁时,在z ...

  7. 分布式计算系统导论:原理与组成pdf

    下载地址:网盘下载 本书较全面地介绍分布式计算系统的原理与组成,包括命名.进程.通信.同步与互斥和多副本一致性技术,以及网络存储系统.分布式文件系统.分布式事务.面向对象的分布计算.面向服务的分布计算 ...

  8. Intel VT学习笔记(三)—— VMCS(上)

    Intel VT学习笔记(三)-- VMCS(上) 要点回顾 VMCS 设置字段 错误排查 Fields Host-State Area VM-Control Fields 代码实现 参考资料 要点回 ...

  9. 理解分布式数据处理的三个级别

    分布式数据处理,就是利用分布式计算技术对数据进行处理. 分布式计算是指将一个庞大的计算任务经过服务器的处理划分为若干个小任务,然后将这些小任务通过网络分发到位于同一网络.不同物理位置的客户端,通过这种 ...

最新文章

  1. python 使用sax 解析xml 文件
  2. html漂浮广告随页面移动代码,JS漂浮广告代码,慢慢漂移的广告JS代码
  3. 身患安全杂症,企业如何“下药”?
  4. 从技术面试官的角度来谈谈简历和面试
  5. 用Python爬取Bilibili上二次元妹子的视频
  6. 阅读笔记一之《软件需求与分析》
  7. Spring思维导图,让spring不再难懂(一)
  8. 实战系列-HashMap深入剖析
  9. Spring集成JDBC组件开发
  10. python必备入门代码-小白入门Python开发,必备技能有哪些?
  11. android label关闭按钮,iOS弹出关闭按钮标签:“OK”还是“Okay”?
  12. eclipse+java类不报错_eclipse,代码中有错误,项目或者java类中却不显示红叉
  13. 如何根据关键字批量获取淘宝联盟中的商品图片
  14. linux启动SSH及开机自动启动
  15. 反复横跳的瞄准线!从向量计算说起!基于射线检测的实现!Cocos Creator!
  16. python图片查看器
  17. 软件测试-柠檬班python全栈自动化50期测试学习笔记分享
  18. 我的博客园博客开通咯(qyl)
  19. 1.1 Linux内核代码下载、编译
  20. Promise ,Promise.all 和Promise.race的区别

热门文章

  1. Maven Web项目配置Mybatis出现SqlSessionFactory错误的解决方案
  2. 【android studio】解决android studio drawable新建项目时只有一个drawable目录的问题
  3. VS2017 启动调试出现 无法启动程序“http://localhost:15613” 操作在当前状态中是非法的。 同时附加进程也是错误的解决方法
  4. 使用nginx做反代时遇到413 Request Entity Too Large的解决方法
  5. DTO,VO,POJO,JavaBeans之间的区别?
  6. Win11未安装Defender怎么办?解决Win11未安装Defender的方法
  7. Python基础-高级变量类型
  8. SVN报错:can't open file db/txn-current-lock:permission denied
  9. linux 改路由表 宕机,网管宕机,服务停止?别担心,解决方案来了
  10. 非平衡电桥电阻计算_绝缘检测电桥法中的几个重要概念