我有一个四核处理器,可以选择将 4 个 RAM 芯片分别连接到每个单独的内核。是否可以对硬盘执行相同的操作。如果我有 4 个大小相同的驱动器,可以将内核、RAM 和硬盘连接在一起吗?这可能是 RAID 选项吗?
答案1
如果你是处理器,其他一切都会显得有点慢。但如果 RAM 感觉像 DSL,那么硬盘就是比拨号上网更糟糕!
因此,如果您需要从磁盘中获取某些内容,您可以指示磁盘将其存储在 RAM 中,然后去做其他事情。几个月后,硬盘会通知您已完成。此时,您想要的数据已存储在 RAM 中,您可以用它做其他事情。
这基本上意味着 CPU 和磁盘之间的通信速度没有太大区别。重要的是仍然CPU-RAM 速度。
答案2
你所说的实际上是刀片式服务器。不是的。如果你按核心和 RAM 划分辅助存储,那么最终得到的是一组独立的单核计算机,它们通过共享总线(如 Infiniband)相互通信。
它不可能成为 RAID 选项,因为 RAID 的整个目的是使一组驱动器看起来像一个卷。RAID 就像封装。
我以前在工作中见过这种架构。有人会拿一堆 VME 或 CompactPCI 单板计算机,将存储放在 PMC 站点上(通常是 1.8 英寸硬盘;这是在 SSD 实用化之前),然后将它们全部塞进机箱中。在这些机器上开发东西真是太麻烦了,因为你必须对“你的”(本地核心)数据的访问和“他们的”(其他核心)数据的访问进行分区。我最终编写了一个库,只是为了弄清楚如何让数据流生产者 A 与消费者 B、C 和 D 进行通信,而无需过多的副本(这会降低我的性能)。我不想回去。
公司甚至开发了自己的交叉总线来连接计算机(Mercury RaceWay 是我当时见过的最好的),以最大化 I/O。(对于那些不知道的人来说,交叉总线意味着只有当其他人试图访问与您相同的目的地时,您才需要仲裁总线;通常,涉及非重叠端点的多个事务可以同时发生,从而导致理论上疯狂的带宽。这就像使用以太网交换机而不是集线器一样。)
从理论上讲,这是一个好主意,但它与标准做法有很大差异,导致硬件市场很小而且价格昂贵。
PS 您能做的最好的事情就是将每个驱动器放在具有总线控制(即 DMA)功能的单独控制器上。然后,您需要在操作系统中放入某种“亲和性”算法,该算法根据进程使用的磁盘将进程映射到 CPU/RAM 组。这就是人们做大师报告的事情。玩得开心。