roboforum.ru

Технический форум по робототехнике.

Использование функциональных языков

Использование функциональных языков

hudvin » 25 май 2008, 16:20

Кто нибудь пытался писать "мозги" на функциональных языках ?
Хотелось бы узнать впечатления...

Re: Использование функциональных языков

EdGull » 25 май 2008, 16:46

что имеется ввиду под такими языками?

Re: Использование функциональных языков

hudvin » 25 май 2008, 16:59

Языки типа Scala/Erlang/др.
Основая штука, которая меня заинтересовала в них - модель потоков.
В двух словах, в обычных языках (Java/C++/C#) на одной машине можно запустить порядка тысяч-десятков тысяч потоков (если повезет), в вышеуказанных языках можно запускать до 1-20млн потоков на процессор. Каждый процесс является автономным и может обмениваться данными с другими потоками посредством сообщений.
У меня есть мысль попробовать использовать эту особенность для моделирования нейросетей большой сложности.

Re: Использование функциональных языков

EdGull » 25 май 2008, 19:23

ну тогда, перемещу пока сюда, не место этой теме в проектах.
но что-то мне подсказывает, что очень скоро тема в ад переет...

Re: Использование функциональных языков

=DeaD= » 26 май 2008, 08:43

Нейросети потоками??? А смысл?

Re: Использование функциональных языков

hudvin » 26 май 2008, 09:55

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

Re: Использование функциональных языков

EdGull » 26 май 2008, 12:17

каждая ячейка будет функционировать независимо от других вез всяких программных извращений

прошу прощщения, а на каких процессорах это будет всё выполняться?

Re: Использование функциональных языков

Виталий » 26 май 2008, 12:59

Это не имеет никакого практического смысла параллелить работу нейронов...
Время на переключение задач будет превосходить время расчета.

Re: Использование функциональных языков

hudvin » 26 май 2008, 13:07

не будет ! - в этом-то и фича ФП
эти технологии используются на биржак и в телекоме, на том же Erlange реализованы мощнейшие серверные приложение

Re: Использование функциональных языков

Digit » 26 май 2008, 13:35

hudvin, и каким же волшебным образом реализуется переключение 20млн потоков на одном ядре так, что затраты ресурсов на поддержание многопоточности, а также время на их переключение пренебрежимо малы по сравнению с временем расчета сигмоидной функции в нейроне?

hudvin писал(а):на том же Erlange реализованы мощнейшие серверные приложение

А на каких машинах работают эти мощнейшие серверные приложения?

Добавлено спустя 5 минут 9 секунд:
Вообще, многопоточность в некоторых сферах действительно настолько облегчает написание программы, разработку алгоритмов и оптимизацию процесса функционирования сложных систем, что аппаратные затраты на поддержание многопоточности представляются вполне адекватной платой.
Но есть задачи, в которых многопоточность только все усложняет. Вот в частности нейросети как раз из их числа.

Re: Использование функциональных языков

hudvin » 26 май 2008, 14:02

Тем, что в ФП нет таких понятий как блорировка, синхронизация и тому подобное + собственный шедулер + ленивые вычисления + много чего еще... Двадцать миллионов может и не потянет, а вот около 5 млн на обычном ПК - запросто.

====

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

Добавлено спустя 3 минуты 40 секунд:
Единственный обмен механизма данными между потоками - сообщения.

Re: Использование функциональных языков

EdGull » 26 май 2008, 14:56

а преключение между задачами за счет каких аппаратных ресурсов происходит?
вроде все нынешние процы исключительно последовательные

Re: Использование функциональных языков

hudvin » 26 май 2008, 15:34

Я же сказал, это есть особенность ФП.
Потоки Эрланга инкапсулируются в небольшое количество потоков ОС.
Создание нового потока Erlang в плане ресурсов не дороже вызова обычной функции

Re: Использование функциональных языков

EdGull » 26 май 2008, 16:18

а как можно 5 млн. потоков ФП преобразовать в "небольшое количество потоков ОС"?

Re: Использование функциональных языков

Vooon » 26 май 2008, 20:38

жаль что пока нет стабильных свободных операционок с микроядром...


Rambler\'s Top100 Mail.ru counter