Выбираем компьютер для программиста
Как выбрать то, что действительно нужно.
Нужен ли мощный компьютер, чтобы кодить? Подойдёт ли ваш домашний компьютер? Вот об этом сейчас поговорим.
Сисадмины, остыньте. В мире есть категория людей, которые сами собирают компьютеры, знают наизусть модели процессоров и могут по запаху отличить хорошую термопасту от плохой. Ребята, эта статья не для вас.
Какие нужны параметры
Для программирования нужно немного: по сути это написание текста. Компиляция или исполнение кода по современным меркам тоже не особо ресурсоёмкая задача. Поэтому для кодинга подойдёт почти любой компьютер.
Есть лишь три сценария, когда вам потребуется мощный компьютер:
Средний компьютер для кодинга в 2020 году
Процессор. Может быть фирмы Intel или AMD. Если Intel, то подойдёт что угодно, начиная с Core i5. Всё, что ниже, может не очень быстро работать на современных операционных системах (что не помешает работать на них медленно).
Жёсткий диск. Есть два варианта: обычный HDD (очень много места, но медленный) или SSD (поменьше места, но в тысячу раз быстрее). Если есть возможность, лучше выбирать компьютер с SSD. Минимальный объём — 128 гигабайт, этого хватит для операционной системы, среды разработки и ещё останется место для своих проектов.
Экзотика и минимализм: Raspberry Pi
Raspberry Pi — это одноплатный компьютер: на платке размером с кредитную карту стоят порты, процессор и память. Подключаете к этому клавиатуру, мышь и монитор — и у вас есть компьютер. Стоит такая плата 30–100 долларов.
Особенность в том, что в нём будет операционная система «Линукс». Но для неё есть программы для разработки на любом языке, а также необходимый минимум браузеров и офисных приложений.
На Raspberry Pi будет сложно писать приложения для Айфонов или код для Windows, но всё остальное — вполне реально. Заодно прокачаетесь в настройке «Линукса».
На Pi можно сделать не слишком мощный, но рабочий сервер.
На момент написания статьи самое последнее поколение Raspberry Pi — четвёртое. Поддерживает два экрана!
Ближе к реальности: неттопы и мини-ПК
Это выбор для тех, кто любит экономить место и предпочитает всё компактное. У таких компьютеров скорость сопоставима с ноутбуком, но для работы им нужна внешняя клавиатура, мышь, монитор и блок питания.
У Intel есть линейка NUC: на них спокойно работает Windows 10, можно использовать как полноценный офисный компьютер. Обратите внимание, что NUC обычно поставляется без диска и оперативной памяти, их придётся докупать. Зато NUC маленький.
Если вы фанат Apple, то на вас смотрит Mac mini. Из хорошего — он симпатичен. Из плохого — последние модели очень трудно обновлять. Если через пару лет вы захотите увеличить на них память, скорее всего, не выйдет.

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

Поставил и забыл: просто системник
Любой системный блок за 30 тысяч — но лучше берите не готовый, а попросите опытного друга собрать компьютер с нуля.
Подойдёт тем, у кого есть стационарное рабочее место и кто не любит частые переезды. Отдельный плюс — повышенная ремонтопригодность и возможности для обновления. Дело в том, что всё содержимое системного блока легко достать и заменить одни детали на другие. Нужно больше памяти? Добавляем. Не хватает места для файлов? Снимаем крышку и вставляем рядом второй жёсткий диск. В ноутбуке так не получится, в лучшем случае можно заменить диск. Если очень повезёт — ещё и память.
К системнику нужна клавиатура, мышь и монитор. И это можно считать плюсом, а можно и минусом: с одной стороны, всё можно выбрать под свои задачи. С другой — всё стоит дополнительных денег.

Просто возьми мои деньги

Если у вас безграничный бюджет и просто хочется получить самое мощное железо для любых задач, берите системный блок с самым топовым железом, какое только будет доступно. А если вы поспорили с другом, кто быстрее потратит миллион долларов, то берите самый навороченный Mac Pro: он не только довольно мощный, но и в несколько раз дороже, чем та же конфигурация на ПК.
Для программ на JavaScript, Python или PHP такое железо не нужно. Но если вы хотите программировать физику в трёхмерном движке или обучать нейросети на огромном массиве данных — берите и работайте.
Фотошоп на нём будет тормозить в любом случае.
Можно ли кодить на планшете?
Писать код на планшете можно, если для этого планшета есть среда разработки и исполнения кода на нужном вам языке. Например, среда Python есть как для Айпада, так и для планшетов на Андроиде.
Могут быть проблемы с доступом к файловой системе, хранением проектов, их экспортом или компиляцией. Но эти проблемы решаемые, если есть какой-то большой компьютер (ноутбук или настольный). Как подменная машина для временной работы планшет вполне подойдёт. Главное — внешняя клавиатура.
Какой процессор лучше для инженеров и программистов?
В обывательской среде можно услышать две противоположные точки зрения:
Каждому свое
Удивительно, но правы как те, так и другие. Как и в большинстве случаев, нужно исходить из конкретных потребностей программиста и инженера.
Современные процессоры используют элементы различных типов архитектурных решений, потому выбор оптимального варианта может оказаться весьма непростым.

Чуши понаписали и рады.
> Каждый программист, вероятно, мечтает купить восьмиядерный процессор, но не каждый сможет программировать для 8 ядерного процессора.
Чем многопоточное программирование для восьмиядерного процессора отличается от программирования для, скажем, четырехядерного?
> С другой стороны, восьмиядерный вариант позволит выполнять одновременно большое количество задач. Например, писать один кусок код и параллельно компилировать другой.
То есть в случае с тем же Core2Duo я не могу одновременно пользоваться редактором и компилятором (а еще ведь окружение рабочего стола, браузер, демоны – ужоснахкакжетак). Как компилировать код кусками, я тоже не понял.
> Имеет ли смысл переплачивать за «навороченный» процессор, если планируется писать несложные прикладные утилиты?
Нельзя писать “сложные неприкладные утилиты” на машине меньше чем с восемью ядрами и 16Гб памяти?
Аффтар жжот напалмом, в общем.

Согласен, автор жжет. Но автор – не я. Публикация – рекламная, прислали на размещение.
А оскорбление в личке – это вы зря.

Владислав, как раз ваш комментарий и выдает в вас ламера:
если человек не умеет в многопоточность, то ему пофиг сколько ядер при исполнении программы.
компилировать отдельные модули – стандартная практика у программистов.
несколько ядер позволяют компилировать в несколько потоков в фоновом режиме, не заставляя тормозить остальные запущенные приложения.

2 Ярослав:
Давай разберем по пунктам тобою написанное:
> если человек не умеет в многопоточность, то ему пофиг сколько ядер при исполнении программы.
Где я утверждал обратное?
> компилировать отдельные модули – стандартная практика у программистов. несколько ядер позволяют компилировать в несколько потоков в фоновом режиме, не заставляя тормозить остальные запущенные приложения.
И снова – как это соотносится с написанным? Зачем ты рассказываешь мне очевидные вещи с таким апломбом?
Все, что ты тут высрал, абсолютно не относится к тому, что было написано.
Какой компьютер выбрать для программирования
В этой статье вы прочитаете какой компьютер выбрать для программирования, для разных сфер программирования, да и вообще IT специалисту.
В основном тут будет показываться только какой нужен процессор, видео карта и монитор, потому что с оперативной и постоянной памятью, думаю и так всё понятно, нужно минимум 8Гб ОЗУ а постоянной в идеале больше 1Тб и SSD или хотя бы 256Гб это минимум.
Компьютер для Web-разработки:
Компьютере для web разработки не должен быть какой то супер производительный, сейчас об этом подробнее.
Процессор:
Для Web-разработки самое важное это процессор, а точнее его производительность на ядро, потому что, программы которые используют для создания сайтов, это обычно всякие текстовые редакторы или IDE, а они используют только одно ядро.
Поэтому вам нужен процессор от 3Гц, например, Intel Core i5-9600KF или AMD Ryzen 5 3500, вполне себе подойдут.
Видеокарта:
Видео карту можете вообще покупать любую, это не имеет значение, даже, если не хотите тратить деньги на неё, то просто купите процессор с дискретной видео картой.
Монитор:
Монитор в принципе можете покупать любой, но есть, одно но.
Если вы back-end разработчик, то тогда не имеет значение какой вы монитор купите, главное что бы вам был удобен, но если вы front-end разработчик, то порекомендую вам покупать от 20 дюймов экран, так как, вам надо будет верстать сайты и для этого нужно видеть его дизайн на больших экранах.
Компьютер для мобильной разработки:
Тут в целом подойдёт почти точно такой же компьютер как и в случае с Web разработкой, только монитор можно вообще любой, без не всяких но.
Кстати, такой же компьютер, который будет описан в этом разделе подойдёт и для разработки обычных настольных приложений.
Процессор:
Видеокарта:
Видеокарта особо не нужна, поэтому просто купите процессор с встроенным видео ядром, если вам конечно больше нечего кроме мобильной разработки не нужно.
Монитор:
Монитор тоже любой, так как, вы всё равно будите тестировать приложения в эмуляторе Android, и там будет размер окна как на обычном смартфоне.
Компьютер для разработки игр:
Тут уже всё гораздо интереснее, чем в предыдущих разделах этой статьи, но об это чуть ниже.
Процессор:
Процессор вам уже нужен как можно мощнее, и желательно иметь хотя бы два ядра, а ещё лучше четыре, также подойдёт и шесть, но это как показывают наблюдения, излишни, так как не все игровые движки работают с шестью ядрами, поэтому оптимально четыре.
Поэтому купите процессор, например, Intel Core i7-7700, хотя он достаточно дорогой, поэтому ещё как вариант есть, Intel Core i5-9600KF, о котором говорили выше.
Также стоит сказать, что лучше не покупать процессоры от AMD, так как, движки ещё плохо оптимизированы под эти процессоры, а это значит, что скорее всего, работать будет не комфортно и игра которая вы сделаете, у вас будет использовать не весь потенциал.
Видеокарта:
Видеокарта, как можно понять, нужна тоже достаточна мощная, особенное, если вы хотите разрабатывать, какие то очень крутые, на подобии GTA, или Need For Speed.
Вам подойдёт, хотя бы Radeon RX 570, это наверное минимум который пригодится, в идеале, конечно купить какой нибудь RTX 2080, но это только если у вас есть деньги.
Монитор:
Монитор желательно покупать по больше, опять же, начиная с 20 дюймов, больше тут особо не чего сказать.
Компьютер для разработки нейросетей:
На по следок, разберу, какой ПК нужен для разработки нейросетей, тут на самом деле всё просто, так как нужен точно такой же компьютер, как и для разработки игр, так как, нейросети обычно используют именно мощности видеокарты, а не процессора, единственное, можно на мониторе не много сэкономить, и купить 18 дюймовый, например.
Вывод:
В этой статье мы разобрали, какой компьютер выбрать для программирования, и для разных направлений программирования.
Надеюсь было интересно, но если вам не хватает какой то информации, то пишите комментарии, тогда отвечу на вопрос там или дополню эту статью.
Intel vs AMD: сравнительные тесты
Мы регулярно публикуем статьи о новых процессорах компании Intel, которая в течение многих лет остаётся лидером на рынке серверных решений. Однако в последнее время ситуация меняется: другие игроки активно заявляют о себе. В марте этого года компания AMD выпустила процессоры серии EPYC, о которых появляются интересные и в целом положительные отзывы (например, статья на сайте Anandtech). Но лучше один раз увидеть и потрогать руками, чем читать сотни статей в специализированных журналах и в Интернете.
Впрочем, заслуживающих внимания статей было не так уже и много. Более того, компания AMD с самого момента появления процессоров не публиковала почти никаких технических и маркетинговых материалов: на текущий момент они исчерпываются статьей AMD EPYC SoC Sets 4 World Records on SPEC CPU Benchmarks, которая имеет скорее маркетинговый, чем технический характер.
Возможность всё попробовать самим нам представилась: недавно коллеги из компании ASUS предоставили нам для тестирования сервер на базе процессора AMD EPYC 7351. Мы решили сравнить его с процессорами линейки Intel Skylake SP и провести тесты производительности. Результаты тестирования и их детальный анализ приводятся ниже.
Несколько замечаний о методике тестирования
При выборе методики мы руководствуемся в первую очередь принципом практической полезности. Здесь наша точка зрения совпадает с позицией авторов статьи Методика тестирования производительности компьютерных систем образца 2011 года (версия 5.0): во время тестов должны выполняться задачи, максимально приближенные к тем, для решения которых сервер будет использоваться на практике.
Синтетические тесты сведены к необходимому минимуму: мы проводим их исключительно для того, чтобы получить общее представление о возможностях процессорах (которое в ходе дальнейших экспериментов может быть скорректировано) и сравнить наши результаты с опубликованными в специализированной прессе и Интернете. Гораздо больший интерес для нас представляют задачи, которые в повседневной практике решаем мы и наши потенциальные пользователи: например, обработка больших объёмов данных, компиляция сложного ПО, работа с СУБД под большой нагрузкой и другие.
В рамках эксперимента, о котором пойдёт речь ниже, были проведены следующие тесты:
Общие технические характеристики
В нашем тесте были задействованы три сервера:
В таблице ниже представлены подробные технические характеристики всех процессоров:
| Характеристика | Intel Xeon Silver 4114 | Intel Xeon Gold 6140 | AMD Epyc 7310 |
|---|---|---|---|
| Технологический процесс | 14 нм | 14 нм | 14 нм |
| Количество ядер | 10 | 18 | 16 |
| Количество потоков | 20 | 36 | 32 |
| Базовая частота | 2,20 ГГц | 2,30 ГГц | 2,40 ГГц |
| Максимальная частота Turbo | 3,00 ГГц | 3,70 ГГц | 2,90 ГГц |
| Кэш L3 | 13,75 МБ | 24,75 МБ | 64 МБ |
| TDP (thermal design power) | 85 Вт | 140 Вт | 155/170 Вт |
Микроархитектура Zen: краткая справка
Процессоры AMD Epyc построены на базе микроархитектуры Zen, которая впервые была представлена в начале этого года (если точнее — 2 марта). Она используется не только в серверных, но и в десктопных решениях (процессоры AMD Ryzen). Как и в процессорах Ryzen, в Epyc используются восьмиядерные кристаллы, которые состоят из двух модулей CCX. CCX — это сокращение от Core Complex. Так в AMD называется модуль из четырёх процессорных ядер с общим кэшем третьего уровня.
Как видно из таблицы выше, у процессоров AMD Epyc 16 ядер. Технически это реализовано так: два восьмиядерных кристалла соединены при помощи шины Infinity Fabric. Они имеют общий контроллер памяти и общий хаб PCI Express.
Подробно описывать особенности микроархитектуры Zen мы не будем, тем более, что в Интернете уже представлено немало обстоятельных публикаций на эту тему (рекомендуем, например, статью AMD Zen Microarchitecture: Dual Schedulers, Micro-Op Cache and Memory Hierarchy Revealed). Остановимся лишь на наиболее значительных улучшениях, в числе которых стоит выделить следующие:
Слабым местом процессоров AMD в сравнении с Intel долгое время считалась энергоэффективность. При создании линейки EPYC была проделана большая работа по устранению соответствующих недостатков. Для улучшения энергоэффективности и снижения энергопотребления были в AMD EPYC используются новые технологии, в том числе динамическое изменения частоты и напряжения в зависимости от температуры и загрузки процессорных ядер.
С помощью используемых алгоритмов энергоэффективности можно распознать, чувствительна ли к задержкам текущая загрузка, и при необходимости снизить частоту ядра для оптимизации производительности на ватт потребления энергии. Также в процессорах Epyc реализована функция линейного регулирования питания отдельно по ядрам. Каждое ядро может работать с собственной частотой и напряжением, если это обусловлено загрузкой и другими факторами.
Взгляд в общих чертах: базовые синтетические тесты
Тесты Geekbench
После разбора теоретических моментов самое время приступить к тестам и анализам их результатов. Для начала мы решили посмотреть, какие результаты покажет процессор AMD EPYC 7351 при выполнении самых распространённых синтетических тестов. О нашем отношении к синтетическим тестам мы уже сказали выше: мы используем их исключительно в качестве отправной точки для размышлений и выдвижения гипотез, и не более.
Мы выбрали Geekbench — это комплект синтетических тестов, по результатам выполнения которых начисляются баллы и создаётся очень подробная и наглядная диаграмма. Собственные результаты можно загрузить на сайт и сравнить с результатами, полученными другими пользователями.
Полный перечень тестов, включенных в комплект, приводится в официальной документации. И хотя Geekbench имеет репутацию теста, предназначенного в первую очередь для десктопных компьютеров, он включает неплохой набор стандартных серверных бенчмарков.
Сначала мы запустили Geekbench на двух серверах: с AMD EPYC и c Intel Xeon Gold 6114.
Были получены следующие результаты:
Пропускная способность памяти: бенчмарк STREAM
Микроархитектура процессоров Intel и AMD существенно отличается. В этой связи было бы интересно посмотреть, как задействованные в нашем тесте процессоры работают с подсистемой памяти. Для этого мы воспользовались известным бенчмарком STREAM.
Это синтетический тест, в ходе которого измеряется пропускная способность при работе с установившимися массивами данных. С более подробным описанием этого бенчмарка можно ознакомиться в статье Джона МакАлпина. Если говорить кратко, STREAM — это довольно простая программа на C, выполняющая векторную операцию вида a(i) = b(i) + q*c(i), тип данных double (64 bit), q — константа. Используется в тестах для оценки производительности суперкомпьютеров (например, в HPC Challenge Benchmark).
В нашем случае была ещё одна сложность: конфигурации серверов были не совсем равноценными. У AMD больше каналов памяти — 8, чем у процессоров Intel (по 6 каналов у каждого).
Тем не менее, мы тест провели, и результаты получились весьма любопытные. В целом они совпадают с теми, что получили авторы процитированной выше статье на Anandtech. Хотя эксперимент мы проводили по-другому: для сборки программы из исходного кода мы пользовались стандартным компилятором gcc (и при этом не выставляли никаких дополнительных флагов), а не компилятором Intel.
По итогам результаты распределились следующим образом (ГБ/с, чем больше — тем лучше):
Как видим, процессор AMD лидирует со значительным опережением (об этом пишет и производитель в недавно опубликованных маркетинговых материалов — например, в статье AMD EPYC SoC Delivers Exceptional Results on the STREAM Benchmark on 2P Servers).
Впрочем, не будем торопиться с выводам: высокие результаты синтетических тестов свидетельствуют о реальной производительности очень косвенно. Посмотрим, как наши процессоры справляются с задачами, более или менее приближенными к реальной практике.
Сборка Boost
Для оценки производительности очень хорошо запустить на сервере сборку чего-нибудь сложного и ресурсоёмкого. Мы собираем набор библиотек C++ Boost: скачиваем архив с исходниками последней версии с официального сайта (на сегодняшний день это версия 1.65.1), распаковываем и запускаем сборку (всё строго по инструкции, без изменения настроек и выставления дополнительных флагов компилятора).
Результаты получаются следующие:
Бенчмарк NAMD
NAMD (Nanoscale Molecular Dynamics) — программа для молекулярной динамики, которая используется не только для научных расчётов, но и в качестве бенчмарка для оценки производительности вычислений с плавающей точкой. Бенчмарки NAMD хороши, во-первых, тем, что они основаны на вычислительных задачах, приближенных к реальным, а во-вторых — тем, что создают хорошую нагрузку на процессор.
Для тестов мы использовали скомпилированные бинарные файлы, размещённые на сайте Университета Иллинойса. Там же можно найти конфигурационные файлы для бенчмарков.
Были проведены два стандартных теста: STMV и APOA1. Так как у всех задействованных в тесте процессоров разное количество ядер, мы ограничили выполнение теста 40 потоками (по потоку на ядро).
Помимо трёх упомянутых выше серверов, в этом тесте был также задействован сервер c процессором Intel Xeon E5 2630v4.
Первый тест, который мы провели, называется STMV (сокращение от Satellite Tobacco Mosaic Virus — табачный мозаичный вирус-сателлит). Расписывать подробности вычислений мы не будем (заинтересованные читатели всё найдут по ссылке выше). Отметим только, что для моделирования динамики этого самого вируса программе нужно проделать сложные расчёты на основании достаточно увесистого набора данных. Обработка больших данных — это как раз один из типичных сценариев использования современных серверных процессоров, поэтому результат бенчмарка NAMD представляет интерес.
При оценке и анализе результатов мы обратим внимания в первую очередь на время выполнения теста. Полученные результаты представлены на следующей диаграмме:
В лидеры, как и следует ожидать, вырывается Intel Xeon Gold На втором — AMD EPYC (224.000992 с). Далее идут Intel Xeon Silver (250.966705) и Intel Xeon E5 2630v4 (262.287109 c).
Следующий тест — это APOA1 (Apoleprotein A1), стандартный бенчмарк NAMD. Здесь результаты распределились следующим образом:
AMD Epyc в очередной раз показал себя вполне предсказуемо, обойдя Intel Xeon Silver, но уступив Intel Xeon Gold.
Заключение
По результатам тестов мы можем заключить, что процессор AMD EPYC 7351 показывает в целом хорошую производительность и по результатам тестов занимает место между Intel Xeon Silver и Intel Xeon Gold. Компания AMD уже не в первый раз пытается занять собственную нишу на рынке. Насколько удачными будут эти попытки — покажет время.
Что можно сказать о новых процессорах Intel и AMD с точки зрения соотношения «цена — качество»?
Рекомендуемая цена для AMD EPYC 7351 — 1100 долларов (информация из статьи In the Epyc center: More Zen server CPU specs, prices sneak out of AMD), и это гораздо дешевле, чем большинство процессоров линейки Intel Xeon Gold (например, рекомендуемые цены). При этом указанная сумма вполне сопоставима со стоимостью «старших» моделей Xeon Silver (например, Xeon Silver 4116, для которого рекомендуемая цена составляет 1000 долларов).
На фоне Silver AMD EPYC выглядят вполне конкурентоспособно: результаты как наших, так и сторонних бенчмарков (например, Intel Xeon Silver 4116 Linux Benchmarks and Review of the Top-End Xeon Silver и Dissecting Intel’s EPYC Benchmarks: Performance Through the Lens of Competitive Analysis), показывают, что по целому ряду тестов процессоры AMD лидируют.
Мы вполне согласны с авторами процитированный выше статьи на Anandtech, что для некоторых вариантов использования (например, в качестве веб-сервера или в качестве сервера приложений Java) серверы на базе AMD EPYC вполне можно рекомендовать.
Вместе с тем для более специализированных задач (например, для высокопроизводительных вычислений или виртуализации) процессоры Intel пока что более предпочтительны (см. размышления на эту тему в статье Dissecting Intel’s EPYC Benchmarks: Performance Through the Lens of Competitive Analysis).
За ситуацией на рынке процессоров мы будем внимательно следить. Надеемся, что нам в ближайшее время удастся познакомиться и с другим процессорами AMD и провести тесты, приближенные к интересным и актуальным для нас вариантам использования. Если всё получится, мы обязательно расскажем об этом в следующих публикациях.
Выражаем благодарность компании ASUS за предоставленный сервер





