Выбор процессора - многоядерность и разрядность
Модератор: Модераторы разделов
Выбор процессора - многоядерность и разрядность
Вот я задумываюсь над покупкой ноутбука, в связи с чем хочу устранить свою безграмотность в области процессоров (а именно про многоядерность и разрядность). У меня одноядерный 32-битный старенький комп, посему никогда не сталкивался с этим вопросом. Читал вики, но там все не то написано.. (Или читал плохо..) Единственное, что знаю, что многих приложений нет для 64-х битных систем.
Собственно чего я не нашел при беглом прочтении статей в тырнете:
1. Степень заточенности дистрибутивов под многоядерные процессоры (В особенности debian. Знаю, что DragonFlyBSD очень хорошо под них заточена, но хочется остаться на debian или чем-то подобном, например, Убунта);
2. Прирост производительности в зависимости от количества ядер;
3. Все ли современные ноутбуки идут многоядерными (собираюсь покупать в пределах 30к руб.);
4. Есть ли какие-либо проблемы при работе 32-битной ОС на 64-битном процессоре;
5. Разница в производительности между 32-х и 64-хбитными ОС при работе на 64-битном процессоре;
6. Все ли ноутбуки идут сейчас с 64-битными процессорами?
Ув. дамы и господа, поделитесь, пожалуйста, опытом и знаниями по этому вопросу.
Собственно чего я не нашел при беглом прочтении статей в тырнете:
1. Степень заточенности дистрибутивов под многоядерные процессоры (В особенности debian. Знаю, что DragonFlyBSD очень хорошо под них заточена, но хочется остаться на debian или чем-то подобном, например, Убунта);
2. Прирост производительности в зависимости от количества ядер;
3. Все ли современные ноутбуки идут многоядерными (собираюсь покупать в пределах 30к руб.);
4. Есть ли какие-либо проблемы при работе 32-битной ОС на 64-битном процессоре;
5. Разница в производительности между 32-х и 64-хбитными ОС при работе на 64-битном процессоре;
6. Все ли ноутбуки идут сейчас с 64-битными процессорами?
Ув. дамы и господа, поделитесь, пожалуйста, опытом и знаниями по этому вопросу.
The two most common things in the Universe are hydrogen and stupidity. (Harlan Ellison)
Re: Выбор процессора - многоядерность и разрядность
1. Не дистрибутивов, а может ядра? Так вродь логичнее.... Проблем по данному пункту нет.
2. В большинстве программ прирост равен 0%, исключения - видеопроигрыватели, 3D рендеры и прочее. Прирост будет лишь в тех программах, которые создавались в расчете на возможность использования в многопроцессорной среде (2-х, 4-хядерных процах, к примеру).
3. Большинство. Но не все (довольно старые модели)
4-5. Если использовать на 64х 32-битные программы, практического прироста нет. 32х ОС устанавливаются на 64х.
6. По-моему, поправьте если ошибаюсь, все многоядерные машины являются 64-битными
2. В большинстве программ прирост равен 0%, исключения - видеопроигрыватели, 3D рендеры и прочее. Прирост будет лишь в тех программах, которые создавались в расчете на возможность использования в многопроцессорной среде (2-х, 4-хядерных процах, к примеру).
3. Большинство. Но не все (довольно старые модели)
4-5. Если использовать на 64х 32-битные программы, практического прироста нет. 32х ОС устанавливаются на 64х.
6. По-моему, поправьте если ошибаюсь, все многоядерные машины являются 64-битными
Re: Выбор процессора - многоядерность и разрядность
Единственное, где на практике есть действительный прирост производительности от многоядерности, это компиляция программ. При правильно подобранных опциях, разница очень ощутима.
Ёж - птица гордая: пока не пнёшь, не полетит.
Re: Выбор процессора - многоядерность и разрядность
вот какая вещь получается - программы собираются быстрее, а работают так же))) наверно, многоядерные компы для программистов создали, а толкают кому не попадя, да и свалили всю ответственность тоже на нас - типа это мы программы криво пишем, поэтому вместо прироста получается кукиш с маслом. еще не создан компилятор и не родился программист, который сможет сделать то чего от нас, программистов требуют производители железа.
Re: Выбор процессора - многоядерность и разрядность
О многоядерности из интервью с Д.Кнутом:
Полностью здесь.
Э.Б.: Между тем, производители многоядерных машин сейчас расстраиваются по поводу того, как трудно привлечь разработчиков к этим машинам. Как бывший университетский профессор, что вы думаете об этом? Может, проблема в инструментах - например, необходима более естественная поддержка одновременных вычислений в языках программирования? Или проблема в самих вычислительных архитекрутах? Или какие-то другие решения возможны?
Д.К.: Мне придется несколько уклониться от прямого ответа, и побурчать о моих личных сомнениях по поводу нынешнего тренда в сторону мультипроцессорных архитектур. Мне кажется, у создателей "железа" кончились идеи, и они пытаются свалить на программистов всю вину за грядущий облом Закона Мура. Они дают нам машины, которые работают быстро - но лишь по немногим ключевым показателям! Я не удивлюсь, если вся идея многопоточных вычислений окажется лажей. И это будет даже более серьезное фиаско, чем хваленый подход Itanium - который обещал работать просто удивительно, но потом оказалось, что для него невозможно написать желаемых компиляторов.
Полностью здесь.
Если правильно задать вопрос, то он сам по себе будет ответом.
Re: Выбор процессора - многоядерность и разрядность
В начале года поменял PIII на Core2Duo. Использую Debian. Просто скопировал старую систему на новый HDD, предварительно собрав новое ядро для нового железа.
1. Степень "заточенности" мне неизвестна. Я использую 32-х разрядную версию. Каких-то специфических, обусловленных многоядерностью проблем не заметил.
2. Прирост производительнсти заметен невооружённым взглядом. Однако - где заметен? При сборке ядра, например, безусловно. И вообще при компиляции чего-либо, LFS, допустим - да. А при обычной, так сказать, работе - нет. Это, ещё раз скажу - "на глаз", я замеров специальных не делал.
Вот у меня память соответственно увеличилась с 256 mb до 2Gb, вот это, я думаю, на общую отзывчивость системы повлияло гораздо сильнее самого камня.
P.S.
Вот, кстати, заметил такое. При запуске чего-либо ресурсоёмкого, типа clamscan'a или там john(-the-Ripper'a) - top, gkrellm, conky рисуют такую картину, как будто процесс "перебрасывается" с ядра на ядро. Т.е. с cpu0 на cpu1 и обратно, и обратно, и обратно... Я в этом вообще слабо разбираюсь, не знаю, можно ли по показаниям top, например, компетентно судить о загрузке ядер, но вот как-то так у меня. SMP включено, MCORE2 включено. Не должен ли оптимизированный код честно распараллеливаться между ядрами? ХЗ.
1. Степень "заточенности" мне неизвестна. Я использую 32-х разрядную версию. Каких-то специфических, обусловленных многоядерностью проблем не заметил.
2. Прирост производительнсти заметен невооружённым взглядом. Однако - где заметен? При сборке ядра, например, безусловно. И вообще при компиляции чего-либо, LFS, допустим - да. А при обычной, так сказать, работе - нет. Это, ещё раз скажу - "на глаз", я замеров специальных не делал.
Вот у меня память соответственно увеличилась с 256 mb до 2Gb, вот это, я думаю, на общую отзывчивость системы повлияло гораздо сильнее самого камня.
P.S.
Вот, кстати, заметил такое. При запуске чего-либо ресурсоёмкого, типа clamscan'a или там john(-the-Ripper'a) - top, gkrellm, conky рисуют такую картину, как будто процесс "перебрасывается" с ядра на ядро. Т.е. с cpu0 на cpu1 и обратно, и обратно, и обратно... Я в этом вообще слабо разбираюсь, не знаю, можно ли по показаниям top, например, компетентно судить о загрузке ядер, но вот как-то так у меня. SMP включено, MCORE2 включено. Не должен ли оптимизированный код честно распараллеливаться между ядрами? ХЗ.
Re: Выбор процессора - многоядерность и разрядность
chitatel писал(а): ↑16.05.2008 15:38Вот, кстати, заметил такое. При запуске чего-либо ресурсоёмкого, типа clamscan'a или там john(-the-Ripper'a) - top, gkrellm, conky рисуют такую картину, как будто процесс "перебрасывается" с ядра на ядро. Т.е. с cpu0 на cpu1 и обратно, и обратно, и обратно... Я в этом вообще слабо разбираюсь, не знаю, можно ли по показаниям top, например, компетентно судить о загрузке ядер, но вот как-то так у меня. SMP включено, MCORE2 включено. Не должен ли оптимизированный код честно распараллеливаться между ядрами? ХЗ.
да. есть такой прикол)))
заметил на билд-сервере на Core2Duo. в случае когда работает одно, но ресурсоёмкое приложение.
при этом, если мониторить содержимое файла cpuinfo, видно, что технология энергосбережения снижает частоту одного из ядер (неактивного)
можно предположить ,что это сделано для более равномерного тепловыделения - чтобы не было на чипе областей с резким градиентом температуры.
Never stop thinking..................................................................
Re: Выбор процессора - многоядерность и разрядность
chitatel писал(а): ↑16.05.2008 15:38P.S.
Вот, кстати, заметил такое. При запуске чего-либо ресурсоёмкого, типа clamscan'a или там john(-the-Ripper'a) - top, gkrellm, conky рисуют такую картину, как будто процесс "перебрасывается" с ядра на ядро. Т.е. с cpu0 на cpu1 и обратно, и обратно, и обратно... Я в этом вообще слабо разбираюсь, не знаю, можно ли по показаниям top, например, компетентно судить о загрузке ядер, но вот как-то так у меня. SMP включено, MCORE2 включено. Не должен ли оптимизированный код честно распараллеливаться между ядрами? ХЗ.
ничего удивительного - процесс перебрасывается с проца на проц, чтобы равномерно рассредоточить нагрузку на все имеющиеся процессоры и свести к минимуму момент холостого хода каждого из них.
Re: Выбор процессора - многоядерность и разрядность
Отучайтесь говорить за всех, говорите за себя.
Re: Выбор процессора - многоядерность и разрядность
Т.е. моё представление об оптимизированном коде как о коде, который предполагает "честное" распределение нагрузки на имеющиеся ядра в каждый момент времени, без "перебрасывания", не верно?
Re: Выбор процессора - многоядерность и разрядность
Тут вообще спрашивали про архитектуры x86 и x86-64. Позволю себе усомниться в реальной пользе от перехода на x86-64.
Но вот по поводу многоядерности не соглашусь с предыдущими ораторами
Правильно написанные программы, которые используют в своем коде многоядерность процессора (разделяют потоки и тд) работают быстрее. Это особенно заметно, когда запущено много приложений. Например недавно в нашей группе (на работе) закончили сдали проект вейвлетного шумоподавляющего фильтра. Когда его код оптимизировали под многоядерность, фильтр стал работать почти в два раза быстрее на двуядерном процессоре.
Но тут же стоит и отметить, что многоядерный процессор работает значительно медленнее чем, скажем, его "аналог" из нескольких процессоров за счет внутренней архитектуры.
Так и есть, все верно
Но вот по поводу многоядерности не соглашусь с предыдущими ораторами
Правильно написанные программы, которые используют в своем коде многоядерность процессора (разделяют потоки и тд) работают быстрее. Это особенно заметно, когда запущено много приложений. Например недавно в нашей группе (на работе) закончили сдали проект вейвлетного шумоподавляющего фильтра. Когда его код оптимизировали под многоядерность, фильтр стал работать почти в два раза быстрее на двуядерном процессоре.
Но тут же стоит и отметить, что многоядерный процессор работает значительно медленнее чем, скажем, его "аналог" из нескольких процессоров за счет внутренней архитектуры.
6. По-моему, поправьте если ошибаюсь, все многоядерные машины являются 64-битными
Так и есть, все верно
Тайною мир держится
Re: Выбор процессора - многоядерность и разрядность
Вот это ключевой момент. Пока ещё очень не много приложений оптимизированы под многоядерность.
Если правильно задать вопрос, то он сам по себе будет ответом.
Re: Выбор процессора - многоядерность и разрядность
Тут вообще спрашивали про архитектуры x86 и x86-64. Позволю себе усомниться в реальной пользе от перехода на x86-64.
имхо единственный плюс - поддержка больше оперативки, хотя для ноута это неактуально )))
Про двухядерность - при кодировании видео реально заметно ускорение.
Re: Выбор процессора - многоядерность и разрядность
Т.е. моё представление об оптимизированном коде как о коде, который предполагает "честное" распределение нагрузки на имеющиеся ядра в каждый момент времени, без "перебрасывания", не верно?
как вы представляете себе этот код? неужели в бинарнике должны быть инструкции указывающие, какой участок кода какому процессору должен пренадлежать? имхо, это пока-что невыполнимая задача. тем более, было отмечено что такое "перебрасывание" наблюдается при загрузке одной большой программы, требующей много процессорного времени. как распараллелить ее выполнение? никак. чтобы сделать это надо пересмотреть существующую архитетуру компьютера, базовые алгоритмы и принципы работы, нужны новые технологии, в корне отличающиеся от сегодняшних. и, извините меня, сегодняшние процессоры созданные чтобы выполнять быстро, но ОДНУ операцию за раз просто по определению не могут дать реальную многозадачность.
Правильно написанные программы, которые используют в своем коде многоядерность процессора (разделяют потоки и тд) работают быстрее.
нет никакой гарантии, что созданные потоки будут работать на разных процессорах. даже на многоядерном процессоре.
Отучайтесь говорить за всех, говорите за себя.
а он уже родился? и неужели это вы? прошу опровержения моих доводов.
Re: Выбор процессора - многоядерность и разрядность
По части многопроцессорности: вот вам такая аналогия.
1) Нужно отсчитать 100 банок пива. С этой задачей одинаково справятся как один человек, так и пара. Потому что счёт у них общий.
2) Нужно сложить отобранные банки пива в упаковочную тару. Здесь пара справится в два раза быстрее чем одиночка. Потому что у них в этой задаче нет блокирующих элементов. Каждый работает над задачей независимо друг от друга.
3) Нужно заклеить скотчем ящики с упакованнм пивом. Рулон скотча один.
Вывод: не всякая задача может быть распаралелена. Некоторые задачи изначально подходят для паралельной работы (задача #2), некоторые могут быть переформулированы чтобы можно было их распаралелить (например, задачу #1 переформулируем так: каждому из пары даём задачу отсчитать 50 банок пива. Если люди в паре одинаково расторопны, задачу выполнят быстрее чем одиночка, отсчитывающий 100 банок), ну а некоторые задачи не могут быть распаралелены никак (задача #3).
Но в любом случае, два человека не хуже, чем один В крайнем случае, если они начинают мешаться друг другу - можно отослать одного покурить
1) Нужно отсчитать 100 банок пива. С этой задачей одинаково справятся как один человек, так и пара. Потому что счёт у них общий.
2) Нужно сложить отобранные банки пива в упаковочную тару. Здесь пара справится в два раза быстрее чем одиночка. Потому что у них в этой задаче нет блокирующих элементов. Каждый работает над задачей независимо друг от друга.
3) Нужно заклеить скотчем ящики с упакованнм пивом. Рулон скотча один.
Вывод: не всякая задача может быть распаралелена. Некоторые задачи изначально подходят для паралельной работы (задача #2), некоторые могут быть переформулированы чтобы можно было их распаралелить (например, задачу #1 переформулируем так: каждому из пары даём задачу отсчитать 50 банок пива. Если люди в паре одинаково расторопны, задачу выполнят быстрее чем одиночка, отсчитывающий 100 банок), ну а некоторые задачи не могут быть распаралелены никак (задача #3).
Но в любом случае, два человека не хуже, чем один В крайнем случае, если они начинают мешаться друг другу - можно отослать одного покурить
Re: Выбор процессора - многоядерность и разрядность
Для начала неплохо бы сформулировать свои доводы.
А то пока только "нет компиляторов" и "не родился".
Заявления космического масштаба, не подкрепленные ничем.
Давайте говорить предметно, а не тыкать пальцем в небо.
Re: Выбор процессора - многоядерность и разрядность
Frank, блеск!
Надеюсь, вопрос в тему - случаи 1, 2 имеют отношение к MPI?
Надеюсь, вопрос в тему - случаи 1, 2 имеют отношение к MPI?
Re: Выбор процессора - многоядерность и разрядность
Ага, а второй случай - кодирование аудио/видео, а третий случай... И т.д. до бесконечности, учитывая что уже много прог, поддерживающих многопоточность. И не забывайте, что работа на 2-ух ядерной проце оси при загрузке будет быстрее, чем на одноядерном, т.к. ось будет распределять свои процессы на друго ядро и не мешать работающий на максимуме проге.
С 64-ех раздрядными та же песня - он есть, читаем статьи про это. Но выигрышь не всегда значителен.
Конечно, лазать в инете все равно на чем. Можно и в мобильном.
Re: Выбор процессора - многоядерность и разрядность
Ох, господа, спасибо! Ответили на все, что меня интересовало (:
В том то и проблема, мне нужна машинка для тырнета, музыки и небольших математических расчетов (интегральчики, диффуры). И мне не хочется брать монстра, способного обсчитывать влияние всей галактики на падение яблока, потому что во-первых переплачу, а во-вторых греться он очевидно сильнее будет.
В том то и проблема, мне нужна машинка для тырнета, музыки и небольших математических расчетов (интегральчики, диффуры). И мне не хочется брать монстра, способного обсчитывать влияние всей галактики на падение яблока, потому что во-первых переплачу, а во-вторых греться он очевидно сильнее будет.
Я вот ядерной физикой пока не занимался.. Это надо делать только если предыдущее ядро собиралось под вашу машинку? У меня обычное из репозитория стоит..
Да, верно, спасибо..
The two most common things in the Universe are hydrogen and stupidity. (Harlan Ellison)
Re: Выбор процессора - многоядерность и разрядность
потому что во-первых переплачу, а во-вторых греться он очевидно сильнее будет.
не сильно то и переплатите, тк разница в цене не очень большая, да и с тепловыделением у новых процов от интел, по амд не знаю, очень даже не большое. Да и реальной альтернативы Core2Duo сейчас нет, тк имхо селерон тормоз даже на неочень сложных задачах... По мне так лучше сейчас переплатить пару тыров, чем через пол года кусать локти и думать какого же тормоза ты купил ))) все имхо. У меня просто таких вопросов не было, тк иногда занимаюсь видео и там то проц нужен хороший )))
Re: Выбор процессора - многоядерность и разрядность
не стал читать всю тему, и не буду советовать ничего, только обращу внимание на один момент:
достаточно много ноутбуков последних лет выпуска имеют свойство сильно греться, особенно с мощными процами...я бы не стал брать "самый многоядерный и многоразрядный" из всех, он наверняка будет сильно греться(кстати, уже видел охлаждающие подставки для ноутов в продаже))))
достаточно много ноутбуков последних лет выпуска имеют свойство сильно греться, особенно с мощными процами...я бы не стал брать "самый многоядерный и многоразрядный" из всех, он наверняка будет сильно греться(кстати, уже видел охлаждающие подставки для ноутов в продаже))))
Re: Выбор процессора - многоядерность и разрядность
При большом количестве запущенных приложений, многоядерный процессор "отзывчивей" при переключении между ними.
ИМХО весомый аргумент в пользу многоядерности.
ИМХО весомый аргумент в пользу многоядерности.
Спрашивать, какой дистрибутив лучше, все равно что интересоваться, какая пища вкуснее.
Re: Выбор процессора - многоядерность и разрядность
> ...нет никакой гарантии, что созданные потоки будут работать на разных процессорах. даже на многоядерном процессоре.
за это отвечает scheduler ядра... гарантии, конечно, нет - ибо итак понятно, что помимо выполнения одной программы есть ещё куча процессов, которые хотят процессорного времени. Но всё же много превалирующий процент этой тяжёлой программы о двух (к примеру) тхредах будет выполняться на двух разных физических ядрах.
за это отвечает scheduler ядра... гарантии, конечно, нет - ибо итак понятно, что помимо выполнения одной программы есть ещё куча процессов, которые хотят процессорного времени. Но всё же много превалирующий процент этой тяжёлой программы о двух (к примеру) тхредах будет выполняться на двух разных физических ядрах.
Molchanov Alexander (aka Xor)
*offtopic* - ololo!
*offtopic* - ololo!
Re: Выбор процессора - многоядерность и разрядность
Кстати, когда приложения НЕ оптимизированы под многопроцессорность, то вышеупомянутый фактор куда заметнее,
чем с оптимизированными прогами. Так большинство i686 бинарников не могут загрузить камень больше, чем на 50%,
а какой-нить архиватор или видео(аудио)[де]кодер х86_64 запросто загружают камень на все 100%. Сам проверял.
Йа тьомный эльф
Re: Выбор процессора - многоядерность и разрядность
Стоит отметить и обратное - если основным потребителем процессора является одно приложение, которое не умеет работать с многоядерной архитектурой, то при прочих равных (например, одинаковом рейтинге процессоров) лучше иметь одноядерный.
Отсюда глобальный вывод: работать можно со всеми вариантами процессоров, современные дистрибутивы никаких проблем не создадут, и выбор процессора/ноутбука должен определяться конкретными планируемыми для него задачами. На мой взгляд, сравнительно более типична ситуация, когда на ноутбуке единовременно работает только одно "процессороемкое" приложение, так что одноядерный процессор может оказаться удобнее.
Re: Выбор процессора - многоядерность и разрядность
Как я понимаю из всего выше написанного, На 2х Ядерный проц, можно без проблем поставить 32 разрядную ось. И это будет лучше чем ставить 64 разрядную
AMD Athlon-64 X2 2Gh | DDR II 4 Gb | 640 Gb | nVidia GeForce 9800 512Mb
- /dev/random
- Администратор
- Сообщения: 5281
- ОС: Gentoo
Re: Выбор процессора - многоядерность и разрядность
/dev/random писал(а): ↑04.06.2008 14:31
Если оперативы 4ГБ или больше, то 64разрядную. Иначе - да, во многих случаях лучше 32разрядную.
Благодарю за ответ. Теперь все понятно.
AMD Athlon-64 X2 2Gh | DDR II 4 Gb | 640 Gb | nVidia GeForce 9800 512Mb