Multicore Forth, есть один? - PullRequest
       21

Multicore Forth, есть один?

9 голосов
/ 11 апреля 2011

Существует ли такая реализация Forth, которая позволяет в полной мере использовать преимущества многоядерных процессоров?

Ответы [ 4 ]

4 голосов
/ 24 августа 2011

Недавно мне стало известно о colorForth , который является новейшим изобретением мистера Мура (не соответствует ANS) и используется на его новых многоядерных чипах .

Он оснащен 144 маленькими четвертыми компьютерами на одном чипе (и без часов!) Для высокой эффективности.

EDIT: На самом деле colorForth - это IDE, используемая для чипов. Аромат (цвет) Forth, работающий на чипе, называется arrayForth.

3 голосов
/ 30 июня 2011

Существуют реализации Forth, которые работают на голом металле, которые ДЕЙСТВИТЕЛЬНО компилируют машинный код, и если вы проведете небольшое исследование, прежде чем начнете печатать, вы увидите, что на самом деле:

  1. Forthбыла личная система, используемая Чаком Муром с 1958 года
  2. Forth - это язык, компилятор и операционная система, интерактивный отладчик (где вы понимаете, что это «интерпретируется»)Система Forth, предназначенная as-Chuck, становится еще лучше, если учесть, что для всего этого МИРА нужны только 2 регистра, и ALU, и счетчик программ для запуска.Программирование на Forth совершенно отличается от того, из чего, вероятно, сделана ваша операционная система, и поэтому я думаю, что нужно действительно взглянуть на «голое железо» или даже на нативные (да, есть собственные процессоры стековых машин) Forths, прежде чем судить, что к чему.
  3. именно эти "голые" реализации Forth использовались десятилетиями и до сих пор широко используются во встроенных устройствах, где ваша настольная ОС, вероятно, никогда не выйдет.
2 голосов
/ 06 ноября 2011

Программирование Multicore Forth возможно с iForth.Существуют 32/64-битные реализации, которые работают в Win7, Linux и OS X. iForth генерирует собственный код: http://home.iae.nl/users/mhx/i4faq.html

2 голосов
/ 11 апреля 2011

По-видимому.Я не знаю много об этом, см. Многоядерные процессоры, программирование FORTH и взаимосвязь между программным обеспечением и кремнием (опубликовано 2008-09-24).

Вы хотите использовать «все преимущества» многоядерных процессоров.Оправдание для многоядерного программирования заключается в том, что вам нужна производительность (вы можете выполнять многопоточность только с одним процессором).

В этом случае я не думаю, что буду использовать Forth, так как это в основном интерпретатор (дадовольно быстрый).Хуже того, для современных процессоров каждая диспетчеризация слова Forth, являющаяся косвенным вызовом, скорее всего, является разрывом конвейера, который действительно снижает производительность процессора, и выполнение слова Forth работает с элементами стека, а не с регистрами.Таким образом, используя Forth, вы отказываетесь от вычислительных преимуществ по сравнению с C или C ++ или даже Fortran.Это означает, что вам почти гарантировано использование более одного процессора с Forth для соответствия производительности более традиционно кодированного и скомпилированного языка.Зачем начинать с недостатка?

Парни, которые хотят сделать MP с Python, озадачивают меня по той же причине.

...