Research on Distributed Systems

Photo by MinelHuang

⚠ 转载请注明出处:Maintainer: MinelHuang,更新日期:Aug.02 2021


知识共享许可协议

    本作品MinelHuang 采用 知识共享署名-非商业性使用-禁止演绎 4.0 国际许可协议 进行许可,在进行使用或分享前请查看权限要求。若发现侵权行为,会采取法律手段维护作者正当合法权益,谢谢配合。


目录

    Section 0. 前言:简单介绍研究目的以及方向概述,维护当前研究进度和计划

    Section 1. 知识补充:记录笔者的学习路线,包括理论知识与工具学习

    Section 2. 工程项目:总结与分布式系统相关的项目开发过程

    Section 3. 研究项目:总结研究路线和各阶段进展

0. 前言

    本项目旨在记录笔者在MPhil阶段中的各类工作成果,每项工作由单独的文档记录,可能是工程项目,可能是学习笔记。笔者希望通过此项目整理自己的工作成果,由此给出当前阶段的工作计划
    为与其他项目作区分,本项目仅总结归纳分布式系统(Distributed System)方向的工作,下面对该方向作简要介绍。

0.1 研究目的

    我们通常使用的计算机都为单机系统,它很强大,可以运行复杂的程序,快速的处理计算任务,足够去完成我们日常生活中的任务,比如看视频、玩游戏等等。然而,随着互联网的不断发展,人类世界中产生的数据与日俱增,这些数据需要被处理,需要存储,同时带来了更大的计算任务。比如百度要在极短的时间内在海量的数据中查询我们搜索的关键词,并且这种搜索请求也是海量的。
    单机系统不足以完成这样的任务,所以我们考虑使用多台机器去处理这种任务,单机系统也变成了分布式系统。然而,相较于单机系统,分布式系统是十分复杂的,故而衍生出了一个新的研究领域。作为一个系统研究人员,笔者希望在分布式系统领域进行一番研究,故开展此博客簇,以记录我的学习历程和研究方法。

0.2 研究方向

    关于如何寻找研究方向,请参考此文档How to find papers and research topics in CS
当前的研究场景为:Distributed System for Privacy Computing,故目前的项目除分布式计算系统外,还可能涉及部分隐私计算系统。关于隐私计算请参考另一个Project:Research on Privacy Computing

0.3 研究计划

    已完成的工作:
    1. 分布式计算系统Galaxy搭建

    正在进行的工作:
    1. 经典分布式系统论文研读
    2. 近三年(2018-2021)会议论文分类
    3. 分布式系统课程学习
    4. 基础知识补充

0.4 本文档章节规划

    文档大体将分为知识补充、工程项目、研究项目三个类别,其中知识补充重点在于总结基础知识学习笔记、经典论文学习笔记等;工程项目重点在于总结与分布式系统相关的项目过程文档与项目成果;研究项目重点在于根据研究方向记录重点research笔记。
    笔者将从此三个方向对个人知识结构进行梳理,你可以根据您的兴趣进行针对性阅读。

1. 知识补充

1.1 基础知识补充

    1. MIT 6.824 Distributed Systems学习笔记
    2. 大数据基础(正在进行)
    3. Linux系统知识学习(正在进行)

1.2 经典论文选读

    根据MIT 6.824课程,本章节总结了有关论文的学习笔记,同时针对行业广泛使用的系统论文做了针对性阅读。
    1. 一致性:Raft学习笔记
    2. MapReduce学习笔记
    3. Hadoop YARN学习笔记
    4. Spark学习笔记

1.3 工具学习

    1. Docker技术学习笔记(未完成)
    2. k8s技术学习笔记(未完成)

2. 工程项目

    此节仅是对项目的整理归纳,创建索引表,具体项目内容将在github上或neth-lab其他project中介绍。

2.1 Galaxy系统开发 - 已完成

    Github地址:https://github.com/Huangxy-Minel/galaxy

    项目简介:
    该系统为笔者本科毕业设计,使用了三块树莓派模拟一个工作集群,并基于Hadoop YARN实现了一系列计算过程。在YARN的基础上,笔者引入了一种高扩展的scheduling框架,称为Galaxy,使其可以承载异构的工作负载。具体项目内容请见github文档(Github文档未完成)
    项目研究动机:谁限制了数据中心的资源效率
    根据该论文,笔者思考是否能通过资源规划的方法,对数据中心的计算资源进行数学建模,从而对异构的计算任务给予合理的资源分配,以这样的方式提高数据中心的资源效率。

    此过程产出两篇较为重要的过程文档,分别为:
    1. 树莓派Hadoop集群搭建
    2. YARN in Practice
    您可以参考此两篇文档,尝试从零搭建一个Hadoop YARN集群,并完成MapReduce任务。若您没有Hadoop相关的基础知识,您可以参考Section 1.2中的MapReduce和Hadoop YARN学习笔记。

2.2 分布式FATE异构计算系统开发(正在进行)

    FATE为WeBank开发的一款面向联邦学习的计算系统,笔者当前的工作为引入GPU加速并将FATE部署在Spark环境中,以实现分布式运算。在此章节中,将详细描述如何将FATE移植到Spark环境中,并引入GPU异构加速的。关于FATE本体开发,请见Privacy Computing项目中的内容。

    过程文档记录:
    1. Spark集群搭建

3. 研究项目

    该章节组织结构为,Section 3.1将描述总结当今研究热点和寻找idea工作相关的过程文档,Section 3.2将总结某一idea研究中的过程文档,Section 3.3中将总结论文撰写工作相关文档。

3.1 近期研究热点与Idea

    本节的分类将以Scenario+Problem的方式对CCF A类部分会议论文进行分类,以总结研究热点。

3.1.1 Distributed Machine Learning

    A.Scheduling
    1. 论文选读:A-generic-communication-scheduler-for-distributed-DNN-training-acceleration
    2. 论文选读:Optimus: an efficient dynamic resource scheduler for deep learning clusters

Related