Forth и другие саморасширяющиеся системы программирования Locations of visitors to this page
Текущее время: Пт апр 19, 2024 21:26

...
Google Search
Forth-FAQ Spy Grafic

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




Начать новую тему Ответить на тему  [ Сообщений: 7 ] 
Автор Сообщение
 Заголовок сообщения: многопоточность в форте
СообщениеДобавлено: Чт июн 14, 2007 22:16 
на shootout.alioth.debian.org смотрел тесты по сравнению языков - сравнимым с erlang,oz по скорости работы с многопоточной программой оказался только forth. в этих тестах форт в 1.3 раза хуже. но я увеличил число потоков и форт стал даже выигрывать.
означает ли это, что потоки в форте(gforth, tasker.fs) - не системные, и действительно настолько "дешевы"? и если это так - применяется ли форт именно в параллельных вычислениях?


Вернуться к началу
  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Чт июн 14, 2007 22:42 
Не в сети

Зарегистрирован: Чт май 04, 2006 18:18
Сообщения: 456
Благодарил (а): 0 раз.
Поблагодарили: 1 раз.
Сам тест - http://shootout.alioth.debian.org/debia ... e&lang=all

В tasker.fs кооперативная многозадачность вроде. Т.е. в коде надо явно расставлять паузы (тогда идёт передача управления следующей задаче) - не очень удобно.
А вообще есть ли реализации "лёгких" потоков на форте? Такие чтобы требовали минимального обслуживания (не более чем CREATE и START)

_________________
http://forth.org.ru/~ygrek


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

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

на сколько я знаю gforth не самая быстрая форт-система. У нее заслуга только в портабельности.
Кстати и не самая интересная.


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

Зарегистрирован: Чт май 04, 2006 18:18
Сообщения: 456
Благодарил (а): 0 раз.
Поблагодарили: 1 раз.
Зато самая соответствующая требованиям shootout.

_________________
http://forth.org.ru/~ygrek


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

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

ага, на 19 месте в общем зачете


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

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


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

Зарегистрирован: Вт мар 20, 2007 23:39
Сообщения: 1261
Благодарил (а): 3 раз.
Поблагодарили: 19 раз.
Я вот думаю от пауз можно избавится так - для каждого потока создать очередь заданий, и менять в другом потоке эту очередь по мере выполнения этим потоком своей очереди. Ну например - у потока 1 очередь заданий по умолчанию такая: 1а,3а,1б,1в поток2 - 2а,4а,2б,2в а задания 1-4а 1-2б и 1-2в не зависят друг от друга. Когда один поток уже закончил работу над своей частью задания(1а), а другой поток все еще выполняет его(2а), то первый поток не ждет завершения работы с 2а второго потока, а сразу приступает к выполнению 1б задания, и как только второй поток закончит работу над заданием 2а, то первый перключится(точнее второй его переключит) на продолжение обработки задания 3а, а сам тем времнем начнет работу над следующим заданием 1в и так далее.

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


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

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


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

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


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

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