Перейти к содержимому
MeXaN1cK

Реальная "Многопоточность"!

Рекомендуемые сообщения

@@ivan52945, тут как я понимаю речь идет несколько о другой многозадачности.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Здесь просто многозадачность.

В принципе, можно использовать и так как @ivan52945 описал. Если наладить нормальное взаимодействие с подзадачами.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
Гость Kartze

Здесь просто многозадачность.

В принципе, можно использовать и так как @ivan52945 описал. Если наладить нормальное взаимодействие с подзадачами.

Кхм, так это немного не то, о чем мы изначально говорили. Тут у компов разные задачи, а мы вроде как о распараллеливании одной задачи.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Кхм, так это немного не то, о чем мы изначально говорили. Тут у компов разные задачи, а мы вроде как о распараллеливании одной задачи.

 

А какая принципиальная разница?

 

Я же уже ответил Квертику - мы не будем решать конкретных задач. Мы напишем либу, которая позволит организовать параллельное вычисление.

Мультипоточность.

 

Кто сказал, что потоки обязаны обрабатывать похожие задачи?  :lol:

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

 

 

Кто сказал, что потоки обязаны обрабатывать похожие задачи? 

Например, в доме у Васи стоит комп который отображает MineOS, а у Гендальфа тоже в доме комп и грузит он всеми любимую Redcontrol

А у Фродо есть комп который грузит OpenOS.

 

Что ж это выходит? Все эти компы являются частью мультипоточной системы??? Хотя они и не соединены между собой никак. По вашей логике это так?

Ведь при аналогичном примере:

 

 

За примером далеко ходить не буду, тот же реактор: один комп смотрит за реакторами , второй отрабатывает результаты , чтобы роботу было проще ходить и можно продолжить до бесконнчности

Компы просто работают и просто сообщаются между собой. Где тут вы многопоточность увидели?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Ну да. Просто кучка компьютеров, которые работают сами по себе, и решают каждый свою задачу.

Ты раскусил нашу идею. (Ещё можно было внимательно прочесть первые посты.)

 

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

соединённых вместе и готовых выполнять задачи.

 

Использовать эту штуку можно будет по разному.

- вычислять что-то параллельно, разбив задачу на части,

- запустить несколько разных задач одновременно,

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

и нагрузку по кластеру

 

Зачем стягивать себя рамками определений?  :D

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Прочитал все посты внимательно

 

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

 

Так же не забывайте, что если задача выполняется за t, то задача разделенная на 2 потока не будет выполняться за t/2. Максимальный коэффициент прироста производительности будет в районе 0,8-1,7, в зависимости от эффективности распараллеливания. 0,8 - это замедление, да, такое тоже есть

Использовать многопоточность для вычислений в майне бесполезно. Сервер запущен на 4 ядерном хосте, для мода выделяется 1 поток. Увеличивая дальнейшее количество потоков не увеличит скорости, но увеличит задержку.

 

С другой стороны распределять задачи между компами - идея хорошая. Но над этим нужно так же думать, чтобы максимально эффективно использовать ивентную базу openos

 

PS:

Говорю на основе опыта использования POSIX, CUDA, на языке Си в системах Linux/Unix/Windows

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

 

 

...
 

Вот сразу видно - толковый программист пришел и пояснил по теме =) 1ridav, если будут какие-либо решения по распараллеливанию задачи, то напиши пожалуйста, будем очень благодарны. 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

...

 

Я полностью с тобой согласен.

Только надо учесть ещё один момент. Компьютер в ОС не даёт использовать в полную мощь даже те фейковые "немногопоточные" потоки, которые он выделяет.

Ведь там есть ещё одно искусственное ограничение - на количество команд / тик для одного процессора.

 

Если же распределить задачу на два процессора, мы уменьшим этот кап вдвое.  :)

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Я полностью с тобой согласен.

Только надо учесть ещё один момент. Компьютер в ОС не даёт использовать в полную мощь даже те фейковые "немногопоточные" потоки, которые он выделяет.

Ведь там есть ещё одно искусственное ограничение - на количество команд / тик для одного процессора.

 

Если же распределить задачу на два процессора, мы уменьшим этот кап вдвое.  :)

Но есть ограничения по распараллеливанию. После определённого количества компов, они начнут выжирать все соки из сервера и будут только замедлять его работу. Или работу самих прог.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

 После определённого количества компов, они начнут выжирать все соки из сервера и будут только замедлять его работу.

 

Эта фраза абсолютно истинна, причём не только в рамках этой темы.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Есть еще проблема с самим назначением задачи, например: сервер послал задачу, ноды ее выполняют и тут... сервер отваливается, задача решается, но результата не будет.

Эта проблема очень замедляет развитие модов на основе дебаг-карты, ибо если что-то отвалилось, то надо ждать админа, когда он придет и включит, а потом админ выкидывает все к чертям и ставит какой-нибудь кривой плагин... или обещает шиш на постном масле.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

ну по поводу "выжимания соков из сервера" - это равносильно тому что у тебя будет много компов, лагодромом это трудно назвать, что кластер - что прочто куча работающих независимо компов - без разницы)

а сама идея интересная) я питался писать либу для подобного, но наткнулся на то, что между компами передавать инфу быстро не получится, как в ФС так и в сети есть задержки, но вот использовать их для совместного вывода на моник - это круто) уже проводил тесты)

Изменено пользователем ALeXeR

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в тему...

×   Вы вставили отформатированное содержимое.   Удалить форматирование

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отобразить как ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.


×
×
  • Создать...