是否存在允许您充分利用多核处理器的Forth实现?
我最近知道了colorForth,这是Moore先生的最新发明(不符合ans标准),用于他的新多核芯片。
它在一个芯片上有144个小型计算机(没有时钟!),效率很高。
编辑:实际上,colorForth是用于芯片的IDE。在芯片上运行的(颜色)Forth被称为arrayForth。
显然。我对它了解不多,参见多核处理器,FORTH编程,以及软件与硅的关系(出版于2008-09-24)。
你想要"充分利用"多核处理器。多核编程的借口是你需要性能(你可以只用一个CPU做多线程)。
在这种情况下,我不认为我会使用Forth,因为它基本上是一个解释器(是的,一个相当快的解释器)。更糟糕的是,对于现代处理器来说,每个Forth字分派都是一个间接调用,很可能是一个管道中断,这会严重影响处理器的性能,而且Forth字执行操作的是堆栈元素,而不是寄存器。因此,使用Forth,您将放弃与C或c++甚至Fortran相比的计算优势。这意味着您几乎肯定必须使用多个CPU来匹配更传统的编码和编译语言的性能。为什么要从劣势开始呢?那些想用Python做MP的家伙也因为同样的原因让我困惑。
有一些运行在裸机上的Forth实现可以编译机器码,如果你在开始输入之前做一些研究,你会看到事实上:
- Forth是Chuck Moore从1958年开始使用的个人系统
- Forth是一种语言、一个编译器、一个操作系统、一个交互式调试器(在这里你得到了它被"解释"的想法),当你考虑到整个WORLD只需要2个寄存器、一个ALU和一个程序计数器来运行时,一个作为chuck的裸金属Forth系统会变得更好。在Forth中编程与你的操作系统可能是完全不同的,所以我认为在判断什么是什么之前,应该真正看看"裸机"甚至是本机(是的,有本机堆栈机处理器)Forth。
- 正是这些"裸机"Forth实现已经使用了几十年,今天仍然在嵌入式设备中大量使用,而你的桌面操作系统可能永远不会去。
使用iForth可以进行多核Forth编程。有32/64位的实现可以在Win7、Linux和OS x上工作。iForth生成本地代码:http://home.iae.nl/users/mhx/i4faq.html