Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Программное обеспечение под *NIX системы > MOSIX расширение, как оно реализовано ?


Автор: En_t_end 17.3.2007, 14:39
Меня интересует архитектура расширения ядра MOSIX под кластер.
Конкретно, как абстрактно(хотя бы так) реализованно мигрирование. Интересует вопрос выполнения некого ПО.
Пусть у нас есть ПО 'X'.
В 'X' создаются дочернии процессы, которые автоматически распределяются по узлам кластера.
Вопросы:
1. Само 'X', как исполняемый файл раскопируется в память каждого исполняющего его узла кластера ? если нет, то как это работает.
2. Как обстоит дело с системными прерываниями,с портами ? С устройствами i/o ?


Автор: bilbobagginz 18.3.2007, 01:25
дело в том, что миграция процессов  - это целая тема, в ней есть много, включая то, что ты указал и больше. если ты с ней не знаком, не продолжай ковырять - познакомься.
потом возникает тема распределенных систем, а точнее распределенной памяти, распределенных вычислений и групповой коммуникации/синхронизации.
Это тоже ... темы довольно обширные.

синтезом этих тем и является мозикс. Есть открытый проект "OpenMosix", вроде бы код у них можно скачать и почитать.

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

вопрос такой, то ПО 'X' - это ваше написанное вами ПО, или какая-то известная система обработки очередей ?

Автор: En_t_end 18.3.2007, 08:51
bilbobagginz, 
Цитата(bilbobagginz @  18.3.2007,  05:25 Найти цитируемый пост)
вопрос такой, то ПО 'X' - это ваше написанное вами ПО, или какая-то известная система обработки очередей ?

Нет это именно набор исполняемых файлов.

Автор: bilbobagginz 18.3.2007, 14:47
если я вас правильно понял, то вы занимаетесь фигней.
есть готовые среды распределенных запусков, т.н. "очередей" запуска.
чем умнее система запуска, тем сложнее программы, которые она может запускать.

если говорить грубым примером, есть напр. какой-то енкодер мп3, которому нужно закодить 30000 файлов. можно это сделать с помощью последовательного запуска на одном компутере, а можно каким-то образом раскидать эти запуски на 200-300 компьютеров, и ессно время кодирования сократится в 180-290 раз.

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

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

может раскроешь неизвестность ? а то так и не помочь тебе...

можно в ПМ.

удачи.

Автор: En_t_end 18.3.2007, 20:49
bilbobagginz,
Задач несколько. Я же специально написал приложение 'X' понимая под ним любое многопоточное приложение. Я хочу просто почувстовать настоящую многопоточность.
Как, я понимаю, из вашего поста следует, что собрать кластер для решения большинства разнородных проблем не получится ? 

Следует использовать несколько технологий ? Или всё же есть так называемые системы запуска, способные подстраиваться под разного рода задач самостоятельно ?

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)