Debian на многопроцессорной системе

Автор Impuls, 09 ноября 2011, 23:21:57

« назад - далее »

0 Пользователи и 1 гость просматривают эту тему.

Angel_ok

#15
Цитата: Impuls от 10 ноября 2011, 17:52:37
Главное как система их видит. Если ОС видит 4 процессора, значит такую архитектуру реализовать возможно впринципе.
Походу она не видит 4 процессора, а показывает пользователю 4 процессора.
А видит она все правильно.
Вы думаете, всё так просто? Да, всё просто. Но совсем не так...
                                                                                                          Альберт Эйнштейн

Tr@sH

Impuls, чувак, по-твоему система настолько недоразвита, что запускает все задачи на одном ядре? Мб ты всёж взглянешь хоть раз на любой график загрузки, отображающий каждое ядро по-отдельности? И вообще что ты собрался пускать на "ядре для системы" ? Ты где-то в списке процессов видел Linux? Или одно ядро тупо выкинуть, потому что его загрузка будет ~0? Да и о каком суперкомпьютере ты говоришь? 4 ядра? Спс, поржал. В общем всё что могли придумать для работы на нескольких процессорах уже придумали до тебя, сиди и не парь мозг.

Impuls

Цитата: SeHELLioN от 10 ноября 2011, 19:52:01
Cори, да, информация ОЧЕНЬ стара, но если вернуться к теме
Цитироватьреализовать токогда на одном процессоре стоит ОС, а на всех остальных запускаются пользовательские задачи.как это может сказаться на производительности системы?
Давайте разбираться...
1)а будет ли грузить ли система целиком и полностью одно предоставленное её ядро?
2)1 ядро занято и неприкосновенно и пользовательскому процессу достается уже не 4 ядра, а 3, т.е. производительность должна бы упасть
но здесь стоит оговорится, что возможно уменьшение проблем с когерентностью кэш-памяти...но даст ли это эффект, и каков проигрыш...ведь и нагрузка тогда на эти ядра ляжет бОльшая
1. Ну суперкомпьютеры так и делают. Один процессор отдается чисто под ОС, а все остальные управляются ей и отдаются под вычислительные задачи.
2. Стоит еще учитывать тот факт, что на данный момент ОС, выполняясь на всех ядрах, грузит их равномерно, а, следовательно, и время выполнения задачи на данном ядре будет делиться между осью и задачей. Конечно эти задержки минимальны, но всеже:
4 ядра по 6% - 1 ядро 24 - 35 % (налицо недозагрузка ядра. Возможно тут мой касяк и загрузка увеличится не линейно). На каждом из ядер освобождается по 6% и, в теории, если процесс грузил ЦП на 100% - ему доп. 6% тоже в радость...
С другой стороны есть один подводный камешек: Если ОС грузила ядра равномерно - значит она параллелиа свои задачи, а теперь они выполняются последовательно. Возможно ухудшение работы ОС (это тоже нужно проверять).
Становится вопрос тестирования. Нужно придумать какие-то адекватные тесты. Наверное лучше всего проводить эксперименты в ВМ, и смотреть статистику.

Tr@sH

Пеши есчо! ;D ;D ;D
Запусти хотяб рендер в блендере чего-то большего чем кубик или компиляцию в >=4 потока  ;D
И да, открою тебе тайну, задачи ОС называются процессами! ;D

Impuls

#19
ЦитироватьImpuls, чувак, по-твоему система настолько недоразвита, что запускает все задачи на одном ядре? Мб ты всёж взглянешь хоть раз на любой график загрузки, отображающий каждое ядро по-отдельности?
Хмм... А я где-то такое говорил, или подразумевал? По моему я сказал что хочу такое сделать. Чтобы все процессы, относящиеся к ОС, запускались на одном ядре. А все пользовательские - на оставшихся.
ЦитироватьИ вообще что ты собрался пускать на "ядре для системы" ? Ты где-то в списке процессов видел Linux?
Дайте подумать. При запуске у вас запускается куча демонов, жирный гном, много всяческой лабуды, на которую всем положить до тех пор, пока это не понадобится. Вы думаете что это просто висит и ждет своего часа? Запустите систему и посмотрите на загрузку ЦП. А ведь вы только загрузили ОС, и ничего не сделали.
ЦитироватьИли одно ядро тупо выкинуть, потому что его загрузка будет ~0?
Зачем его выкидывать? Лучше я отдам его для прожорливой программы. Допустим я могу запустить еще что-нибудь BOINC-подобное и он посчитает что-то важное для человечества (ну это конечно надуманно, но смысл тот же)
ЦитироватьДа и о каком суперкомпьютере ты говоришь? 4 ядра? Спс, поржал.
Я не говорил что собираюсь сделать из ноутбука суперкомпьютер, я говорил о том, что такое реализовано на суперкомпьютерах, и что такое же хочу попробовать сделать у себя. Они тут всплыли потому что нужно от чего-то отталкиваться. А если вас это так забавляет, то милости прошу на башорг...
ЦитироватьВ общем всё что могли придумать для работы на нескольких процессорах уже придумали до тебя, сиди и не парь мозг.
Придумали, но, возможно, не все - это раз.
Технология, которую я хочу использовать тут, уже придумана до меня и мне ничего не нужно выдумывать - это два.
Если на парить мозг, то скоро можно разучиться думать - это три.
Так что изучать что-то новое - это хорошо, а если это тебе в данный момент интересно - это в двойне хорошо
ЦитироватьИ да, открою тебе тайну, задачи ОС называются процессами! ;D
Спасибо родной. А ты знаешь что существуют как процессы, так и потоки? Так вот поток = задача.

vladimir_ar

Приоритеты процессов уже отменили? Когда, если не секрет?
Debian Testing, kernel 3.16-2-amd64, OpenBox
AMD A8-3750 / 16Gb RAM / ATI HD6550D (onboard) / Sound ASUS Xonar - DS
_______________________________
Debian Testing, kernel 3.14-2-amd64, OpenBox
HP-655 AMD E1 / 8Gb RAM / ATI HD7310M

Impuls

Цитата: vladimir_ar от 10 ноября 2011, 21:57:58
Приоритеты процессов уже отменили? Когда, если не секрет?
Эммм... Приоритет - немного не то. При увеличении приоритета - увеличится время, отводимое на обработку данного процесса, но нельзя назначить на каком ядре будет выполняться тот или иной процесс...

Rock

Если 1 ядро взять за 25%, то 4 ядра 100%.
Если нужно отдать 1 ядро, то отдай 25%.
Какая тебе разница, на каком номере ядра выполняется задача, если она ограничена временем, равным одному ядру?
Впервые поставил Linux в 1999, Debian единственной домашней системой с 2002, на работе использую Linux с 2006, работаю только с Linux с 2010.

Impuls

Цитата: Rock от 10 ноября 2011, 22:05:17
Если 1 ядро взять за 25%, то 4 ядра 100%.
Если нужно отдать 1 ядро, то отдай 25%.
Какая тебе разница, на каком номере ядра выполняется задача, если она ограничена временем, равным одному ядру?
Чисто академическая. Хочу узнать производительность архитектуры. Узнать что лучше. И желательно в цифрах.

SeHELLioN

ТС, статью про smp в википедии читали? уделите внимание графе минусы...
Ну и еще, как вариант, при запуске прожорливой программы убивать все ненужные для нее и прожорливые процессы - прирост производительности будет
Asus m5a97+Amd fx-8350+4x4GB DDR3 1600MGz+asus gtx670 DCII (перешита в top)
Debian stable

Rock

Xen в помощь. Процессоры по id точно можно раздать, на счет ядер не помню точно. Даже использованное процессорное время сосчитает.
Впервые поставил Linux в 1999, Debian единственной домашней системой с 2002, на работе использую Linux с 2006, работаю только с Linux с 2010.

Tr@sH

Impuls, накатал небольшой тест (вывод pstree во время работы)
Цитироватьpthread_create:
|-konsole-+-bash---main_thread---{main_thread}
fork:
|-konsole-+-bash---main_process---main_process
ну и чем отличается для приложения задача-процесс от задачи-потока?

Impuls

#27
Цитата: Tr@sH от 10 ноября 2011, 22:23:07
Цитироватьpthread_create:
|-konsole-+-bash---main_thread---{main_thread}
fork:
|-konsole-+-bash---main_process---main_process
ну и чем отличается для приложения задача-процесс от задачи-потока?
Поток - менее жирный процесс.
Потоки, порождаемые одним процессом имеют общее адресное пространство, а, следовательно, скорость обмена данными довольно высока. А вот процессы имеют различное адресное пространство, и для общения процессов нужно придумывать различные ухищрения в виде pipe-ов, семафоров, сокетов. +Скорость переключения между потоками много выше. Вот как-то так.