是否存在这样的 Forth 实现,可以让您充分利用多核处理器?
4 回答
我最近了解到colorForth,它是 Moore 先生的最新发明(不符合 ANS),并用于他的新多核芯片。
它在单个芯片上配备了 144 台小型计算机(并且没有时钟!),以实现高效率。
编辑:实际上,colorForth 是用于芯片的 IDE。在芯片上运行的(color)Forth 的味道被称为arrayForth。
显然。我对此了解不多,请参阅多核处理器、FORTH 编程以及软件和硅之间的关系(2008-09-24 发布)。
您想“充分利用”多核处理器。多核编程的借口是你需要性能(你可以只用一个 CPU 做多线程)。
在那种情况下,我不认为我会使用 Forth,因为它基本上是一个解释器(是的,一个相当快的解释器)。更糟糕的是,对于现代处理器,作为间接调用的每个 Forth 字调度都可能是一个管道中断,这确实会降低处理器性能,并且 Forth 字执行操作的是堆栈元素而不是寄存器。因此,通过使用 Forth,与 C 或 C++ 甚至 Fortran 相比,您放弃了计算优势。这意味着您几乎可以保证必须在 Forth 上使用多个 CPU 才能匹配更传统的编码和编译语言的性能。为什么要从劣势开始?
出于同样的原因,那些想用 Python 做 MP 的人也让我感到困惑。
使用 iForth 可以进行多核 Forth 编程。有 32/64 位实现适用于 Win7、Linux 和 OS X。iForth 生成本机代码:http ://home.iae.nl/users/mhx/i4faq.html
有在裸机上运行的 Forth 实现可以编译机器代码,如果你在开始输入之前做一些研究,你会发现事实上:
- Forth 是 Chuck Moore 自 1958 年以来使用的个人系统
- Forth 是一种语言、一种编译器和操作系统,一种交互式调试器(在这里你可以理解它被“解释”的想法),当你考虑到整个世界时,一个像 Chuck 一样的裸机系统会变得更好只需要 2 个寄存器、ALU 和一个程序计数器即可运行。Forth 中的编程与您的操作系统可能由其组成的东西完全不同,因此我认为在判断什么是什么之前,应该真正查看“裸机”甚至本机(是的,有本机堆栈机器处理器)Forths。
- 正是这些“裸机”Forth 实现已经使用了几十年,并且今天仍然在您的桌面操作系统可能永远不应该使用的嵌入式设备中得到高度使用。