信息化的本质分享 http://blog.sciencenet.cn/u/Babituo

博文

图计算和图程

已有 1984 次阅读 2022-1-8 08:06 |个人分类:虚构开放世界|系统分类:科研笔记

图计算和图程


最早听到“图计算”一词时,并没有和图数据库联系起来,而是以为实现了我一直设想的一类分布式的并行计算框架。

百度百科对图计算的解释是:

图计算(Graph Processing)是将数据按照图的方式建模可以获得以往用扁平化的视角很难得到的结果。

图(Graph)是用于表示对象之间关联关系的一种抽象数据结构,使用顶点(Vertex)和边(Edge)进行描述:顶点表示对象,边表示对象之间的关系。可抽象成用图描述的数据即为图数据。图计算,便是以图作为数据模型来表达问题并予以解决的这一过程。以高效解决图计算问题为目标的系统软件称为图计算系统。

按此解释,图计算主要是处理数据的立体关系而引入的计算模式,如此推论,对关系型数据库就该对应“表计算”。其中肯定主要包含了图论算法来处理图数据。压根就不是我设想的“计算结点按图结构来组织的并行计算系统”。

我设想的,不是数据按图结构组织,而是计算能力单元按图来组织构造的计算系统。在我如此设想的时候,业界还没有出现微服务架构。现在看来,采用微服务架构的系统就是这类“按图结构来组织的计算系统”的一个实例。

当微服务发展到目前,出现反思甚至否定的观点也属正常,坚持的观点认为:微服务治理困难的问题,不是微服务本身的问题,而是业务能力单元的划分和标准化分工协作的问题;另一部分技术专家,则在思考治理服务依赖的方法和工具。这些想法、做法都是有道理且有益的,值得尝试。

未来的网络,多结点协同计算必定是软件的常态,而个人观察,目前软件程序结构尚未出现相适应的模式。目前软件程序结构主要存在进程、线程和协程三类结构模式。

个人理解:进程,就是一个应用程序从启动执行到停止执行的的整个生命周期的过程。线程,是在一个时间线上,“同步”执行完成的一系列操作过程。这里,同步的含义是在一条时间线上,先后连续进行的意思。协程,是最近才出现的概念,是在一条时间线上,分时、间断地,事件触发地执行多任务操作的过程,也就是同一时间线上的“异步”协作的过程。

基于这些理解,可以看出,目前在程序运行过程的结构上,都是以时间为参照的流线型过程。而分布式计算程序加入了空间的参照,在时间参照上依然是多时间线并发的过程。网络程序的执行过程,则是多进程之间,象链式反应一样,交织着线程和协程的一个计算网络。目前的状况,是计算机软件从单机版开始,到局域网、广域网,再到泛在普适网,一步一步演变发展过来的,程序执行过程模式,还停留在原始的线型模式上,并不是在网络升级的环境下进行专门的设计的结果。

如果换个思路,假若是直接面对现在的网络环境来统一设计一个软件程序,也就是把目前事实上的多进程的计算网络当作未来的一个程序来设计,会有更适应的程序结构么?

我找到的答案,就是:按图结构组织的、可增量式演进的程序结构。

我暂且称这种程序结构为“图程”。

提出这个概念,是自己原生的概念,但不一定是原创的。也许只是受个人视野和知识的疏浅局限,自己并不知道有同类探索已经走在前面。是否原创不重要,重要的是,身边知到这事的朋友还不多,而这可能是一个新的努力方向。

提出这个概念,并不是说,现在的网络程序不是图结构的,而是说,不是有心按图结构来设计的。除了为自己探索图结构程序做个注脚外,也希望引起更多的同行关注,尝试朝这个方向努力。

刚好新年伊始,算是给大家新年的礼物。

邱嘉文

202218日,于珠海。




https://blog.sciencenet.cn/blog-33982-1320037.html

上一篇:谎言悖论所缺漏的信息
下一篇:元宇宙为证明“老子猜想”提供了机会
收藏 IP: 113.74.126.*| 热度|

2 张学文 杨正瓴

该博文允许注册用户评论 请点击登录 评论 (2 个评论)

数据加载中...

Archiver|手机版|科学网 ( 京ICP备07017567号-12 )

GMT+8, 2024-4-18 18:46

Powered by ScienceNet.cn

Copyright © 2007- 中国科学报社

返回顶部