Forth и другие саморасширяющиеся системы программирования Locations of visitors to this page
Текущее время: Чт мар 28, 2024 20:27

...
Google Search
Forth-FAQ Spy Grafic

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




Начать новую тему Ответить на тему  [ Сообщений: 22 ]  На страницу 1, 2  След.
Автор Сообщение
 Заголовок сообщения: Форт и различные виды параллелизма
СообщениеДобавлено: Вт янв 19, 2010 11:25 
Не в сети
Moderator
Moderator
Аватара пользователя

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

danbst писал(а):
вопрос писал(а):
Одна из тенденций, о которой было несколько раз упомянуто вскользь - это выделение в "многопроцессных" системах специализации процессов. Уделение бОльшего внимания тому, что разные процессы могут различаться количеством данных и способом их использования.

Да, об этом Sun давно уже говорила.

Так может, настало время сделать Форт изменяющимся под задачи? (как это сделать - не знаю)


Форт сам изменяется под задачи - это его свойство, хотя есть попытки его этого свойства лишить.

Теперь о видах параллелизма.
ничто не мешает потоку слов исполняться в разных потоках(на разных процессорах)
к примеру имеем следующий текст:

10 20 Рука повернуть кисть сжать

поток команд может выполняться как последовательно на одном процессоре так и на нескольких параллельно.
единственно, должен существовать механизм передачи данных между потоками и заранее обговорен механизм синхронизации действий. То есть, говоря простым языком, дожно ли быть ожидание после передачи управления на слово "кисть" или нет.
Похожее решение уже есть в форке в отношении многопоточности. А именно, любое слово можно запустить с привычными ему параметрами без создания каких бы то ни было лишних слов, достаточно просто написать: ( xn .. x1 # --> ) ['] name START
и все перечисленные параметры xn .. x1 в количестве # штук будут переданы в стек данных нового потока, порожденного словом START, а слово START запустит в новом потоке слово name после переноса параметров со стека данных запускающего потока.
В данном случае поток запускается явно, хотя это совсем не обязательно! Поток может запускаться и косвенно, достаточно написать что-то типа:
: sample ( ?? ) ['] ToDo START ;
тогда выполнение слова sample будет автоматически всегда создавать отдельный поток.

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

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


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Вт янв 19, 2010 11:48 
Не в сети
Moderator
Moderator
Аватара пользователя

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

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

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


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

Зарегистрирован: Пн ноя 23, 2009 16:12
Сообщения: 64
Откуда: Київ, Івано-Франківськ
Благодарил (а): 1 раз.
Поблагодарили: 0 раз.
В моем понимании, изменяемость под задачи - это изменяемость в семантике и в базовых элементах так, чтобы задачу было удобно решать. Но да, это оффтоп.

хотел привести ссылку на недавно появившийся язык, основаный на паралеллизме потоков.
http://code.google.com/p/anic/ (лучше сразу приступать к туториалам, чтобы понять что это)


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

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

можно тут обсуждать, в отдельную тему выделить не сложно.
Я не совсем понял, о какой изменяемости речь, можно подробнее?

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


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

Зарегистрирован: Пн ноя 23, 2009 16:12
Сообщения: 64
Откуда: Київ, Івано-Франківськ
Благодарил (а): 1 раз.
Поблагодарили: 0 раз.
Цитата:
Я не совсем понял, о какой изменяемости речь, можно подробнее?

нуу... лучше я еще годик эту идею обдумаю, и только потом выложу на общее рассмотрение =)


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Вт янв 19, 2010 19:54 
Не в сети
Administrator
Administrator
Аватара пользователя

Зарегистрирован: Вт май 02, 2006 13:19
Сообщения: 3565
Откуда: St.Petersburg
Благодарил (а): 4 раз.
Поблагодарили: 72 раз.
На счет паралелизма рассмотрим takoj вариант.

Итак, берем программу в некоем "представлении"

Код:
параметр11 @ параметр12 @ действие1-с-параметрами результат1 !

параметр21 @ параметр22 @ действие2-с-параметрами результат2 !

параметр31 @ параметр32 @ действие3-с-параметрами результат3 !

параметр41 @ параметр42 @ действие4-с-параметрами результат4 !


<dd>И пусть есть устройство со множеством параллельных "деятелей" (процессоров), которые выполняют эти самые действия.

<dd>И есть "Главный Процессор"

Главный Процессор делает следующее:

1. Разбираeт программу, инициируeт непосредственные параметры для нужных действий и запускает "деятеля" с соответствующим заданным ему действием.

<dd>"деятель" (а он сам по себе отдельный процессор с программой или конкретным действием) должен дожидаться, пока его параметры
не будут инициированы, делать то, что ему задано и инициировать результат.

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

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

Если Главный процессор не справляется с выдачей заданий, он должен "нанять субподрядчика", зарядить некоего "деятеля" (а, возможно, и не одного) на выполнение своей работы и только успевать подкидывать ему работу.

p.s. Полагаю, сей велосипед (тип параллелеизма) имеет некое официальное название, и надо бы его выяснить.

И реализовать сие на Форте, наверняка вполне реально.

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


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Форт и различные виды параллелизма
СообщениеДобавлено: Вт янв 19, 2010 20:53 
Не в сети
Moderator
Moderator

Зарегистрирован: Ср май 10, 2006 15:37
Сообщения: 1132
Откуда: Chelyabinsk ( Ural)
Благодарил (а): 0 раз.
Поблагодарили: 9 раз.
mOleg писал(а):

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


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

P.S. Сама задача должна подсказывать можно ли её парралелить:)
( например: разные оптимизационные схемы и решения )


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

Зарегистрирован: Вт мар 20, 2007 23:39
Сообщения: 1261
Благодарил (а): 3 раз.
Поблагодарили: 19 раз.
В данном случае массив "деятелей" является некой системой, имеющей вход(входы) и выход(выходы), а "центральный процессор" является системой управления, которая собственно и занимается управлением. Например такая архитектура реализована в чипе Cell, что ставится в PS3: у него 8 основных вычислительных ядер и одно дополнительное управляющее.

_________________
Cтоимость сопровождения программного обеспечения пропорциональна квадрату творческих способностей программиста.
Роберт Д. Блисc


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

Зарегистрирован: Чт июн 25, 2009 11:12
Сообщения: 412
Благодарил (а): 41 раз.
Поблагодарили: 8 раз.
WingLion писал(а):
p.s. Полагаю, сей велосипед (тип параллелеизма) имеет некое официальное название, и надо бы его выяснить.

И реализовать сие на Форте, наверняка вполне реально.


http://en.wikipedia.org/wiki/Dataflow_architecture
http://burcom.ru/DF_obzor_1.html -- неплохой обзор
к форту, впрочем, не относится


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Ср янв 20, 2010 19:45 
Не в сети
Moderator
Moderator

Зарегистрирован: Ср май 10, 2006 15:37
Сообщения: 1132
Откуда: Chelyabinsk ( Ural)
Благодарил (а): 0 раз.
Поблагодарили: 9 раз.
CAMEL Laboratory занимается исследованиями в области теории и применения клеточных автоматов...

P.S. У них, в частности, можно скачать книгу
Тоффоли Т., Марголус Н. Машины клеточных автоматов. М.: Мир. 1991.
( соприкасается с фортом машина клеточных автоматов CAM8 )


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

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

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


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Ср янв 20, 2010 20:10 
Не в сети
Administrator
Administrator
Аватара пользователя

Зарегистрирован: Вт май 02, 2006 13:19
Сообщения: 3565
Откуда: St.Petersburg
Благодарил (а): 4 раз.
Поблагодарили: 72 раз.
mOleg писал(а):
кстати, когда-то у меня была программка на Форте писанная, в которой пояснялась работа с клеточными автоматами. Писана она была под ДОС. Были там и "игра жизни" и другие "фильтры". Только вот когда-то потерялось где-то. Может у кого есть?

у меня такая штука где-то на асме валяется...

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


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

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

это был не асм. Это была лабораторная работа или что-то вроде того.
То есть была оболочка с примерами, описаниями, редактором. И фильтров было много, не только "game of life"
Увы, совсем не помню ни автора, ни названия программы 8( а штука была занятная

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


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Ср янв 20, 2010 20:27 
Не в сети
Administrator
Administrator
Аватара пользователя

Зарегистрирован: Вт май 02, 2006 13:19
Сообщения: 3565
Откуда: St.Petersburg
Благодарил (а): 4 раз.
Поблагодарили: 72 раз.
Цитата:
это был не асм.

хм... я же не про Фому!
а про Ерему: http://fforum.winglion.ru/att/life.zip (2.6kb)

в зипе асм-исходник и com-файл, который под win-XP у меня запустился и заработал,
но в конце подвесил все, и комп только ресетом вернулся в нормальный режим

п.с. писал сам, году где-то в 94-м...

начальная фигура и правила задаются db-шками недалеко от начала исходника

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


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

Зарегистрирован: Вт май 09, 2006 12:31
Сообщения: 3438
Благодарил (а): 5 раз.
Поблагодарили: 16 раз.
mOleg писал(а):
кстати, когда-то у меня была программка на Форте писанная, в которой пояснялась работа с клеточными автоматами. Писана она была под ДОС. Были там и "игра жизни" и другие "фильтры". Только вот когда-то потерялось где-то. Может у кого есть?

У меня было что-то такое на JavaScript, только ничего не пояснялось


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

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


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

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


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

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