Forth и другие саморасширяющиеся системы программирования Locations of visitors to this page
Текущее время: Вт апр 16, 2024 10:37

...
Google Search
Forth-FAQ Spy Grafic

Часовой пояс: UTC + 3 часа [ Летнее время ]




Начать новую тему Ответить на тему  [ Сообщений: 28 ]  На страницу Пред.  1, 2
Автор Сообщение
 Заголовок сообщения:
СообщениеДобавлено: Ср июл 08, 2009 22:31 
Не в сети
Administrator
Administrator
Аватара пользователя

Зарегистрирован: Вт май 02, 2006 13:19
Сообщения: 3565
Откуда: St.Petersburg
Благодарил (а): 4 раз.
Поблагодарили: 72 раз.
mOleg писал(а):
по поводу автоматического распаралеливания кода есть замечание. Дело в том, что Форт ведь никак не определяет, где работает слово, к примеру, я для форка сделал запуск задачи в виде ( [params] # xt --> ) START
то есть любое слово может быть запущено как задача. Но даже это по сути не обязательно, в Форте любое слово может выполняться где угодно!!!
это значить, что распределенные вычисления очень даже просто реализовать, имхо.


Формально, эти же слова к любому языку можно отнести. (если там поддержка сделана) Только виндовая многозадачность все же не является таковой реально...

А тут речь о том, чтобы прямо в железе можно было сделать запуск задач на нескольких процессорах.
Вот, когда можно будет написать
params # xt cpu# SТАРТ - все и встанет на свои места

_________________
С уважением, WingLion
Forth-CPU . RuF09WE
Мой Форт
Отсутствие бана это не заслуга юзера, а недоработка модератора (с)


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Ср июл 08, 2009 22:34 
Не в сети

Зарегистрирован: Вс июн 21, 2009 20:49
Сообщения: 111
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
mOleg писал(а):
любое слово может быть запущено как задача.

Только в случае если слово будет абсолютно реентабельным, то есть либо оно будет построено по принципам функционального программирования и вообще не будет иметь никаких посторонних эффектов (и даже локальные переменные хранить например на стеке), либо каким-то образом у каждого форка слова будет собственное состояние.
В принципе на Форте можно сделать и так и эдак, и каждый метод имеет свои преимущества и недостатки, но проблема как договориться чтобы это не был опять "каждому свой собственный стандарт".


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Ср июл 08, 2009 22:35 
Не в сети
Moderator
Moderator
Аватара пользователя

Зарегистрирован: Чт май 04, 2006 00:53
Сообщения: 5062
Откуда: был Крым, теперь Новосибирск
Благодарил (а): 23 раз.
Поблагодарили: 63 раз.
WingLion писал(а):
Формально, эти же слова к любому языку можно отнести. (если там поддержка сделана) Только виндовая многозадачность все же не является таковой реально...

но для некоторых языков более формально, а для некоторых более реально (Форт, Лисп, Смолтолк)

WingLion писал(а):
А тут речь о том, чтобы прямо в железе можно было сделать запуск задач на нескольких процессорах.
Вот, когда можно будет написать
params # xt cpu# SТАРТ - все и встанет на свои места

этими моментами можно еще и с помощью контекста управлять :)

_________________
Мне бы только мой крошечный вклад внести,
За короткую жизнь сплести
Хотя бы ниточку шёлка.
fleur


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Ср июл 08, 2009 23:45 
Не в сети
Moderator
Moderator
Аватара пользователя

Зарегистрирован: Чт май 04, 2006 00:53
Сообщения: 5062
Откуда: был Крым, теперь Новосибирск
Благодарил (а): 23 раз.
Поблагодарили: 63 раз.
simne писал(а):
Только в случае если слово будет абсолютно реентабельным

а это у Форта не отнять. Достаточно вам не пользоваться переменными, а решать все через стек. Ну и всякие мьютексы тоже не помешают.

simne писал(а):
В принципе на Форте можно сделать и так и эдак, и каждый метод имеет свои преимущества и недостатки, но проблема как договориться чтобы это не был опять "каждому свой собственный стандарт".

ну, не обязательно. Просто наиболее удачное решение переживет неудачные. Это вроде поиска в ширину :)

_________________
Мне бы только мой крошечный вклад внести,
За короткую жизнь сплести
Хотя бы ниточку шёлка.
fleur


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Чт июл 09, 2009 00:24 
Не в сети
Moderator
Moderator
Аватара пользователя

Зарегистрирован: Чт май 04, 2006 00:53
Сообщения: 5062
Откуда: был Крым, теперь Новосибирск
Благодарил (а): 23 раз.
Поблагодарили: 63 раз.
вобщем, явному параллелизму ничто не мешает. А то, что форт-код линеен по природе своей, и забегания ничего не дают, это же плюс - значит код менее избыточный :)

_________________
Мне бы только мой крошечный вклад внести,
За короткую жизнь сплести
Хотя бы ниточку шёлка.
fleur


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Чт июл 09, 2009 01:05 
Не в сети

Зарегистрирован: Вс июн 21, 2009 20:49
Сообщения: 111
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
Хищник писал(а):
simne писал(а):
Вот например возможен такой инструмент который будет принимать на вход не последовательность как решить задачу, а конкретно фразу означающую "сложить тысячу пар чисел"...называется декларативное программирование.

Только там нет гарантии, что делаться будет эффективно.


А нигде нет гарантии, поэтому нужен механизм который будет запоминать все решения и выделять самые эффективные.

Хищник писал(а):
..если каких-то данных пока нет, то невозможно создать схему, которая последовательные вычисления превратит в параллельные даже при отсутствии промежуточных результатов.

Суперскалярные процессоры являются такими схемами.
Пока нет данных они просто молотят вхолостую, и просто не выдают готовый результат пока не будут готовы все промежуточные результаты цепочки вычислений.


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Чт июл 09, 2009 14:48 
Не в сети
Administrator
Administrator
Аватара пользователя

Зарегистрирован: Вт май 02, 2006 22:48
Сообщения: 7960
Благодарил (а): 25 раз.
Поблагодарили: 144 раз.
simne писал(а):
А нигде нет гарантии, поэтому нужен механизм который будет запоминать все решения и выделять самые эффективные.

Даже если число вариантов представляет собой факториал или экспоненту от чего-нибудь немелкого?

simne писал(а):
Суперскалярные процессоры являются такими схемами.
Пока нет данных они просто молотят вхолостую, и просто не выдают готовый результат пока не будут готовы все промежуточные результаты цепочки вычислений.

От HDL до суперскаляра очень и очень далеко. HDL работают на более низком уровне, и способны описать не только суперскаляр, но и неконвейеризованный процессор, и даже вообще правильно соединенную, но бесполезную схему. Правильная точка приложения усилий в HDL - уровень регистровых передач (RTL, Register Transfer Level). На этом уровне можно прекрасно распараллелить вычисления, но никто не гарантирует, что разработчик правильно представляет себе принципы работы своей схемы и передает все промежуточные результаты вовремя и куда нужно.


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Сб июл 11, 2009 04:43 
Не в сети

Зарегистрирован: Пт фев 20, 2009 03:50
Сообщения: 20
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
"я..не думал.." - так вроде бы говорил Шульга инженеру Гарину.. :?
и я не думал - что самый что ни есть обычный вопрос породит целую тему :roll:
..и она сразу же успешно скатится в философию :cry:

Тема о параллельности - она вообще очень богата на "вечные мотивы". Самый заметный "мотив": наличие мультиядренной и мультипроцессорной среды, будто бы потребует какого-то особенного параллельного программирования, которое должно открыть почти мистические возможности ;)
Ага. "5 капель - переворот сознания" :) . Как будто мало тех переворотов, которые для маркетинга делает Макрософт раз в 2 года.
А на самом деле? Реклама "новой эры", пришедшей к нам вместе с CoreDuo 8)
Однако: при многопоточности обязаность шедулить все хозяйство - забота ядра ОС (макро- или микро- -- неважно), а никак не компилятора, и тем более программиста. И не надо заморачиваться количеством потоков - их в любом случае сильно больше, чем ядер. (Ну, если ядра не тысчами мерить;) ). И даже если многопоточность сильно не используем, то количества процессов (по 1 поток штучка) в любой ОСи вполне хватит для работы -надцати ядер (если, конечно, ОСь не клон МС-ДОС;) А спецеффекты с out-of-order по своей природе - вещь похожая на pinhole-оптимизацию. Со всеми вытекающими..

К сожалению, я от процессоростроения очень далеко:( - пришлось с гуглом пообщаться, чтобы узнать чего хотят от процессоров заокеанские Чамберлены и Навуходоносоры ;( А хотят они ILP (instruction level parallelism). Для CISC, похоже, это единственный вариант. Насчет RISC - трудно сказать.
Для интелообразных это значит несколько конвейеров длиной минимум 20 шагов каждый, плюс по несколько исполнительных устройств.
Где-то даже проскакивала мысль, что главный плюс "внеочередного выполнения" - это нахождение операндов, которые все еще
отсутствуют в регистрах, для их заблаговременного считывания (извините, линк не помню).

Навскидку - для мультяидерности выглядит выгоднее стек. Для ILP - у суперскаляра out-of-order и предикторы разные, для стека - разве что VLIW. А в сумме что?
Придется, наверно, вспомнить всенародно известные "мелочи", и баланс подбивать - стек против суперскаляра.

P.S. А квантовые компьютеры - это неактульно. Они где-то в будущем. А живем мы в настоящем;). Но главная причина другая: если б это было технически возможно сейчас, то Интел и/или АМД с их деньгами эти супер- гипер- уже бы выпускали. Гиганты частоты любят;)

P.P.S. Представляете себе 80186 на кварковой тяге? :)) Страшно? :shock: "..та ото ж бо й воно.."


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Сб июл 11, 2009 05:07 
Не в сети

Зарегистрирован: Вс июн 21, 2009 20:49
Сообщения: 111
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
izvr писал(а):
Навскидку - для мультяидерности выглядит выгоднее стек. Для ILP - у суперскаляра out-of-order и предикторы разные, для стека - разве что VLIW. А в сумме что?
Придется, наверно, вспомнить всенародно известные "мелочи", и баланс подбивать - стек против суперскаляра.

А нечего вспоминать. Понижать частоты никто не хочет, и упрощать особенно эти жутко сложные современные суперскаляры вобщем тоже, а технология уже не дает сильно расти, поэтому будут меряться (длиной) числом ядер, следовательно для увеличения производительности программы нужно делать многопотоково.

Еще плюс многопотоковости для нас, по сути потребителей, что работая многопотоково, мы не будем зависеть от конкретного поставщика гигагерцев, а сможем слепить систему из любых компонентов и таким образом сделать самое эффективное решение, для каждого конкретного случая.


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Вс июл 12, 2009 16:06 
Не в сети
Moderator
Moderator
Аватара пользователя

Зарегистрирован: Чт май 04, 2006 00:53
Сообщения: 5062
Откуда: был Крым, теперь Новосибирск
Благодарил (а): 23 раз.
Поблагодарили: 63 раз.
Гость писал(а):
Есть ли работы по распарралеливанию Java байт кода?

пардон, только заметил.
не знаю есть ли 8(

_________________
Мне бы только мой крошечный вклад внести,
За короткую жизнь сплести
Хотя бы ниточку шёлка.
fleur


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Пт июл 17, 2009 09:43 
Не в сети
Moderator
Moderator
Аватара пользователя

Зарегистрирован: Чт май 04, 2006 00:53
Сообщения: 5062
Откуда: был Крым, теперь Новосибирск
Благодарил (а): 23 раз.
Поблагодарили: 63 раз.
возвращаясь к теме обсуждения.
Форт код линеен, то есть в нем нет места для ловли "мелкого" параллелизма, хотя бы уже потому, что он очень близок к минимальному процессору или самому простому процессору.
Проще говоря, о каком распараллеливании может идти речь на всего 2х регистрах!
Только явный паралелизм может быть, то есть еще одно вычислительное ядро.
зато, на сколько оно получается проще!:
- не нужен КЭШ данных, так как его роль прекрасно выполняет стек,
- не особо нужен кэш команд, так как программы достаточно компактные (маленький размер команд)
- не нужно сложных конвееров, и всяких слишком мудрых распараллеливателей кода
- не нужно солжных компиляторов
- не нужно сложных систем охлаждения 8)))

_________________
Мне бы только мой крошечный вклад внести,
За короткую жизнь сплести
Хотя бы ниточку шёлка.
fleur


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Сб июл 18, 2009 18:13 
Не в сети

Зарегистрирован: Вс июн 21, 2009 20:49
Сообщения: 111
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
mOleg писал(а):
- не нужен КЭШ данных, так как его роль прекрасно выполняет стек,
- не особо нужен кэш команд, так как программы достаточно компактные (маленький размер команд)


Чем примитивнее команда (чем ниже уровень абстракции, на котором команда работает), тем больше нужно исполнить таких команд для выполнения того-же действия, и шитый код никак количество команд на транзакцию не уменьшает, а даже и несколько увеличивает - как минимум на команды связи.
Размер кэша команд действительно может быть меньше, тк код по сути скомпрессированный, но это с каждым днем все менее кого-то волнует, тк память растет быстрее чем пишется код.

А под кэшами данных вообще-то правильнее понимать в том числе и регистры процессора (ранее они так и назывались - "сверхоперативная память"), то есть да, Форт-подход минимизирует число регистров, но взамен более интенсивная работа со следующим уровнем.

mOleg писал(а):
- не нужно сложных конвееров, и всяких слишком мудрых распараллеливателей кода
- не нужно солжных компиляторов
- не нужно сложных систем охлаждения 8)))


Мда.. :(


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Сб июл 18, 2009 21:36 
Не в сети
Moderator
Moderator
Аватара пользователя

Зарегистрирован: Чт май 04, 2006 00:53
Сообщения: 5062
Откуда: был Крым, теперь Новосибирск
Благодарил (а): 23 раз.
Поблагодарили: 63 раз.
simne писал(а):
Чем примитивнее команда (чем ниже уровень абстракции, на котором команда работает), тем больше нужно исполнить таких команд для выполнения того-же действия, и шитый код никак количество команд на транзакцию не уменьшает, а даже и несколько увеличивает - как минимум на команды связи.

ну, во-первых, ФМ (форт-машина) не столь простые команды имеет на самом деле. И шитый код тут вообще никаким боком, точнее не так, ШК - это не уровень ФМ, а уровень ее симуляции, так что тут мимо.

simne писал(а):
Размер кэша команд действительно может быть меньше, тк код по сути скомпрессированный, но это с каждым днем все менее кого-то волнует, тк память растет быстрее чем пишется код.

это бред, уж извините за прямолинейность. Чем больше размер кода, тем выше трафик по шине команд\данных, тем медленнее работает проц.
Так как все сейчас борются за скорость исполнения, ни в коем случае нельзя сказать, что это никого не волнует. Так как сколько я помню историю PC память всегда была самым узким местом.

simne писал(а):
А под кэшами данных вообще-то правильнее понимать в том числе и регистры процессора (ранее они так и назывались - "сверхоперативная память"), то есть да, Форт-подход минимизирует число регистров, но взамен более интенсивная работа со следующим уровнем.

опять ничего не понятно. О каком следующем уровне речь.
А кэширование данных получается достаточно эффектнивное.

_________________
Мне бы только мой крошечный вклад внести,
За короткую жизнь сплести
Хотя бы ниточку шёлка.
fleur


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 28 ]  На страницу Пред.  1, 2

Часовой пояс: UTC + 3 часа [ Летнее время ]


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 6


Вы не можете начинать темы
Вы можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
phpBB сборка от FladeX // Русская поддержка phpBB