Существует ли такая реализация Форта, которая позволяет в полной мере использовать преимущества многоядерных процессоров?
Многоядерный Форт, есть такой?
Ответы (4)
Недавно мне стало известно о colorForth, последнем изобретении г-на Мура (не совместимом с ANS), которое используется на его новые многоядерные чипы.
Он оснащен 144 небольшими четвертыми компьютерами на одном чипе (и без часов!) для высокой эффективности.
РЕДАКТИРОВАТЬ: На самом деле, colorForth - это IDE, используемая для чипов. Разновидность (цвета)Форта, работающего на чипе, называется arrayForth.
По всей видимости. Я мало что об этом знаю, см. Многоядерные процессоры, программирование FORTH и взаимосвязь между программное обеспечение и кремний (опубликовано 24 сентября 2008 г.).
Вы хотите использовать все преимущества многоядерных процессоров. Оправдание для многоядерного программирования заключается в том, что вам нужна производительность (вы можете выполнять многопоточность только с одним процессором).
В таком случае я бы не стал использовать Форт, так как это по сути интерпретатор (да, довольно быстрый). Хуже того, для современных процессоров каждая отправка слов на Форте, являющаяся косвенным вызовом, скорее всего, является разрывом конвейера, что действительно снижает производительность процессора, а выполнение слов на Форте работает с элементами стека, а не с регистрами. Таким образом, используя Forth, вы отказываетесь от вычислительного преимущества по сравнению с C, C++ или даже Fortran. Это означает, что вам почти гарантированно придется использовать более одного процессора с Forth, чтобы соответствовать производительности более традиционно кодируемого и компилируемого языка. Зачем начинать с недостатка?
Парни, которые хотят сделать MP с Python, меня озадачивают по той же причине.
Существуют реализации Forth, работающие на «голом железе», которые ДЕЙСТВИТЕЛЬНО компилируют машинный код, и если вы проведете небольшое исследование перед тем, как начать печатать, вы увидите, что на самом деле:
- Форт — это персональная система, которую Чак Мур использует с 1958 года.
- Форт — это язык, компилятор и операционная система, интерактивный отладчик (где вы получаете представление о том, что он «интерпретируется»), «голое железо», задуманное Чаком, система Форт становится еще лучше, если учесть, что весь этот МИР для работы требуется всего 2 регистра, АЛУ и счетчик команд. Программирование на Форте полностью отличается от того, из чего, вероятно, сделана ваша операционная система, и поэтому я думаю, что действительно следует взглянуть на «голое железо» или даже на родные (да, есть собственные процессоры стековых машин) Форты, прежде чем судить, что есть что.
- именно эти «голые» реализации Forth использовались в течение десятилетий и до сих пор широко используются во встроенных устройствах, где ваша настольная ОС, вероятно, никогда не должна быть.
Многоядерное программирование Forth возможно с iForth. Существуют 32/64-битные реализации, которые работают на Win7, Linux и OS X. iForth генерирует собственный код: http://home.iae.nl/users/mhx/i4faq.html