我最近在ycombinator上看到一篇关于实体组件系统(ECS)范式的文章,ECS通常简称为ECS。在详细阅读了概念后,我首先想到的是如何将这种范式映射到量子计算系统领域,以及如果可以,这样做是否有意义。

像往常一样,我开始向 ChatGPT 请求可视化“应用于量子控制系统的实体组件系统”(左图)及其对立面“由实体组件系统控制的量子比特”(右图)。除了注意到在第一种情况下,“人”是系统,而在第二种情况下,量子比特似乎是系统之外,很难理解这些图像的含义。

回到实体组件系统(ECS),ECS 的主要优势在于它提倡组合而非继承、关注点分离,并遵循高度数据导向的方法。ECS 架构将行为逻辑分离到各个系统中,主要有两个原因:

首先,以系统为中心的设计通过提高局部性来优化性能,并允许并行高效地处理多个组件。

其次,它强制组件之间解耦,因为交互完全通过系统进行,而不是通过组件之间的直接依赖关系进行。

因此,我们尝试集思广益,探讨如何将这种设计模式应用于量子计算系统:

  • 实体:量子比特

  • 组件:量子比特的控制和读出表示

  • 系统:对组件进行操作并改变其状态的“方法”。

量子实体组件系统

有几点需要考虑,例如,当暴露逻辑量子比特而不是物理量子比特时,这种方法是如何工作的,以及考虑到系统在量子比特方面的规模,根据当前和未来的需求,需要什么样的粒度。

总的来说,关于“量子实体组件系统”(QECS)的这段离题讨论是一种简化的方法,但它可以作为周日早晨轻松头脑风暴的起点,并让讨论继续进行下去。

如果你想了解更多关于 ECS 的信息,可以看看 UML board 上的这篇优秀文章,它的内容和插图给了我很多启发。


References:

DrawIO diagrams used in this memo: