在R. Kent Dybvig的论文“方案的三个实现模型”中,他谈到了"FFP语言“和"FFP机器”。显然,在FFP机器和多处理器上的字符串缩减之间存在一定的相关性。
谷歌搜索并没有真正发现太多的解释或例子。
有没有人能解释一下这个话题?谢谢。
发布于 2018-05-21 10:19:52
FFP机器是一种非常细粒度的并行计算机体系结构:每个处理器都有一个单独的符号/原子/值。它使用字符串简化计算模型,在该模型中,找到最内部的函数应用程序,并将其替换为等效的结果(渴望求值)。当一个结果在多个地方使用时,它往往会被重新评估,而不是产生访问某些全局存储的成本(但请参阅Mago的关于“复制操作数与复制结果”的论文,或者更好的是Mago在1982年的函数式编程语言和计算机体系结构会议上的"Data Sharing in an FFP Machine“)。
保持FFP表达被减少的L细胞通过T细胞的树状结构排列进行通信。请注意,集成电路基本上是二维的,通过布线,电路可以在物理空间中走向三维。占据更高维度的互连网络(如Hypercube、Omega、Banyan、Star等网络)最终将无法达到其理论极限。
这种通信网络是电路交换的,而不是分组交换的。数据包不包含地址,不需要路由。来自不同缩减的数据包不能相遇,不能冲突,也不能相互拥塞。配置活动(称为“分区”)在树中向上扫描一次,使用对3位消息的少量逻辑操作,留下“区域机器”,每个机器都被创建为最多推进一个可缩减的应用程序。虽然在技术上它在时间上是对数的,但结果区域机器可以在分区波之后开始以流水线方式进行通信,实际上花费了恒定的时间惩罚。(区域机器的拆除在时间上仍然是一个对数成本)。
单个缩减内的分组应该且必须满足并因此提供通常有用的同步。当分组序列在区域内上升时,对其进行排序和组合,以便从区域机器的根进行广播。提供并行前缀和并行后缀操作来减少区域通信量,因为在单个可减少的应用中仍然存在潜在的瓶颈。这是在不需要在超级计算机上展示的情况下完成的(杰克(雅各布?)纽约大学的Schwartz )在每个通信节点中使用单独的对数大小的高速缓冲存储器。每个T单元(内部树节点)只需要一个FIFO缓冲区(为了提高效率),其大小大于到树顶部和向下的流水线路径。(后者是我的猜测,但似乎是合理的)。由于树保持从左到右的数据顺序(与其他组合网络不同),该系统使单元能够以对数而不是线性的时间旋转其数据,从而避免了区域机器根部可能出现的拥塞。再次值得注意的是,区域机器中的并行度独立于其他区域机器中的同时并行度,并且具有与操作数中的数据量成比例的处理器数量。
https://stackoverflow.com/questions/2147821
复制相似问题