Как собрать многопроцессорный компьютер

Обновлено: 05.07.2024

Вряд ли мы увидели бы окружающий мир таким, какой он есть, если бы в свое время человечество не изобрело принцип разделения труда. Благодаря этому стало возможным появление профессионалов, специализирующихся в определенной области и умеющих отлично выполнять свою работу.

Не хватает, скажем, человеку рук — он создает себе дубля, безмозглого, безответственного, только и умеющего что паять контакты, или таскать тяжести, или писать под диктовку, но зато уж умеющего это делать хорошо.

Аркадий и Борис Стругацкие

Параллельная программа — частный случай разделения труда

Реализация такого подхода в сфере производства позволила в разы увеличить выпуск продукции. Поэтому неудивительно, что с появлением компьютеров возник вопрос о переносе принципа разделения труда на работу компьютерных программ. Исследования в данной области позволили обнаружить и тот приятный факт, что громоздкие математические вычисления, связанные, например, с операциями над матрицами, можно разбить на независимые подзадачи. Каждую подзадачу можно выполнить отдельно, а затем быстро получить результат решения исходной задачи, скомбинировав результаты решения подзадач. Поскольку подзадачи независимы, их решением могут одновременно заниматься несколько исполнителей. Если в качестве исполнителя выступает компьютер, то такой подход позволяет находить решения для очень сложных в вычислительном плане задач реалистичного моделирования объектов окружающей действительности, криптоанализа, контроля технологических процессов в реальном масштабе времени. Именно по этому принципу работают все суперкомпьютеры, которыми гордятся научные лаборатории и вычислительные центры.

Достигнув предела в увеличении быстродействия процессоров, связанного с принципиальными физическими ограничениями, производители компьютеров стали наращивать в своих изделиях количество вычислительных узлов. И сегодня в корпусе обычной персоналки можно встретить то, что еще недавно называлось суперкомпьютером, — многоядерное вычислительное устрой-ство. Операционные системы уже давно готовы к появлению такой техники. Unix и Linux, OS/2, Mac OS, современные версии Microsoft Windows, способны продемонстрировать увеличение производительности при одновременном выполнении нескольких программ. Например, при просмотре видеофильма может незаметно осуществляться антивирусное сканирование жесткого диска. Но бывают ситуации, когда больших вычислительных ресурсов может потребовать решение только одной задачи. Не беря в расчет проблему моделирования ядерного синтеза или взлома пароля к архиву, вспомним о таких обыденных вещах, как кодирование музыки и видео, компьютерные игры. Программы, реализующие эти задачи, полностью задействуют ресурсы центрального процессора. Однако рост количества процессоров в системе не даст заметного прироста производительности в приведенных примерах, если при разработке программ не применялось специальных методов. Действительно, откуда операционной системе знать детали реализации методов кодирования, чтобы распределить вычисления по процессорам? Разве ей известно, как параллельно рассчитывать сцену игровой ситуации?

Процессы и нити — близнецы-братья

Итак, в нашем распоряжении оказался многопроцессорный компьютер. Мы проанализировали задачу и выделили подзадачи, которые можно решать одновременно. Как в программе оформить решения этих подзадач? Современные операционные системы предлагают два варианта одновременного выполнения кода — в виде процессов и в виде нитей.

Нить — это средство разветвления программы внутри процесса. Процесс может содержать несколько нитей, каждая из которых выполняется независимо от других, сохраняя собственные значения регистров и ведя свой стек. Нитям доступны все глобальные ресурсы выполняемого процесса, например открытые файлы или сегменты памяти. Каждый процесс имеет как минимум одну выполняемую нить — основную. Когда решение задачи подходит к участку, допускающему распараллеливание, процессом порождается необходимое количество дополнительных нитей, которые выполняются одновременно, решают свои подзадачи и возвращают результат основной нити.

Для решения сложных задач мало осуществить параллельное выполнение различных участков кода, надо еще организовать обмен результатами их работы, т. е. наладить взаимодействие между этими участками. Казалось бы, в случае нитей это можно легко реализовать с помощью доступа к оговоренному общему участку оперативной памяти. Однако простота эта обманчива, поскольку операции записи в оперативную память различными нитями могут пересечься самым непредсказуемым образом, так что целостность информации, хранящейся в этой области памяти, будет нарушена (см. врезку «Пример взаимодей-ствия нитей»).

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

Современные операционные системы предлагают широкий набор средств для синхронизации параллельных процессов. Самым простым средством синхронизации одновременно выполняющихся участков кода является ожидание одной нитью завершения выполнения другой нити. Этот же механизм обеспечивает и поддержку выполнения операционной системой асинхронных операций, таких как файловый ввод-вывод или обмен данными по сети. Кроме того, функции ожидания могут использоваться при взаимном оповещении процессов о происходящих событиях (рис. 1).

Если существует вероятность того, что разные участки программы могут одновременно осуществить модификацию какой-нибудь переменной, то необходимо применять защиту этой переменной. Допустим, если одна нить занимается расчетами игровой сцены, а другая — ее перерисовкой, то перерисовка должна выполняться только после выполнения всех необходимых вычислений. Чтобы этого достичь, в операционные системы введен специальный объект — мьютекс (от англ. «mutual execution» — смешанное выполнение).

Прежде чем начать изменение переменной, нить должна осуществить захват соответствующего этой переменной мьютекса. Если ей это удалось, то мьютекс изменяет свое внутреннее состояние, а нить продолжает выполняться. Если в то время, как с переменной осуществляется работа первой нити, соответствующий мьютекс попытается захватить другая нить, ей будет в этом отказано, и она будет вынуждена дождаться освобождения мьютекса первой нитью (рис. 2). Таким образом гарантируется работа только одного участка кода в конкретный момент времени с конкретной переменной.

При программировании бывают ситуации, когда в одном участке кода необходимо модифицировать несколько глобальных переменных. Если существует вероятность одновременного выполнения этого кода несколькими нитями, необходимо предусмотреть его защиту. Специально для такого случая операционные системы предлагают организовать соответствующий код в критическую секцию.

Критическая секция может выполняться в каждый момент времени только одной нитью. Другая нить должна узнать, доступна ли критическая секция для выполнения, и в случае отрицательного ответа либо дождаться ее освобождения, либо заняться выполнением другой операции (рис. 3). Критические секции отличаются от мьютексов еще и тем, что одна и та же нить может многократно входить в захваченную ею критическую секцию, тогда как при попытке повторного захвата мьютекса выполнение нити будет остановлено и может возникнуть так называемый тупик.

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

Семафор — это системный объект, который представляет собой счетчик. Перед началом работы с ресурсом из набора нить должна обратиться к ассоциированному с ним семафору. Если значение счетчика семафора больше нуля, то нить допускается к работе с ресурсом, а значение счетчика уменьшается на единицу (рис. 4). Если же со всеми ресурсами из набора уже ведется работа, то нить будет поставлена в очередь. По завершении использования ресурса нить сообщает об этом семафору, значение его счетчика увеличивается и ресурс снова может быть предоставлен в пользование.

Иногда возникает необходимость экстренного прерывания процесса ради выполнения каких-нибудь неотложных действий. В некоторых операционных системах для этого служат сигналы. Процесс, которому потребовалось выполнить специальную операцию, отправляет другому сигнал. При написании другого процесса должна быть предусмотрена процедура обработки сигналов: по его получении процесс может приостановиться или завершиться, выполнить предусмотренную специально для этого случая подпрограмму или просто этот сигнал проигнорировать.

Как сказано выше, для совместного решения общей задачи процессам может понадобиться не только согласовывать свою работу, но и осуществлять обмен информацией, например промежуточными результатами. Для этого можно использовать совместный доступ к оперативной памяти, обмен информацией через файл, передавать данные через однонаправленные каналы или имитировать сетевую работу (рис. 5).

Наиболее быстрый и самый очевидный способ обмена информацией между одновременно выполняющимися участками кода — использование общей области оперативной памяти. Один процесс записывает данные в память, другой их считывает. Однако применяя этот метод, необходимо позаботиться о синхронизации процессов одним из описанных выше способов. Если обмен информацией через разделяемую память между нитями может быть реализован непосредственно, то процессы должны сначала запросить у операционной системы необходимый сегмент памяти и согласовать процедуру его использования.

Следующий метод информационного обмена — посредством каналов. Канал (pipe) — это системный объект, позволяющий передавать информацию, как правило, в одном направлении. Наиболее известные примеры каналов — стандартные потоки ввода и вывода (stdin, stdout). Поток вывода одного процесса может быть направлен в поток ввода другого. После этого информация, которая записывается в выходной поток первого процесса, может быть прочитана вторым процессом. Операционные системы позволяют создавать дополнительные каналы. Для работы с каналами используются функции, по синтаксису аналогичные функциям файловых операций.

Осуществить обмен данными можно и с помощью файлов. Современные операционные системы имеют встроенные механизмы буферизации информации, которая участвует в файловых операциях, поэтому такой способ достаточно эффективен. Однако с точки зрения безопасности такой подход уступает описанным выше, поскольку доступ к файлу, используемому для межпроцессного обмена, может получить неавторизованное приложение. Перед применением этого метода нужно обратиться к руководству по реализации файловых операций в конкретной операционной системе и принять меры по защите данных.

Говоря о параллельном выполнении программ, мы предполагали, что работа ведется на компьютере с несколькими процессорами. Однако это не единственная платформа для выполнения параллельных программ. Рассмотрим простейшую вычислительную сеть, состоящую из десяти обычных однопроцессорных компьютеров, объединенных витой парой по технологии FastEthernet. Знакомая система? Что же представляет собой каждый компьютер? Вообще говоря, он является процессором с доступной ему оперативной и дисковой памятью. Каждый представляет собой отличную площадку для выполнения одного процесса. А если на всех десяти ПК одновременно запустить программы, которые решают подзадачи подбора пароля к архиву? Очевидно, что решение задачи потребует гораздо меньше времени, чем на одной-единственной машине. А когда сеть состоит не из десяти, а из ста компьютеров? А если она подключена к Интернету?

В отличие от MPI система разработки и выполнения параллельных программ PVM (Parallel Virtual Machine) создавалась в рамках исследовательского проекта с ориентацией на гетерогенные вычислительные комплексы. Она позволяет объединить разнородный набор компьютеров, связанных сетью, в вычислительный ресурс, который называют параллельной вычислительной машиной. Компьютеры могут иметь различную архитектуру и работать под различными операционными системами. Система PVM представляет собой набор библиотек и утилит, предназначенных для разработки и отладки параллельных программ, а также для управления конфигурацией виртуальной вычислительной машины. Реализована поддержка языков программирования Си/C++ и Фортран. Конфигурация вычислительного комплекса может изменяться динамически путем исключения отдельных узлов и добавления новых. Такая универсальность достигнута, в частности, и за счет некоторого уменьшения производительности по сравнению с системой MPI.

Таким образом, как MPI, так и PVM позволяют с весьма небольшими затратами превратить локальную сеть организации в мощное вычислительное устройство, способное эффективно решать сложные задачи.

Очевидно, что параллельные вычислительные системы — это уже сегодняшний день. Операционные системы предоставляют разработчикам необходимый низкоуровневый сервис, а для решения прикладных задач существуют готовые проверенные средства в форме специализированных утилит и библиотек для популярных языков программирования высокого уровня. И чтобы не остаться за бортом в своей профессиональной сфере, программист должен овладевать методами разработки параллельных программ.

ПРОЦЕССЫ. Запуск процессов в Unix и Windows

Интересно, что в операционных системах Microsoft Windows и Unix (Linux) разработчики по-разному подошли к вопросу запуска дочернего процесса. Для программиста, использующего WIN32 API, все выглядит вполне естест-венно. В точке запуска вспомогательного процесса вызывается функция CreateProcess (), одним из ее аргументов указывается путь к EXE-файлу c программой, которую нужно выполнить.

В Unix-подобных операционных системах это делается иначе. В той точке кода, где необходимо создать новый процесс, используется системный вызов fork (). В результате работающая программа «раздваивается», т. е. осуществляется копирование состояния программы на момент исполнения fork () (под состоянием понимаются значения регистров центрального процессора, стек, область данных и список открытых файлов) и на основе этой копии запускается новый процесс, который владеет той же информацией, что и процесс-родитель. Каждый процесс, родительский и порожденный, продолжает выполнять одну и ту же программу с команды, следующей за системным вызовом fork (). Поскольку выполнение двумя процессами одной и той же работы бессмысленно, возникает вопрос: как реализовать в каждом из получившихся процессов решение своей собственной подзадачи? Дело в том, что результатом выполнения функции fork () с точки зрения родительского процесса является идентификатор процесса порожденного, а в порожденный процесс fork () возвращает просто нулевое значение. По этому коду каждый процесс может идентифицировать себя. А дальше — дело техники. Дочернему процессу остается подготовить среду для выполнения новой программы, с помощью системного вызова exec () загрузить ее код и передать ей управление.

ПРОЦЕССЫ. Пример взаимодействия нитей


Представим себе биллинговую систему оператора сотовой связи на базе мощного многопроцессорного сервера. Не удивительно, если в такой системе списание средств с лицевого счета клиента за предоставленные услуги будет осуществляться одной нитью программы, а зачисление на счет клиентских платежей — другой. Первую операцию можно записать в виде: S:= S — A, где S — сальдо лицевого счета на момент выполнения операции, A — стоимость совершенных телефонных разговоров. Процессор выполнит такую операцию в три этапа: сначала будет получено исходное значение переменной S, затем оно будет уменьшено на величину A, после чего результат будет записан в ячейку S. Аналогично выполняется вторая операция: S:= S + B, где B — сумма внесенных клиентом средств. Допустим, что через некоторое время после оплаты через кассу банка клиент совершит телефонный звонок. Поскольку зачисление клиентских платежей на лицевой счет по ряду объективных причин происходит с некоторой задержкой, нельзя исключать вероятность того, что обе операции — зачисления и списания — практически одновременно начнут выполняться в биллинговой системе. Предположим, что первой выполняется операция списания и с отставанием на один такт за ней идет операция зачисления (см. рисунок). После выполнения трех тактов операции списания текущий баланс счета станет равным S—A, однако четвертый такт изменит это значение на S+B.

В результате окончательное сальдо лицевого счета будет равно S+B вместо правильного значения S-A+B. В другой ситуации такая коллизия могла бы завершиться и не столь оптимистично для клиента. Поэтому во избежание подобных накладок необходимо предпринимать специальные меры по защите отдельных участков программы от одновременного выполнения.

Зачем компьютеру два процессора или две видеокарты. Два лучше одного?

Многие знают о существовании возможности подключить в материнскую плату не одну, а две или даже три и более видеокарты. Опытные пользователи осведомлены, что они не суммируют свою «мощность» и не выдают двойную или тройную производительность, как бы того не хотелось. Но знали ли вы, что существуют материнские платы с поддержкой двух процессоров? Получается, что можно собрать себе два компьютера в одном, получив за цену нескольких недорогих «железок» производительность топовых ПК? Давайте попробуем разобраться в этой статье во всех нюансах подобных систем и определим, для решения каких задач они подойдут лучше всего.

Содержание

Два процессора — что, как, для чего?

Немного истории развития многопроцессорных систем

Зачем компьютеру два процессора или две видеокарты. Два лучше одного?

Любопытный график сравнений производительности использования одного из первых многопроцессорных серверов | itweek

Началось все с того, что Intel разработали новую архитектуру, которую назвали системой симметричной многопроцессорности (SMP). В такой системе процессоры имеют общую память и могут использоваться как для общих задач, так и каждый по отдельности. Важной деталью таких устройств является операционная система, которая должна также являться многопроцессорной, чтобы эффективно распределять задачи по всем активным процессорам. Первым устройством, которое использовало SMP, было Burroughs D825, появившееся на свет в далеком 1962 году. Забегая наперед, могу сказать, что такая система используется и в современных многопроцессорных компьютерах.

Говоря о мультипроцессорных системах, нельзя не сказать и о прямом конкуренте Intel — AMD. Да, немногие знают, но у «красных» также был ответ на SMP. Этот ответ звучал как Athlon MP («MP», собственно, и расшифровывается как MultiProcessor). По сути, это был тот же Athlon XP, но который обладал поддержкой двухпроцессорной конфигурации, использующий протокол MOESI. Этот протокол обеспечивал «общение» процессоров не на уровне системной памяти, а через их кэш-память второго уровня. Компания, скорее всего, так и не нашла должной заинтересованности пользователей в домашнем использовании своих многопроцессорных системах, поэтому сконцентрировалась именно на серверных решениях — AMD Opteron.

Компания Intel, как не трудно догадаться, задумывала многопроцессорные системы именно для серверов, однако они нашли применение и в некоторых особо производительных моделях рабочих станций. Важным витком в истории таких систем является момент, когда Intel добавила поддержку SMP в системы на базе процессоров Pentium, разрешив создание сборок с двумя процессорами, а затем и в Pentium Pro, где уже разрешалось создать компьютер аж с четырьмя ЦП. Но, стоит сказать, что уже в Pentium II разрешено было устанавливать вновь лишь до двух процессоров.

Как и ожидалось, переход в массовый сегмент дал сильный толчок распространению многопроцессорных систем, но вот маркетологам это не особо понравилось, ведь компьютер на двух относительно бюджетных Pentium работал на уровне профессиональных рабочих станций, что сильно било по прибыли компании. После этого наблюдения, Intel отказалась от внедрения SMP в массовый сегмент и оставила ее поддержку лишь в профессиональных и очень дорогих Xeon и Opteron.

Сегодня подобные мультипроцессорные системы используются не только в серверных «монстрах», но и в домашних ПК. Такая популярность появилась не на пустом месте, ведь на том же Aliexpress можно приобрести за небольшую стоимость два хоть и БУ, но Intel Xeon, материнскую плату с двумя сокетами и серверную оперативную память, получив, примерно, за половину стоимости производительность новейших процессоров даже 11-го поколения.

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

Зачем компьютеру два процессора или две видеокарты. Два лучше одного?

Так выглядит результат залипания клавиши М на клавиатуре у главного инженера Asus

В первую очередь, нужно не забывать, что двухпроцессорная сборка изначально задумывалась под использование на производительных серверах, где используются не повседневные блоки питания, корпуса и плашки оперативной памяти, а специальные серверные. Кейс должен поддерживать установку огромной материнской платы формата EATX, реже ATX и EEB. Блок питания должен иметь поддержку двух процессоров, причем стоит учитывать, что его мощность должна быть достаточна для сразу двух Xeon, а оперативная память подходить под технические требования этих ЦП — желательно использовать именно серверную оперативную память. На материнской плате зачастую распаяны целых восемь разъемов под память, и тут важно «равномерно» заполнить оба из них. То есть установить 16 ГБ памяти в один слот и надеяться на то, что будут правильно работать оба процессора — не стоит. Зато некоторые материнские платы поддерживают установку и 2 ТБ памяти.

Кстати, материнские платы для двухпроцессорных систем делятся на два типа: серверные и для рабочих станций. Отличить их можно по звуковым интерфейсам — серверная не имеет звуковых выходов, зато только она имеет встроенное видеоядро. Большим достоинством материнок как первого, так и второго типа является большое количество распаянных разъемов SATA, однако тут же есть и недостаток: разъем под M.2-накопитель вы вряд ли обнаружите на своей плате. Тут же можно обнаружить, что двухсокетные матери имеют множество входов PCIe с довольно высокими пропускными способностями. Также, любопытный нюанс заключается в том, что вы можете использовать и один сокет из двух — это не создаст никаких ошибок или потерь производительно, при том что сохранится возможность со временем «проапгрейдить» систему.

Второй процессор нужно не забывать еще правильно охлаждать — здесь потребуется два кулера, которые должны быть достаточно мощные и небольшие по размеру, ведь они расположены довольно близко друг к другу и могут создавать нежелательный дополнительный нагрев. Идеальным решением для подобной машины будет кастомная система водяного охлаждения, но это уже дорогой, хотя и крайне эффективный, путь для энтузиастов.

Если вы пройдете все этапы сборки такой «машины», то на выходе вы получите действительно мощный ПК. Главная особенность такой сборки будет заключаться в том, что производительность обоих ЦП будет именно суммироваться. Так, если вы установили два процессора по 6 ядер и 12 потоков, то на выходе вы получите именно 12 ядер и 24 потока без какой-либо потери производительности так, как если бы вы использовали один ЦП.

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

Немного истории развития систем, поддерживающих две видеокарты

Зачем компьютеру два процессора или две видеокарты. Два лучше одного?

История развития систем «совмещения» графических процессоров начинается в далеком 1998 году, когда компания 3dfx представила новую технологию — SLI (Scan Line Interleave — сканирование чередования строк), которая уже тогда могла обеспечить совместную работу представленных в то же время чипов Voodoo2. Она была способна «подружить» ГП не просто разных производителей, но и даже разных емкостей видеопамяти. Главной проблемой этой технологии стала ее цена — 600 долларов, а также довольно большие температуры при работе.

Как многие уже знают, в 2001 году Nvidia приобрела компанию 3dfx. Уже через три года был представлен PCI Express, который позволял использовать несколько графических адаптеров, а через год, после появления первых решений на базе новой технологии, Nvidia поспешила заявить о продолжении поддержки технологии SLI, но уже с новой расшифровкой — Scable Link Interface (масштабируемый интерфейс связи). В 2005 году AMD поспешила представить свою технологию, которая должна была составить конкуренцию своему «зеленому» оппоненту. Так, на Computex 2005 была представлена первая версия AMD CrossFireX. В дальнейшем оба производителя особо не изменяли принципов работы своих систем объединения видеокарт. На сегодняшний день AMD поддерживает работу CrossFireX без необходимости соединения видеокарт между собой, а Nvidia перешла на аналог SLI — NVLink Bridge, который обеспечивает более высокую производительность, но поддерживает лишь две видеокарты в одной системе. Для серии GeForce 20 RTX поддержку этой технологии имеют лишь чипы 2070S, 2080 и 2080Ti, а вот в 30-й серии — только 3090.

Как работает SLI и CrossFireX

Рассмотрим несколько существующих алгоритмов построения изображений на нескольких видеокартах для обеих технологий:

    Alternate Frame Rendering — одна видеокарта обрабатывает четные кадры, а другая — нечетные. Но стоит отметить существенный недостаток такого метода: кадры отличаются друг от друга своей сложностью, поэтому может появляться нестабильность в работе, когда одна видеокарта уже закончила обработку, а вторая — еще нет;

Зачем компьютеру два процессора или две видеокарты. Два лучше одного?

Зачем компьютеру два процессора или две видеокарты. Два лучше одного?

Зачем компьютеру два процессора или две видеокарты. Два лучше одного?

Особенности использования SLI и CrossFireX

Зачем компьютеру два процессора или две видеокарты. Два лучше одного?

При возникновении идеи собрать себе ПК с несколькими видеокартами, необходимо еще несколько раз обдумать эту мысль и посчитать расходы. Для того, чтобы воспользоваться одной из технологий, нужно приобрести две одинаковые видеокарты, так как особенность работы SLI и CrossFireX позволяет получить на выходе производительность именно самой слабой карты. Также вам стоит позаботиться не только о том, чтобы в вашей материнской плате были необходимые входы, но и о мощности вашего блока питания, ведь теперь вам нужно снабжать электричеством целых два видеоадаптера. Не стоит забывать также, что видеокарты расположены как «бутерброд» — одна над другой, а это значит, что часть тепла от нижней карты будет переходить на верхнюю, создавая неблагоприятные условия для работы чипов.

Главной проблемой как SLI, так и CrossFireX является производительность полученной системы. Тут не как с двухпроцессорными сборками — мощность суммироваться не будет. Видеопамять в подобных системах используется как общий инструмент обеих видеокарт, поэтому логика, что «две видеокарты по 4 ГБ = 8 ГБ видеопамяти» здесь не работает. Также как и в случае с производительностью: да, чисто в теории, производительность может быть и в два раза выше, но тут встает важный нюанс — поддержку как SLI, так и CrossFireX разработчик должен организовать сам. Как правило, это делают далеко не все девелоперы, ведь доля ПК с двумя и более видеокартами крайне мала.

Зачем компьютеру два процессора или две видеокарты. Два лучше одного?
Зачем компьютеру два процессора или две видеокарты. Два лучше одного?
Зачем компьютеру два процессора или две видеокарты. Два лучше одного?

К слову, несколько видеокарт «в одном ПК» можно повсеместно встретить у майнеров. Но, как вы можете обратить внимание, они никак не соединены между собой. Все дело в том, что для майнинга нет необходимости правильно «отрисовывать кадры» через какие-либо алгоритмы, поэтому видеокарты подключаются просто в материнскую плату, желательно с большим количеством PCI-E портов, и начинают работу полностью друг независимо от друга. То есть, когда одна из видеокарт отказывает — остальные продолжают работу, ведь их ничего не связывает, кроме общей «матери».

Интересная мысль напоследок

Заметили, что Intel ушли со своими мультипроцессорными сборками из сегмента бюджетных решений, а Nvidia и AMD не особо улучшают свои технологии объединения видеокарт, которые застыли в 2005 году? Да, можно возразить, что сейчас вновь становятся популярны «бюджетные» сборки на двух процессорах для дома и игр, однако, если посмотреть, на каких процессорах собираются такие системы, то можно заметить, что это именно Intel Xeon, которые когда-то использовались на китайских серверах с далеких 2012-х годов, а сейчас за бесценок продаются на AliExpress.

Очевидно, что Intel было бы совсем не сложно добавить поддержку двухпроцессорности в свои «гражданские» ЦП по типу i5 или i3, как это было с теми же Pentium, а Nvidia и AMD могли бы развивать SLI и CrossFireX соответственно. Но тогда как бы это отразилось на продажах старших моделей линеек процессоров или видеокарт? Люди бы просто вместо «апгрейда» на новое поколение, либо на более мощные версии текущего, покупали бы на БУ-площадках аналогичные ЦП и ГП, вставляли в компьютер и наслаждались за «смешные» деньги приростом производительности в два раза. Но это слишком невыгодно, поэтому технологии «мультиустройств» доступны либо в самых топовых решениях, таких как 3090 и Intel Xeon, либо же вовсе канут в лету уже в ближайшее время, как это сейчас происходит с CrossFireX.

Довольно часто спрашивают о назначении многопроцессорных серверов. Вопрос, безусловно, интересный и крайне занимательный. Потому в рамках данной статьи расскажу, зачем нужны 2-х и 4-х процессорные серверы.

Многопроцессорные серверы

Главная проблема технической инфраструктуры — компактность. Да, появление многопроцессорных систем обусловлено именно тем, что нужно максимально плотно сформировать IT- структуры организации.

Площади центров обработки данных исчисляются порой десятками тысяч квадратных метров. А теперь представьте в какую сумму обходится содержание такой территории. Если под каждый процессор выделять отдельное устройство, то придётся использовать намного больше техники, что повлечёт за собой необходимость использовать больше помещений.

Выльется это, конечно же, в дополнительные расходы и подорожание услуг. Потому можно смело сказать, что многопроцессорные серверы нужны для сокращения издержек.

Dell PowerEdge R740

Сервер Dell PowerEdge R740, в который можно установить до 2-х процессоров Intel Xeon Scalable

Назначение многопроцессорных серверов

Как ни удивительно, но даже малый и средний бизнес нуждается в мульти процессорных системах, потому основные потребители даже не ЦОД, а обыкновенные компании. Посмотрите практически на любой бизнес. Какие компоненты должны в н ё м хорошо функционировать?

Выделение сотрудникам технических ресурсов для выполнения работы.

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

Общая файловая база, а также сервисы для взаимодействия сотрудников, например, корпоративные чаты.

В общем, придумать можно много чего, лишь бы фантазии хватало и денег на внедрение. Но факт оста ё тся фактом. Многопроцессорные системы получаются более выгодными во многих сферах бизнеса.

Supermicro H8QGi-LN4F

Серверная материнская плата Supermicro H8QGi-LN4F для 4-процессорных систем

Давайте посмотрим на самые наглядные примеры.

Терминальный сервер

Терминальный сервер

Фактически вариант предназначается для создания гостевых рабочих столов. Если руководство желает сократить численность техники и упростить администрирование, то закупаются серверы, на каждом созда ё тся от несколько до парочки десятков гостевых уч ё тных записей и посредством тонкого клиента к устройству да ё тся доступ.

В пределах этого блога писал подробнее о терминальных серверах. Но вкратце технологию обрисую.

На одном устройстве устанавливается операционная система. Для каждого сотрудника на сервере создается уч ё тная запись.

А на рабочее место устанавливается тонкий или толстый клиент, а не персональный компьютер. Отличие тонкого клиента в том, что он сам не имеет вычислительных мощностей для выполнения задач. Всю работу выполняет непосредственно центральный узел в качестве которого выступает сервер . А ТК представляет собой просто средство связи с ним. Вроде монитора и мышки.

Толстый клиент имеет некоторые вычислительные мощности и способен решать часть задач за сч ё т собственных ресурсов, но операционная система вс ё равно находится на сервере.

Такой подход упрощает администрирование и управление технической инфраструктурой. Например, сервер для 1С, который довольно часто покупают у компании Safedec, является распростран ё нным примером терминального сервера.

Фактически всем, кто взаимодействует с программным обеспечением, да ё тся удал ё нный доступ. Все вычисления производятся на самом устройстве.

Во многих случаях на терминальных серверах нужно несколько процессоров, ибо их мощности не хватает чаще всего. Может оказаться, что достаточно оперативной памяти, дисковой, но вот процессорной на большое количество пользователей частенько не хватает.

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

Терминальная структура IT позволяет экономить на технике, ибо вместо покупк и большого количества мощных ПК можно взять несколько мощных серверов, что закроет потребности офиса. Особенно полезно, если высокая производительность нужна не постоянно, а эпизодически.

Виртуализация

Виртуализация

В центрах обработки данных на виртуализации построено практически вс ё . Но даже обычные компании перенимают сей опыт. Особенно IT. Про виртуализацию также рассказывал в пределах данного блога.

Суть проста. На одном устройстве можно создать несколько виртуальных машин, полностью имитирующих физические устройства.

Например, бер ё тся один мощный сервер, а на его основе создается десяток более слабых ВМ. Тут количество ядер играет серь ё зную роль. Часть мощности уходит на обслуживание гипервизора (специальное ПО для формирования виртуальных машин), а другие части распределяются между виртуальными серверами.

К примеру, есть у нас устройство с двумя процессорами по 16 ядер и 256 гигабайтами оперативной памяти, а также пара терабайт дисковой памяти.

На базе такого устройства можно создать 7 виртуальных машин, имитирующих 4-ядерные ПК, каждая из которых будет иметь по 32 ГБ ОЗУ, а также по 250 ГБ дисковой памяти. Учтите, часть ресурсов я оставил для нормальной работы гипервизора и резервного развёрстки другой ВМ в случае необходимости.

Каждая из машин будет полностью имитировать полноценное физическое устройство. Их среды будут изолированы друг от друга. А закрывает сии потребности не 8 ПК, а один сервер.

А ещ ё …

… можно использовать многопроцессорные системы для обработки баз данных, два процессора смогут обрабатывать разные блоки БД, что значительно увеличивает скорость. В общем, сфер применения многопроцессорных систем очень много.

Но главная задача — сделать инфраструктуру компактнее, сократить количество единиц техники, что позволяет легче администрировать и обслуживать зоопарк из оборудования. Так что найти себя многопроцессорные серверы могут во многих сферах деятельности.

Удобнее и эффективнее

Теперь вы знаете, зачем нужны серверы с 2-мя и 4-мя процессорами. Да, такое устройство будет стоить дороже, чем даже несколько хороших и производительных персональных компьютеров.

Но за сч ё т их использования сокращаются издержки на администрирование, количество занимаемой площади, а также улучшаются возможности масштабирования. Так что использование многопроцессорных систем в корпоративном сегменте — предпочтительный вариант.

Сколько стоит хороший игровой компьютер? Стоимость может быть просто космической. Но мы создали пару сборок на основе комплектующих, которые оптимальны на сегодня по соотношению цены и качества.


Собираем игровой компьютер: недорогой, но мощный

Казалось бы, совсем недавно мы не могли себе представить игровой компьютер без дискретной видеокарты. Но появление гибридных процессоров AMD с интегрированной графикой Vega и резкий рост цен на видеокарты невольно заставили пересмотреть наше отношение к игровому ПК. И в сегодняшней статье оказалось представлено фактически две конфигурации. Одна из них рассчитана на пользователей с очень ограниченным бюджетом, а другая — на тех, у кого есть возможность немного переплатить, но сделать свой ПК намного быстрее.

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

Выбираем процессор

  • Intel Core i5-11400F — 17 000 руб.
  • AMD Ryzen 5 3400G — 23 000 руб.

Процессоры Intel всегда были сильны своей однопоточной производительностью, тогда как AMD превосходили их в многопоточных операциях. И именно поэтому многие геймеры часто делали выбор в пользу Intel, а профессионалы предпочитали использовать процессоры AMD. Но в последнее время этот выбор перестал быть настолько очевидным.

Теперь мы скорее руководствуемся возможностью использования встроенной или дискретной графики. Если у вас есть возможность покупки видеокарты, мы рекомендуем присмотреться к Intel Core i5-11400F — на наш взгляд, лучшему игровому процессору среднего уровня.

Если же видеокарта – это слишком дорогое удовольствие, то здесь на помощь придёт AMD Ryzen 5 3400G. Этот процессор стоит на несколько тысяч рублей больше Core i5-11400F, но он оснащается достаточно быстрой встроенной графикой, способной потянуть даже чрезвычайно «тяжёлые» ААА-тайтлы. Есть у него и возможность разгона, которой лишен Core i5-11400F.

Альтернативой Intel Core i5-11400F может стать Core i5-11400. Этот процессор отличается от модели с литерой «F» лишь наличием встроенной графикой и чуть более высоким ценником. Но iGPU процессора проигрывает графике Ryzen 5 3400G по всем статьям и вряд ли может рассматриваться в качестве полноценной замены дискретной видеокарты.

Нужна ли вам дискретная видеокарта или достаточно встроенной графики?

Выбираем материнскую плату

  • ASRock B560 Pro4 — 10000 руб.
  • GIGABYTE B450M DS3H V2 — 6000 руб.

Выбор материнской платы напрямую зависит от того, какой процессор вы решите использовать. Если вы остановились на Intel Core i5-11400F, то мы рекомендуем системную плату ASRock B560 Pro4 на чипсете B560.

В случае с AMD Ryzen 5 3400G стоит присмотреться к намного более дешёвой GIGABYTE B450M DS3H V2.

Intel Core i5-11400F не имеет возможности разгона, поэтому переплачивать за эту опцию при покупке материнской платы абсолютно бессмысленно. Однако, несмотря на отсутствие возможности разгона, ASRock B560 Pro4 оснащается дополнительными радиатором, тремя портами M.2 и четырьмя слотами для оперативной памяти.

Что до GIGABYTE B450M DS3H V2, то здесь есть и отличный разгонный потенциал памяти и процессора, и слот PCIe 4, и четыре слота оперативки, и даже радиатор на мосфетах VRM. Это очень впечатляющий набор для системной платы стоимостью чуть дороже 5000 рублей, открывающий море возможностей для разгона и модернизации ПК.

Выбираем оперативную память

  • HyperX Fury 8GB (4GBx2) 2400MHz CL15 — 4000 руб.

При покупке любой оперативной памяти всегда старайтесь делать выбор в пользу комплектов ОЗУ, гарантированно способных работать в 2-канальном режиме. Это особенно важно, когда речь идёт о встроенной графике. В нашем случае мы рекомендуем использовать оперативную память HyperX Fury 8GB (4GBx2) 2400MHz CL15.

С одной стороны, это компромиссное решение — многим играм может не хватить 8 Гбайт оперативки. Но не забывайте, что в вашей материнской плате предусмотрено четыре слота ОЗУ, и в будущем вы сможете, как минимум, удвоить её объём. Что до предложенного нами набора, то он работает на штатной частоте 2400 МГц, но при желании вполне может быть разогнан до 3200 МГц. Для нашей сборки этого вполне достаточно, а цена комплекта весьма демократична — всего 3 720 рублей.

Выбираем корпус для компьютера

Компьютерные корпуса уже давно перестали быть скучными металлическими ящиками для хранения комплектующих. Сейчас можно найти многофункциональные решения с интересным дизайном по доступной цене. Одно из них – это корпус Zalman S2 Black, который собрал кучу положительных отзывов.

Большой спрос на данную модель обусловлен её потрясающими характеристиками. Это вместительный корпус, позволяющий устанавливать процессорный кулер высотой до 156 мм и видеокарту длиной до 330 мм. На задней стенке корпуса предусмотрен штатный вентилятор, есть в нём и 5 дополнительных посадочных мест под вертушки. В корпусе подразумевается нижнее крепление для блока питания, а внутри поместится 5 носителей информации. Достойные показатели за адекватную цену.

Выбираем блок питания

Для нашей сборки будет достаточно даже БП на 400 Вт, однако мы предпочитаем брать всё с небольшим запасом. Неизвестно, каким образом захочется проапгрейдить компьютер в будущем, а так будет простор для выбора. Поэтому мы остановились на блоке в 600 Вт. Этого хватит, даже если перейти на видеокарту и процессор из премиального сегмента.

Компания Cougar давно зарекомендовала себя на рынке, ведь они делают годные блоки. За 3700 рублей мы получаем полноценные 600 Вт и сертификацию 80 PLUS Bronze. Также имеются всевозможные защиты от перегрузки и короткого замыкания. 6 коннекторов формата 15-pin SATA позволят запитать все накопители, которые вмещает в себя вышеописанный корпус.

Выбираем накопители

  • Silicon Power P34A80 256 Гбайт — 4000 руб.
  • Western Digital WD10EZEX 1 Тбайт — 3000 руб.

Любой современный компьютер предусматривает необходимость использования твердотельного накопителя для системного раздела и жёсткого диска для хранения нетребовательной к скорости доступа информации. Конечно, при условии, что вы не хотите тратить деньги на SSD гигантской ёмкости.

В качестве системного SSD мы рекомендуем использовать достаточно недорогой, но весьма производительный Silicon Power P34A80. При цене в 3 669 рублей за накопитель объёмом 256 Гбайт он предлагает впечатляющую скорость последовательного доступа до 3400 Мбайт/с. Этого с запасом хватит для того, чтобы ПК загружался буквально за секунды, а операционная система летала.

SSD — это замечательно. Это быстро и удобно. Но любой геймер сталкивается с необходимостью хранения сотен гигабайт игр. Использовать для этого твердотельный накопитель слишком расточительно, да и бессмысленно — вы не получите особого преимущества в скорости работы игры. Поэтому вам вряд ли удастся обойтись без жесткого диска. Мы не стали экспериментировать с выбором HDD, поэтому предлагаем проверенную временем модель на 1 Тбайт Western Digital WD10EZEX стоимостью около 3 000 рублей. Этот диск имеет высокую скорость вращения шпинделя, а значит и операции чтения и записи на нем будут выполняться быстрее стандартных 5400 rpm.

Выбираем видеокарту

Видеокарта стала самым болезненным выбором при сборке игрового компьютера. Популярность майнинга привела к резкому росту стоимости видеокарт, и хотя в последнее время ситуация на рынке немного стабилизируется, их стоимость всё ещё остаётся очень далека от адекватной.

Именно поэтому одна из предложенных нами сборок предусматривает возможность использования APU с достаточно быстрой интегрированной графикой. Если же вы сделали выбор в пользу Intel Core i5-11400F, то вам не обойтись без видеокарты. В выбранном нами ценовом диапазоне просто нет видеокарт с трассировкой лучей, а наиболее адекватным из имеющихся вариантов выглядит модель ASUS GeForce GTX 1650 SUPER стоимостью около 30 000 рублей. Как вариант - ASUS TUF GeForce GTX 1650 GAMING OC 4GB примерно за те же деньги.

ASUS GeForce GTX 1650 SUPER - недорогая видеокарта, заметно превосходящая предшественников и не так уж сильно отстающая от на 20 000 рублей более дорогой GeForce GTX 1660 SUPER. Именно она, на наш взгляд обладает лучшим соотношением цена/возможности в ценовом диапазоне до 40 000 рублей.

Какая и насколько круче — сравнение видеокарт Radeon RX 6600 XT и Radeon RX 6700 XT в актуальных играх в разрешении 2K

Итого: стоимость сборки игрового ПК

Рыночная ситуация вынудила нас предложить сразу две ПК-сборки. Одна из них ориентирована на HD-гейминг и обойдется вам примерно в 45 000 рублей, а другая оптимальна для игры в Full HD разрешении со средними настройками графики. Разница в их возможностях, в первую очередь, связана с дискретной видеокартой, которая уже давно стала чуть ли не предметом роскоши.

Хотя справедливости ради стоит отметить и третий вариант сборки ПК для оптимистов, рассчитывающих на скорое снижение стоимости видеокарт. Таким пользователям стоит установить в компьютер процессор Intel Core i5-11400. Потенциала его встроенной графики недостаточно для полноценного гейминга, но его вполне хватит на роль заглушки «до лучших времен».

Сборка № 1 (дискретная видеокарта)

  • Корпус Zalman S3 Black: 3000
  • Материнская плата ASRock B560 Pro4: 10000
  • Процессор Intel Core i5-11400F: 17 000
  • Оперативная память HyperX Fury HX424C15FB3K2/8: 4000
  • Жёсткий диск: Western Digital WD10EZEX: 3000
  • SSD накопитель Silicon Power P34A80: 4000
  • Видеокарта ASUS GeForce GTX 1650 SUPER: 30 000
  • Блок питания COUGAR VTE600 600W: 4000

Итого: 75 000 руб.

Сборка № 2 (встроенная графика)

  • Корпус Zalman S3 Black: 3000
  • Материнская плата GIGABYTE B450M DS3H V2: 6000
  • Процессор AMD Ryzen 5 3400G: 23 000
  • Оперативная память HyperX Fury HX424C15FB3K2/8: 4000
  • Жёсткий диск: Western Digital WD10EZEX: 3000
  • SSD накопитель Silicon Power P34A80: 4000
  • Блок питания COUGAR VTE600 600W: 4000

Итого: 47 000 руб.

Не спорим, за копейки игровой компьютер собрать не удастся. Кстати, может быть у вас есть свои рекомендации? Пишите о них в комментариях.

А у нас есть еще и другие полезные материалы для любителей самостоятельных сборок. Например, топ-5 быстрых NVMe-накопителей или обзор карт NVIDIA 2021 года.

Читайте также: