Многоядерность
Чем хвалятся производители современных процессоров (ну или продавцы компьютеров). Во-первых, 64-битностью, но я об этом уже писал. А во-вторых, постоянно упоминается некая многоядерность. Что это за зверь такой и с чем его едят? Сейчас попробую рассказать. И, заодно, отвечу на вопрос - а нужен ли вам многоядерный компьютер, и, если да, то сколько ядер.
А то услышал я тут диалог двух девушек. Одна с таким умным видом рассказывает: "мне тут новый ноутбук купили, но на нем эта, Виста будет, а то там эти, как их, ядра, и XP уже не тянет." На самом деле, в этих словах может быть доля правды. У компьютера может быть больше 3х гигабайт оперативной памяти, поэтому обычную, 32-битную Windows XP использовать глупо, а 64-битные - это редкость. Но "ядра" - это совсем другая песня...
А все не так уж и сложно. Обычные, одноядерные компьютеры (более точно, процессоры) выполняют все команды последовательно. То есть можно представить будто у вас есть список дел, и вы их решаете одно за другим. То есть, конечно, не все так плохо - современные операционные системы "многозадачны", вы ведь привыкли к тому, что вы одновременно и файлы копируете, и по интернету ходите, и музыку слушаете. Но эта задача решена именно средствами операционной системы - на процессор посылаются поочередно разные инструкции, каждая программа получает свой приоритет на выполнение задач.

На скриншоте изображен диспетчер задач для одноядерного компьютера. Кстати, внешний вид диспетчера задач - один из способов определить, сколько у вашго компьютера ядер. Подробней читайте по ссылке.
Чем же плох одноядерный компьютер? А тем, что многозадачность работает нормально лишь тогда, когда все имеющиеся задачи в совокупности не загружают процессор полностью. Но как только одна из задач начинает требовать процессор постоянно (из-за сложного вычисления или просто зависнув из-за сбоя), начинаются проблемы - процессор загружен полностью, и он даже не успевает отрабатывать своевременно нажатия на клавиатуру или движения мыши. Знакомая ситуация?
Многоядерные компьютеры, конечно, не панацея, но "подвесить" многоядерный компьютер существенно сложнее. А суть такого процессора состоит в том, что он действительно имеет несколько "ядер" (по-английски, kernel), каждое из которых может выполнять вычисления независимо от других. Тем самым, один процесс может загрузить только одно ядро, а остальные останутся свободными.
Зачем вам нужен многоядерный компьютер? Ну вот как раз, чтобы он меньше вис. Для этого хватит двух ядер, в случае ноутбука подойдет, например, процессор Intel Dual Core. Нужно ли больше ядер? Возможно, но только если вы собираетесь гонять высокопроизводительные вычисления (например, при кодировании видео), а также для современных игр. Кстати, в последнее время стали продаваться и четырехядерные ноутбуки. Например, если мы рассмотрим ноутбуки Samsung, то увидим недавно появившийся шикарный R780 с процессором CoreI7.
И отвечу на незаданный вопрос - а как же программа использует все эти ядра, если один процесс может загружать только одно ядро? Автоматически - никак. Об этом должен позаботиться разработчик, но в случае вышеупомянутых игр и кодирование, скорей всего, разработчики действительно позаботились. Как это делается? А запускается несколько процессов, которые обмениваются друг с другом данными. Это - особый раздел программирования, так называемое параллельное программирование, зачастую более сложное, чем обычное. Я, кстати, тоже таким занимаюсь ;)
Ну вот и все. У вас остались вопросы или комментарии? Буду рад!
Дата: 17 февраля 2010 г., категория: размышления об интернете.
| ← Файловые системы Windows | Обход прокси → |
Комментарии
1# | Chief Обычно компьютер покупают "на вырост", потому как не убеждай клиента, что 4 ядра ему пока не нужны, бесполезно. Или вступает в силу закон денег. И только немногие знают, чем 4-хядерный процессор лучше остальных. И все же новое и мощное станет востребованным быстро, а компы мы меняем не часто. Так пусть его хватит на как можно большее время. |
2# | Sander Напоминает анекдот про нового русского, покупающего навороченный (ну, скажем, на тот момент - Пентиум). Долго собирает самую дорогую конфигурацию, а когда, наконец, его спрашивают, что за задачи будет решать эта машина, отвечает "жена очень любит в тетрис играть - вот сейчас оторвется".
|
3# |
...и тем не менее, главный вопрос все же денежный. |
4# | Sander ну тогда нет смысла брать больше чем 2 ядра. Если нет конкретной задачи, про которую известно, что от многоядерности она выигрывает |
5# |
Я бы тоже не отказался от проца с 12 ядрами. И дело тут ведь не в том даже для чего тебе такой комп, дело в том как ты его используеш, это по крайней мере в моем случае. Вот сейчас сижу, а у меня хрен знает сколько программ открыто, а всеравно для удобства нужно бы еще кучу пооткрывать. З.Ы. проц у меня тож двухядерный! |
6# | Sander Ну если эти программы особо активно не работают, то ядра и ни к чему. Лучше памяти побольше! |
7# |
Смысла в более чем 4 ядрах пока нет. Потому что софта, оптимизированного под многояделные системы почти нет. |
8# | Sander Для кого нет, а для кого и есть. Мои программы (вычисления в физике высоких энергий) прекрасно используют и 8 и 12 ядер. |
9# |
Когда появились 2-х ядерные процессоры, все тоже говорили что программ под них нет и смысла особого в их приобретении тоже нет. А сейчас никто даже и не подумает чтоб покупать процессор с менее чем 2 ядер. Мир не стоит на месте и то, что сегодня необычно, завтра мы без него не сможем представлять свою жизнь. |
10# |
согласен) возможно в будущем о 8 ядровом проце будут вспоминать так-же как мы вспоминает о компах, которые занимали по площади 3-х комнатную квартиру=) |
11# |
У меня 2 ядра на компьютере. |
12# |
двуядерные/двухпроцессорные компы стали актуальны на win-десктопе с выходом sp2 для winXP, раньше эффективно использовать второе ядро или процессор домашние ос не могли. а вообще - даже на настольком компутере два ядра это всегда лучше чем одно, потому что запущена то не одна программа, а несколько. |
13# |
Здравствуйте.
|
14# |
Почему-то совсем не упомянули трёхядерные процессоры; только про чётные числа ядер и говорили. Почему? |
15# | Sander M_rt,
|
16# |
мне кажется 3-ядерные процессоры больше маркетинговый ход, нежели нечто необычное. хоть три, хоть шесть, хоть 16. все равно будет лучше одного ;-) |
17# |
Sander
|
18# |
Поразительно запутывающая статья...
|
19# |
Господи сколько глупости про троичную систему и неестественность 3-х ядер. и причём тут маркетинг?
|
20# |
jenix, ух сколько желчи...
|
21# |
jenix и mult,
|
22# |
Не могли бы вы объяснить следующую вещь. Как я наслышан есть теорема Винера (надеюсь память мне не изменяет). Так это теорема гласит, что ставить больше двух процов (ядер) вообще бестолково. Быстродействие после 2 уменьшается(сам бы в шоке). 4 ядра-рекламный ход. Есть возможность использовать больше чем два проца, но тогда оборудование должно располагаться не на общей шине (а оно на общей в стандартных компах). Больше двух процов использут на "суперкомпах", но там парятся с их индивидульностью.
|
23# | Sander Lokis, все не совсем так.
|
24# |
Так скольки ядерный брать то??? 2х или 3х??? Если мне ноут не для игр нужен...а работы...инет...музыка...фильмы.... Заранее благодарна за ответ))) |
25# | Sander Aigul, если работа не связана с программированием и обработкой видео, то при таких условиях третье ядро не нужно. Хуже от него, конечно не будет, но можно и деньги сэкономить. |
26# |
У меня 4 ядерный при расчёте на Solidworkc работает только на одном ядре. Считаю что это принципиально неверно рашать прроблемму многоядерности с помощью программ. Должно быть или аппаратно организовано распределение или через драйверы. У меня соответсвенно два вопроса. как решается проблемма многоядерности для программ написаных для одноядерных компьютеров и можно ли заставить равномерно работать процессоры в моём случае. |
27# | Sander Владимир, боюсь, такого решения нет. Как минимум, я об этом не слышал. Попытка парализовать что угодна заведомо обречена на провал - программа представляет собой последовательность инструкций, и системе совершенно непонятно, что там можно выполнить параллельно.
|
28# |
Есть ли существенная разница между 4-х и 6-ти ядерными процами от AMD?На сколько 2 дополнительных ядра увеличат производительность. |
29# | Sander Смотра для каких целей. Теоретически выигрывается 50%, но это если программа умеет полноценно параллелить все. А потом, чем больше ядер, тем меньше выигрыш от параллелизации. Для домашнего компьютера, думаю, это вообще незаметно будет |

