miniyuan
关于科研
对于科研的理解,或者说对于我自己的理解,我决定还是从是什么、为什么、怎么做这三个问题出发吧。
是什么
这部分简要对在网计算的路线图进行研读,初步了解在网计算或者说我即将进行的科研实习是在干什么。
网络协议分层
OSI 七层模型如下:
| 层级 | 名称 | 典型协议/设备 |
|---|---|---|
| 7 | 应用层 | HTTP、FTP、SMTP、DNS |
| 6 | 表示层 | SSL/TLS、JPEG、ASCII |
| 5 | 会话层 | NetBIOS、RPC |
| 4 | 传输层 | TCP、UDP |
| 3 | 网络层 | IP、ICMP、路由器 |
| 2 | 数据链路层 | Ethernet、PPP、交换机 |
| 1 | 物理层 | 光纤、双绞线、集线器 |
在网计算主要聚焦于 2-4 层,通俗来说就是希望在 2-4 层完成一些更高层级的计算任务。
在网计算
简单理解就是:
- 传统方式: Server (1s calculate) => Switch (1s transport) => Client (1s calculate)
Total Time = 1s + 1s + 1s = 3s
- 在网计算: Server (1s calculate) => Switch (1.25s transport & calculate) => Client (0.25s calculate)
Total Time = 1s + 1.25s + 0,25s = 2.5s
wwf 老师的研究思路
- 理论基础:主要进行有关协议栈的设计及其性质研究
- 应用场景:使用在网计算完成更多合适的(比如涉及集合通信的)课题
- 作业管理:网络设备需要处理众多任务的传输+计算,如何进行调度的问题
- 开发框架:协议在不同的硬件平台下逻辑相同,但是实现代码完全不同。希望研究者能够只写高层协议逻辑,框架自动生成多种硬件代码(Tofino: P4代码,FPGA: HLS代码,NP: C代码)
- 设备研发:从根本上解决开发框架的问题,设计原生支持在网计算的芯片(ISA)
问题
- 在网计算的计算放在了哪里?是网卡还是交换机/路由器?
- 在网计算的优势?或者说使用效果?
- 科研的一个整体框架:选课题 => 读文献 => 写论文?
- 我可以学习什么?
- 我可以研究什么?
- 我可以收获什么?
对于前景的思考
当前计算机领域的工业风口是 AI 研究,其瓶颈是数据、算力、资源的不足。单一计算机系统已不能满足,需要分布式系统支撑,这就带来了通信、同步、资源调度上的问题。
从这个角度看,系统角度的研究热点有内存分解、Serverless、边缘计算、自治分布式系统等。
- 内存分解:将内存分解到了远端,并遵循 CXL 协议进行通信。特点是支持任意数据传输粒度、跨域、弹性分配。
- Serverless:由 IaaS => PaaS => Serverless (FaaS + BaaS),云计算流量波动粒度越来越小。
- 边缘计算:对于云计算的优化,将云计算分解为云计算、雾计算、边缘计算,从而减少延迟、节省带宽、保护隐私。
- 自治分布式系统:有点太前沿了,我不敢想象。。。
总结一下,计算机系统的一大核心逻辑就是缓存,两大核心要素就是数据和计算。无论是云计算还是内存分解,本质上就是将数据和计算专业化、模块化、扩大化,并放到 PC 外面,再开发各种隐秘的“缓存”技术。
为什么
为什么我想要做科研,或者说为什么我想要研究计算机系统?我认为这是我首先要搞清楚的一个问题。
我觉得计算机是个很有趣的东西,它开辟了一个全新的世界。对这样一个世界,但凡认识到的人就应该会自发萌生出一种好奇心吧。目前我更多还是在应用层玩一些愚蠢而又直白的游戏,甚至连表示层都不一定能够接触到,只能对更底层有一些浅薄的理解。好奇心驱使我向底层进发,我希望能够触碰、设计、开发一些更底层的玩意,这就是我的初心。
怎么做
还是先睡觉吧 zzz