Как разные дистрибутивы Linux работают с несколькими ядрами и многопоточностью?

7225
Jonathan

Я понимаю, что, задавая этот вопрос, я уже назвал себя «неподготовленным» к высокопроизводительным рабочим станциям, но как бы то ни было, вам нужно с чего-то начинать!

Я хотел бы знать, как разные дистрибутивы Linux работают с несколькими ядрами и многопоточностью, чтобы определить, какой из них лучше всего подходит для рабочей станции HPC.

По умолчанию я знаю, что Linux использует преимущества нескольких ядер, но есть ли у кого-нибудь справочные ссылки на то, как он работает с многоядерными процессами (на английском языке, т.е. я не хочу читать исходный код;)), а также графики сравнения производительности ( re: использование ядра во времени, распределение потоков, время компиляции и т. д.). Я понимаю, что приложения также должны быть оптимизированы для поддержки многоядерности, но первым шагом является получение максимальной отдачи от операционной системы.

Или я не прав, и является ли Linux по сути одинаковым в этом отношении, независимо от распределения, и вместо этого производительность будет зависеть от приложений?

7
Этот вопрос также может быть озаглавлен. «Начните пламенную войну, из-за которой дистрибутив Linux лучше всего ниже». Честно говоря, чтобы вопрос был подотчетен, нам нужно немного больше, чем просто «высокая производительность». Если ваш вопрос действительно «Отличаются ли дистрибутивы тем, как они обрабатывают многопоточность?» тогда задайте ЭТО вопрос, а не этот. frabjous 13 лет назад 1
Я не хочу начинать пламенную войну :( Я ненавижу их так же, как следующего практического человека. Я перефразирую свой вопрос. Извините. Jonathan 13 лет назад 0
Я думал, что вопрос был поставлен довольно хорошо, но опять же, я весь в знании, и мне плевать на пламя. Это вопрос, на который я хотел бы получить ответ ... invert 13 лет назад 0
wez, вопрос изменился, так как я написал свой комментарий, и много к лучшему! (Первоначально это было что-то вроде «какой дистрибутив Linux лучше всего подходит для высокой производительности?») frabjous 13 лет назад 0

4 ответа на вопрос

5
Nick

Там будут небольшие различия между дистрибутивами. Ubuntu может использовать планировщик XYZ, а Fedora может использовать планировщик ABC, и это приведет к улучшению на X%. Но большая проблема - поддержка приложений. У вас может быть одноядерный или 12-ядерный процессор, но если приложение является однопоточным, вы получите такую ​​же производительность. В этой ситуации я бы использовал все, что мне было удобнее в долгосрочной перспективе.

Я думал, что планировщик был частью ядра. Конечно, кто-то может изменить это, но похоже, что это будет * много * работы. В дистрибутивах часто есть немного разные вещи в пользовательском пространстве, но сколько на самом деле вносит серьезные изменения в само ядро? cHao 13 лет назад 2
@cHao - есть разные планировщики, которые вы можете указать ядру использовать. ta.speot.is 13 лет назад 0
Ваш ответ очень полезен, спасибо, но мне действительно нравятся источники, которые приведены ниже. Спасибо всем за помощь! Jonathan 13 лет назад 0
@cHao - ядро ​​имеет несколько опций планирования именно потому, что то, что оптимально для одних схем и задач ЦП, во многом не оптимально для других. У большинства стандартных ядер все они скомпилированы, так что вы можете переключаться между ними в качестве опции при загрузке, большинство настольных дистрибутивов по умолчанию будет использовать тот, который обычно используется во время выпуска этого дистрибутива, чтобы быть лучшим выбором для общего настольное использование. David Spillett 13 лет назад 0
3
ta.speot.is

Как разные дистрибутивы Linux работают с несколькими ядрами и многопоточностью?

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

Это отличные источники, спасибо! Jonathan 13 лет назад 0
Это правда, что в большинстве (если не во всех) дистрибутивах используется многоядерное ядро. Но ядро ​​не единственная часть операционной системы. К сожалению, большинство приложений, а также системные утилиты полны устаревшего синхронного одноядерного кода. Иногда существуют параллельные их версии, и их выбор зависит от одноядерных версий. В крайнем случае, я мог бы представить дистрибутив, который допускает только многоядерный код в своих репозиториях. Хотя я думаю, что в ней не хватало бы самых важных частей системы. Это печально, учитывая, что первые Intel Core Duos были выпущены 12 лет назад. Maciek Łoziński 6 лет назад 0
1
harrymc

В течение многих лет дистрибутивы Linux были многоядерными и многопоточными в ядре через SMP.

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

Этот веб-сайт должен помочь в выборе дистрибутивов Linux: Сравнение дистрибутивов Linux .

Спасибо за ответы. Я использую Linux уже почти десять лет, так что у меня есть довольно хорошее представление о различиях общего назначения между каждым дистрибутивом. Я особенно надеялся сосредоточиться на многоядерных аспектах и ​​показателях производительности, связанных с ними. Но я изо всех сил пытаюсь сказать, что я хочу. Ура! Jonathan 13 лет назад 0
В этом случае вы можете остаться с тем, что вы знаете лучше всего. harrymc 13 лет назад 0
0
Rich Homolka

Хотя большинство дистрибутивов используют стандартное ядро, есть пара, которые имеют различия, которые влияют на конкретные вычислительные требования. Redhat ( http://www.redhat.com/mrg/realtime/ ) и SUSE ( http://www.novell.com/products/realtime/ ) имеют ядра реального времени, которые влияют на планирование потоков.

Похожие вопросы