0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看威廉希尔官方网站 视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

低延迟SSD上的快速图处理

SSDFans 来源:SSDFans 2023-10-12 09:12 次阅读

一、背景

图处理在社交媒体、导航、推荐等领域应用广泛。很多场合下图数据往往非常大以至于难以在单个机器的内存中存储。分布式图处理选择将图数据存储在分布式集群的内存中;而与分布式图处理不同,外部图处理系统选择在单台机器上利用二级存储来辅助存储图数据,同时也能提供与分布式图处理相近或更优的性能。外部图处理系统根据存储方式可以进一步分为半外部系统和全外部系统。前者将图数据中的顶点数据存储在内存、边数据存储在SSD中;后者则将两者都存储在SSD中。本文提出的Blaze就属于半外部系统。

二、问题

8587359e-688f-11ee-939d-92fbcf53809c.png

尽管现在新兴的快速NVMe SSD提供了比过去的SSD更高的带宽,但是现有的半外部图处理系统不能充分利用这些快速SSD带来的性能提升。本文通过实验(上图)发现主要问题为IO利用率低下,可以看出在两个代表性的半外部处理系统中除了BFS算法以外其他例程的执行中IO带宽(柱)都远未达到快速SSD的最大带宽(红线)。

本文作者认为IO利用率低下的原因主要包含3个方面:计算倾斜、IO倾斜、IO快计算慢。

1. 计算倾斜

并行图处理系统需要同步机制来避免并发更新算法相关的顶点数据时出现竞争。现有的半外部图处理系统FlashGraph采用消息机制来解决同步问题,它为每个顶点分配了一个消息队列,并按照顶点ID将每个顶点分派给一个计算线程。图算法迭代性地执行,在执行的每一个迭代中顶点间通过消息通信;在迭代结束的时候系统处理这些消息,并根据处理的结果更新顶点数据。

对于FlashGraph而言,由于图结构服从照幂律分布,一些线程需要比其他的处理更多消息,即计算倾斜。而(下一迭代的)IO必须得等待这种落伍线程完成处理才能开始。快速SSD在本轮迭代中的IO操作很可能比这个落伍线程完成的早,导致其空闲。

下图的实验证明快速SSD(Optane SSD)相较于低速SSD(图中NAND SSD)带来的带宽提升(红线为磁盘最大读取带宽)确实造成了上述问题,造成了IO更多的空闲。

85a2838a-688f-11ee-939d-92fbcf53809c.png

2. IO倾斜

为了更大的容量和带宽,一些半外部图处理系统会将边数据分布在多块磁盘中。而当IO负载不均的时候显然会造成部分磁盘比其他磁盘完成IO更慢而造成其他磁盘的空闲。

另一个半外部图处理系统Graphene采用了一种2D图分区威廉希尔官方网站 以将边均匀地分配到每个分区,并将这些分区均匀分布到多个磁盘上。尽管其分布均匀,但是Graphene在执行采用了边数据选择性调度的算法的时候仍然受IO倾斜的影响。

下图中的实验证实了上述问题,图中纵轴表示每轮迭代中各个磁盘间最大IO量减去最小IO量。尽管均匀分布的数据集可能有着低于1MB的倾斜,但对于其他幂律分布的图则有着最大可达100MB的倾斜。

85b2ddc0-688f-11ee-939d-92fbcf53809c.png

3. IO快计算慢

Graphene为每个SSD分配了一个计算核心和一个IO核心,对于慢速SSD而言这样的设计可以最大化IO带宽;然而对于快速SSD而言这样的设计导致计算速度比IO更慢,IO填满缓冲区的速度比计算使用的速度更快,导致缓冲区填满后IO必须等待新的缓冲区。

下图中的实验对比了计算的速度和存储设备的读取带宽,可以看出计算的速度比快速SSD要慢得多,证明了上述问题。

85ce369c-688f-11ee-939d-92fbcf53809c.png

三、设计

1. Online binning

Blaze采用名为Online binning的机制应对计算倾斜的问题。Bin是存储在内存中的数据结构,存储了多条bin record,而bin record则是包含顶点ID和一个数值。Blaze在算法执行时根据目标顶点ID和用户定义的scatter函数的返回值创建bin record,然后对顶点ID取模计算出需要进入的bin ID。填满的bin被推入名为full_bins的并发队列,由gather线程取出处理。每个gather线程独自处理一个填满的bin,以避免同步开销。

2. 页面交织

为了应对IO倾斜的问题,Blaze采用了页面交织的存储方式来存储边数据。页面交织基本类似RAID 0的方式。Blaze将CSR格式存储的边数据以4KB粒度交织分布到多个SSD上。

3. Blaze整体执行流程

85dbaf7a-688f-11ee-939d-92fbcf53809c.png

图算法一般按迭代执行,上图提供了Blaze中每轮迭代中的处理流程。

作为输入之一,算法程序会提供需要处理的顶点ID。为了接下来访问各个顶点的边列表,Blaze在第1步发动所有可用的线程将顶点ID集合转换成其边列表所在的磁盘页面ID集合(即page frontier内容)。转换完成后根据其磁盘页面ID从SSD中访问数据,写入到空的IO buffer中,生成满的IO buffer。Scatter线程取出填满的IO buffer,计算并生成bin record装入对应的bin,并将用完的IO buffer还给空IO buffer池。Gather线程取出填满的bin并处理,根据处理结果修改算法相关的顶点数据。最后返回下一个迭代所需要处理的顶点集合。

四、实验评估

1. 实验设置

实验测试平台是一台单处理器Intel Xeon Gold 6230,20核心,禁用超线程),96GB内存的机器,存储配置了一块960GB的快速SSD(Intel DC P4800X)。

对比的算法包含:BFS、PageRank、WCC、稀疏矩阵乘(SpMV)、BC。

数据集如下表所示:

85f980a4-688f-11ee-939d-92fbcf53809c.png

2. 系统对比

本文将Blaze与FlashGraph和Graphene分别作了对比计算了加速比,加速比如下图所示(Graphene没有实现BC算法所以没做对比)。除了sk2005数据集中FlashGraph表现更优以外总体都有一定提升。sk2005数据集上的处理有着更高的局部性,FlashGraph的LRU页面缓存借此减少了存储访问,而Blaze并没有针对页面缓存做专门的优化。

860d4210-688f-11ee-939d-92fbcf53809c.png

3. IO利用率

IO利用率的评估如下图所示,可以看出Blaze的平均IO带宽基本达到快速SSD的带宽。

8618ede0-688f-11ee-939d-92fbcf53809c.png

4. 可扩展性

实验表明Blaze的性能大致随着核心数的增加而线性增长,除了少部分负载下(如sk2005上的BFS)较快地饱和了IO带宽而不能扩张其性能。

862b70d2-688f-11ee-939d-92fbcf53809c.png

五、总结

本文提出了一个新的半外部图处理系统Blaze。Blaze采用了全新的scatter-gather威廉希尔官方网站 ,online binning,解决了现有半外部图处理系统应用快速SSD后不能充分利用其高带宽的问题。






审核编辑:刘清

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 处理器
    +关注

    关注

    68

    文章

    19265

    浏览量

    229667
  • CSR
    CSR
    +关注

    关注

    3

    文章

    118

    浏览量

    69627
  • SSD
    SSD
    +关注

    关注

    21

    文章

    2859

    浏览量

    117373
  • BFS
    BFS
    +关注

    关注

    0

    文章

    9

    浏览量

    2169

原文标题:Blaze:低延迟SSD上的快速图处理

文章出处:【微信号:SSDFans,微信公众号:SSDFans】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    PCIe延迟对系统性能的影响

    随着威廉希尔官方网站 的发展,计算机系统对性能的要求越来越高。PCIe作为连接处理器、内存、存储和其他外围设备的关键接口,其性能直接影响到整个系统的表现。PCIe延迟,作为衡量数据传输效率的重要指标,对系统性
    的头像 发表于 11-26 15:14 338次阅读

    什么是SSD硬盘 SSD硬盘的优势和劣势

    快速读写速度、低功耗、抗震动等优点。 SSD硬盘的优势 快速读写速度 :SSD硬盘的读写速度远高于传统HDD,这得益于其内部没有机械部件,数据传输完全依赖于电子信号,因此可以实现几乎即
    的头像 发表于 11-23 09:34 296次阅读

    边缘计算对网络延迟的影响

    延迟。而边缘计算则将计算能力“边缘化”,即将数据处理和分析的任务从云端迁移到网络的边缘,即用户设备或靠近用户的边缘服务器。这样,数据就可以在用户端或附近的服务器上得到及时处理,从而
    的头像 发表于 10-24 14:25 389次阅读

    交互式延迟音频解码器

    普通音频解码器在处理音频时可能会引入较高的延迟,通常适合于音乐播放或录音等场景。而交互式延迟音频解码器则专为实时应用设计,延迟通常在10毫
    的头像 发表于 09-28 11:15 240次阅读
    交互式<b class='flag-5'>低</b><b class='flag-5'>延迟</b>音频解码器

    TPS24711实现延迟插入和快速关断的分立解决方案

    电子发烧友网站提供《TPS24711实现延迟插入和快速关断的分立解决方案.pdf》资料免费下载
    发表于 09-25 09:44 4次下载
    TPS24711实现<b class='flag-5'>延迟</b>插入和<b class='flag-5'>快速</b>关断的分立解决方案

    数字控制环路中测量单元的延迟信号链

    电子发烧友网站提供《数字控制环路中测量单元的延迟信号链.pdf》资料免费下载
    发表于 09-07 09:13 0次下载
    数字控制环路中测量单元的<b class='flag-5'>低</b><b class='flag-5'>延迟</b>信号链

    TLV3801有着非常延迟,输入信号的电压受限,如何处理这种情况?

    (LVDS,CMOS)。 看到TLV3801等芯片有着非常延迟,但是输入信号的电压受限。针对这种情况在比较器前端应该如何调理
    发表于 08-02 06:24

    聊聊下一代企业级SSD外形EDSFF #EDSFF #SSD #硬盘抽取盒

    硬盘SSD
    ICY DOCK硬盘盒
    发布于 :2024年06月13日 17:15:19

    AI边缘计算盒子优势有哪些?如何实现延迟处理

    AI边缘计算盒子作为一种集成人工智能威廉希尔官方网站 的边缘计算设备,其优势主要体现在以下几个方面,万物纵横为您详细介绍: 边缘计算盒子 1. 延迟处理:AI边缘计算盒子靠近数据产生源头,能够即时处理
    的头像 发表于 05-09 16:07 631次阅读
    AI边缘计算盒子优势有哪些?如何实现<b class='flag-5'>低</b><b class='flag-5'>延迟</b><b class='flag-5'>处理</b>?

    晶体晶振在SSD的应用

    晶体晶振在SSD的应用SSD(SolidStateDisk)俗称固态硬盘,是一种用于存储数据的非易失性存储设备,与传统的机械硬盘(HDD)相比,具有更高的速度、更低的能耗和更好的可靠性。因此
    的头像 发表于 04-30 16:03 515次阅读
    晶体晶振在<b class='flag-5'>SSD</b><b class='flag-5'>上</b>的应用

    静态电流、可编程延迟监控电路TPS3808数据表

    电子发烧友网站提供《静态电流、可编程延迟监控电路TPS3808数据表.pdf》资料免费下载
    发表于 04-07 10:25 0次下载
    <b class='flag-5'>低</b>静态电流、可编程<b class='flag-5'>延迟</b>监控电路TPS3808数据表

    静态电流、可编程延迟监控电路TPS3808E数据表

    电子发烧友网站提供《静态电流、可编程延迟监控电路TPS3808E数据表.pdf》资料免费下载
    发表于 04-01 10:36 0次下载
    <b class='flag-5'>低</b>静态电流、可编程<b class='flag-5'>延迟</b>监控电路TPS3808E数据表

    静态电流、可编程延迟监控电路TPS3808-EP数据表

    电子发烧友网站提供《静态电流、可编程延迟监控电路TPS3808-EP数据表.pdf》资料免费下载
    发表于 03-14 10:07 0次下载
    <b class='flag-5'>低</b>静态电流、可编程<b class='flag-5'>延迟</b>监控电路TPS3808-EP数据表

    静态电流、可编程延迟监控电路TPS3808E数据表

    电子发烧友网站提供《静态电流、可编程延迟监控电路TPS3808E数据表.pdf》资料免费下载
    发表于 03-14 10:06 0次下载
    <b class='flag-5'>低</b>静态电流、可编程<b class='flag-5'>延迟</b>监控电路TPS3808E数据表

    Splashtop如何提供快速连接和延迟

    为了使远程访问按预期运行,用户需要尽可能减少延迟,这既是为了提高用户体验,也是为了增强一般性能。延迟令人沮丧,影响工作。在进行VoIP 或视频通话时,音频不同步会导致沟通不畅,令人感到沮丧。
    发表于 01-04 10:53 418次阅读
    Splashtop如何提供<b class='flag-5'>快速</b>连接和<b class='flag-5'>低</b><b class='flag-5'>延迟</b>