Totoro
Гуру-
Публикации
1 950 -
Зарегистрирован
-
Посещение
-
Победитель дней
289
Тип публикации
Блоги
Профили
Форум
Багтрекер
Магазин
Все публикации пользователя Totoro
-
Давай для начала определим, что такое сложная задача. При решении любой сложной задачи, первое, что делает человек - это разбивает её на множество простых задач. В этом практически основа программирования. Любой серьезный алгоритм нахождения чего-нибудь нужного в итоге сведётся к тому, что компьютер будет делать 1+1, или 0+1, или 0+0. Теперь по поводу задачи. В рамках этой темы, мы не собираемся решать никаких задач, за исключением задачи организации распределённых вычислений. Твоя задача интересна, и ты можешь создать математический топик, где все неравнодушные к математике могут попробовать её решить. Но здесь это оффтоп.
-
Вчера делали наброски в Кобре, но кто-то увел исходники. @ivan52945 сделал нам бекап (http://pastebin.com/8HLqrPNa) за что ему спасибо Чтобы придать этому делу основательности, я зафигачил репозиторий на Github: https://github.com/cc-ru/cluster Там набросок ридмишки, лицензия и файлик с инструкциями для тех, кто захочет присоединиться (contributing). Говорите ваши акки на Github, всех подключу. Отдельные фичи пилим в отдельных ветках, чтобы не ломать ветку master, которая долна оставаться рабочей. Я вот хз что ты пытаешься доказать. Что многопоточность в принципе ненужная штука? Тебя не смущает, что операционная система в которой ты работаешь, сейчас поддерживает десятки активных потоков, которые обеспечивают тебе комфортную работу?
-
Главное, чтобы это были каждый раз новые грабли
- 7 ответов
-
- сохранение картинок
- Рисовалка
- (и ещё 1 )
-
WUT? Какая ОС, Серёга, ты о чём? Официальная дока говорит, что не в одном, а в нескольких. OpenComputers uses a fixed number of low-priority threads for coroutines to cause as little delay on the server tick as possible
-
Под Android можно в принципе прямо на Java написать, чтобы не извращаться.
-
А хрен его знает. Надо придумать. Можно читать что-то с интернета в несколько потоков. Можно просчитывать буфферы для 3D графики. Можно мониторить табуны дронов. Что касается BOINC - лучше подключи свой домашний комп. Нет смысла отдавать процессорные ресурсы нашего серва, да ещё таким хитровывернутым способом.
-
Очевидно что нереально разбить на потоки алгоритм, который разбить на потоки нереально. Но это проблема юзера. Я не говорю, что либа будет панацеей. Либа будет решать те задачи, какие потребуется выполнить пользователю. Не важно, детские или нет.
-
Не через Hel. Не кошерно.
-
Я думаю вопрос разделения задачи на составные части нас вообще не должен волновать. Мы - чисто исполнители. Юзер сам думает, как ему разделить задачу. Например юзеру надо перемножить числа от 1 до 400. (Это не слишком сложная задача, но для примера сойдёт.) Он может юзать нашу либу так (псевдокод): -- подключаем либы local event = require('event') local cluster = require('supercomputer') -- инициализируем кластер cluster.init() -- тут генерим строки-программки, для нашей задачи function step(x) return "local n = " .. tostring(x) .. "; for i = n, n+100 do n = n * i end; return n" end -- задаём кластеру несколько параллельных задач cluster.setup("process1", step(1)) cluster.setup("process2", step(101)) cluster.setup("process3", step(201)) cluster.setup("process4", step(301)) -- запускаем на выполнение cluster.run() -- сюда будем складывать результаты local result = 1 while true do -- слушаем эвенты от кластера local name, address, action, x = event.pull('cluster') if name == 'cluster' then -- если получили очередное вычисленное значение - добавляем к результату if action == 'result' then result = result * x -- если все "процессы" закончили работу - сворачиваемся else if action = 'done' then break end end end -- сбрасываем все задачи кластера, или "гасим" его или ещё что-то cluster.reset() -- выводим результат print("Произведение чисел от 1 до 400 = " + result) Тут мы раздали задачи кластеру, запустили, собрали ответы и получили результат. Вычисление заняло в 4 раза меньше времени (потенциально), чем если бы мы считали на одном процессоре. Разумеется для мелких задач результат будет почти не заметен. Но на достаточно сложных вычислениях он должен проявляться сильнее. Здесь программа очень проста. Нет отображениия промежуточных этапов и т.п. Но идею иллюстрирует.
-
Ну это не флуд, а дельная идея. Я вот предлагал Лёхе попробовать рендер 3D графики распределить через кластер. Но в любом случае, сначала надо спроектировать библиотеку. Для прикола. Это крутая идея, и будет прикольно её увидеть работающей.
-
Я как соавтор идеи поддерживаю её и может даже поучаствую в разработке. Основная идея пока такова: Делаем всё просто. Как с Zn. Реализуем небольшую либу для распределённых вычислений. Этакий Supercomputer API. Его задача будет - собрать компьютеры-ноды в один кластер - получать от юзера фрагменты задачи (самое простое в виде строки-кода) - распределять между свободными нодами кластера - получать результаты от нод, которые завершили вычисление - мерджить результат (по алгоритму предоставленному юзером) либо организовывать общение с нодами кластера в реальном времени Самый главный плюс всей идеи - реальная многопоточность. Все вычисления будут происходить параллельно, в реальном времени на разных компьютерах кластера. Наша задача - придумать максимально простую и удобную в использовании библиотеку под это дело.
-
ивент Unreal Tournament: Resurrection -- Этап #2
Totoro ответил в тему Fingercomp в Ивенты и конкурсы
Хоть на этот раз кто-то запишет нормальное видео.- 123 ответа
-
- opencomputers
- robot
- (и ещё 2 )
-
ивент Unreal Tournament: Resurrection -- Этап #2
Totoro ответил в тему Fingercomp в Ивенты и конкурсы
Ну там половина участников накатала программы за 5 минут до эвента =) Вот мы как раз сейчас тестим сборку, и выясняем баги. Большую часть выловим к эвенту и правила согласуем и устаканим. А остальные баги будут нам fun создавать на эвенте. Это часть запланированного веселья.- 123 ответа
-
- opencomputers
- robot
- (и ещё 2 )
-
ивент Unreal Tournament: Resurrection -- Этап #2
Totoro ответил в тему Fingercomp в Ивенты и конкурсы
А я вот больше люблю Debian Testing. (Во всяком случае - для домашнего компьютера)- 123 ответа
-
- opencomputers
- robot
- (и ещё 2 )
-
Он не предназначен для Android.
-
Какой сакральный смысл в этой теме? Топикстартер, ты чего от нас хочешь? Чтобы мы написали такую библиотеку за тебя? Так написали уже, даже не одну. Ищи на форуме.
-
ивент Unreal Tournament: Resurrection -- Этап #2
Totoro ответил в тему Fingercomp в Ивенты и конкурсы
"...Пещера уже хорошо изведана, все стены знакомы, можно в темноте ходить и ни разу лбом не удариться. Есть штуки которые можно ТОЛЬКО в пещерах делать, например орать и слышать эхо. 20-30% всех моих занятий связано с пещерой, либо планируется под пещеру (например парное орание песен под пещерное эхо). Выходит - пещера самое популярное и интересное место. Выходить из пещеры - равноценно брать кота в мешке. Какие там только неприятности не ждут. Голуби, срущие на головы - это только начало, помяните моё слово. Но ладно, раз решили выйти - ваше дело..." :P Какой смысл смотреть на эти механики? Активная фаза эвента будет 2-3 часа. За это время некоторые даже не поймут на какой версии Майна они сейчас находятся. Подготовительная фаза, когда участники пишут софт будет как раз месяц-два. За это время участники познакомятся с особенностями и выловят все неожиданности (если конечно не отложат всё на последний день =)). Сам эвент рассчитан на всех, кто осмелится заявить себя в участники. Остальные могут смело присоединяться как зрители. Прошлый этап эвента собрал 4 участников и около 20 зрителей.- 123 ответа
-
- 2
-
-
- opencomputers
- robot
- (и ещё 2 )
-
ивент Unreal Tournament: Resurrection -- Этап #2
Totoro ответил в тему Fingercomp в Ивенты и конкурсы
Жизнь это движение! Спроси у наших предков, какой был толк выходить из пещер. :P- 123 ответа
-
- 1
-
-
- opencomputers
- robot
- (и ещё 2 )
-
Цвет хранится в числе типа number. Значение может быть любым. Но визуально оно сведётся к одному из цветов таблицы.
-
Да, и печеньками этими можно кормить брота =) Для этого надо написать в чат команду .cookie.
-
ивент Unreal Tournament: Resurrection -- Этап #2
Totoro ответил в тему Fingercomp в Ивенты и конкурсы
Если кто-то хочет моего мнения (я его уже высказывал, к слову), оно совпадает с мнениями предыдущих ораторов. Это конкурс для программистов. Можно сделать бои игроков через "робо-аватаров". Можно сделать стратегический замес я-ля Supreme Commander изспользуя роботов как юниты. Это всё замечательные идеи для ивентов. Но их лучше обсуждать в отдельной теме. Вот прямо создавайте тему, описывайте идею, создавайте карту, пишите софт. Никто не мешает, а я даже лайк поставлю.- 123 ответа
-
- 2
-
-
- opencomputers
- robot
- (и ещё 2 )
