PaperReading

DRust:Languaged-Guided Distributed Shared Memory with Fine Granularity, Full Transparency, Ultra Efficiency

技术概念

single-machine和distributed environment

Distributed Shared Memory

Languaded-Guided

研究背景

使用了DSM的分布式环境的表现应该比单机环境的表现要好(负载均衡)

但是由于确保内存一致性的同步操作开销大,表现却不如单机环境

内存一致性:通过规定内存操作的顺序和可见性,确保程序的正确性和一致性

现有方案

single-writer-multiple-reader(SWMR):

如果一个节点要访问一个数据块:

data block:DSM系统进行数据管理和同步的基本单位;内存中的一段连续存储区域;一个整数或浮点数,一个结构体;

问题

需要太多网络通信,延迟大

解决方案

现象

用实现了ownership type的rust语言编程的程序”自动“遵守了SWMR原则

DRust

用rust实现的DSM

设计概述

1730539033550

DRust Abstraction

Manage Memory

Rust的所有权类型系统(ownership type system)原本设计用于单机环境,其中对象的内存地址在创建后保持不变。在分布式环境中,对象可能在不同的机器之间迁移或复制,这打破了单机环境中的假设,可能导致悬空指针(dangling pointers)和内存一致性问题。

解决方案:

具体机制:

Distributed Threading Utilities

Rust的标准库和程序最初是为单机环境设计的,无法直接处理集群中的分布式资源。例如,一个在服务器A上运行的Rust程序无法在另一个服务器B上创建线程,更不用说在A和B之间同步线程了。

解决方案

具体机制

DRust Runtime System

一个Rust应用程序可以从单个服务器开始运行。应用程序可以逐渐在其运行过程中创建线程,并将这些线程调度到集群中的其他服务器上。

Runtime Library

分布式资源管理 :

资源分配优先级 :

Global Controller

全局决策 :

资源使用信息收集 :

适应性策略 :

示例流程

测试结果

选取了四个应用程序

测试步骤:

1730543020918

缺点