Технический форум по робототехнике.
hudvin » 25 май 2008, 16:20
Кто нибудь пытался писать "мозги" на функциональных языках ?
Хотелось бы узнать впечатления...
EdGull » 25 май 2008, 16:46
что имеется ввиду под такими языками?
hudvin » 25 май 2008, 16:59
Языки типа Scala/Erlang/др.
Основая штука, которая меня заинтересовала в них - модель потоков.
В двух словах, в обычных языках (Java/C++/C#) на одной машине можно запустить порядка тысяч-десятков тысяч потоков (если повезет), в вышеуказанных языках можно запускать до 1-20млн потоков на процессор. Каждый процесс является автономным и может обмениваться данными с другими потоками посредством сообщений.
У меня есть мысль попробовать использовать эту особенность для моделирования нейросетей большой сложности.
EdGull » 25 май 2008, 19:23
ну тогда, перемещу пока сюда, не место этой теме в проектах.
но что-то мне подсказывает, что очень скоро тема в ад переет...
=DeaD= » 26 май 2008, 08:43
Нейросети потоками??? А смысл?
hudvin » 26 май 2008, 09:55
Смысл не совсем в потоках, а в том, что каждая ячейка будет функционировать независимо от других вез всяких программных извращений. Мы будем иметь нек. кусок кода, который будет хранить свое состояние, уровни входа/выхода и др.
EdGull » 26 май 2008, 12:17
каждая ячейка будет функционировать независимо от других вез всяких программных извращений
прошу прощщения, а на каких процессорах это будет всё выполняться?
Виталий » 26 май 2008, 12:59
Это не имеет никакого практического смысла параллелить работу нейронов...
Время на переключение задач будет превосходить время расчета.
hudvin » 26 май 2008, 13:07
не будет ! - в этом-то и фича ФП
эти технологии используются на биржак и в телекоме, на том же Erlange реализованы мощнейшие серверные приложение
Digit » 26 май 2008, 13:35
hudvin, и каким же волшебным образом реализуется переключение 20млн потоков на одном ядре так, что затраты ресурсов на поддержание многопоточности, а также время на их переключение пренебрежимо малы по сравнению с временем расчета сигмоидной функции в нейроне?
hudvin писал(а):на том же Erlange реализованы мощнейшие серверные приложение
А на каких машинах работают эти мощнейшие серверные приложения?
Добавлено спустя 5 минут 9 секунд:Вообще, многопоточность в некоторых сферах действительно настолько облегчает написание программы, разработку алгоритмов и оптимизацию процесса функционирования сложных систем, что аппаратные затраты на поддержание многопоточности представляются вполне адекватной платой.
Но есть задачи, в которых многопоточность только все усложняет. Вот в частности нейросети как раз из их числа.
hudvin » 26 май 2008, 14:02
Тем, что в ФП нет таких понятий как блорировка, синхронизация и тому подобное + собственный шедулер + ленивые вычисления + много чего еще... Двадцать миллионов может и не потянет, а вот около 5 млн на обычном ПК - запросто.
====
На обычном
. Jabber сервер ejabberd держит на порядок больше подключений, чем его аналоги на яве. С железом я, пожалуй не совсем правильно выразился. Скажем так, приложения на ФП успешно функционируют на таких нагрузках, на которых обычные приложения в принципе не могут работать.
Добавлено спустя 3 минуты 40 секунд:Единственный обмен механизма данными между потоками - сообщения.
EdGull » 26 май 2008, 14:56
а преключение между задачами за счет каких аппаратных ресурсов происходит?
вроде все нынешние процы исключительно последовательные
hudvin » 26 май 2008, 15:34
Я же сказал, это есть особенность ФП.
Потоки Эрланга инкапсулируются в небольшое количество потоков ОС.
Создание нового потока Erlang в плане ресурсов не дороже вызова обычной функции
EdGull » 26 май 2008, 16:18
а как можно 5 млн. потоков ФП преобразовать в "небольшое количество потоков ОС"?
Vooon » 26 май 2008, 20:38
жаль что пока нет стабильных свободных операционок с микроядром...