Од­нажды мне понадо­бил­ся компь­ютер для кван­тово‑химичес­ких рас­четов, и я пос­тавил перед собой цель самос­тоятель­но соб­рать машину, которая впи­салась бы в бюд­жет 100–150 тысяч руб­лей. Одна­ко этот компь­ютер неп­лохо под­ходит и для дру­гих задач, поэто­му ради экспе­римен­та поп­робу­ем поб­рутить на нем хеши.

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

 

На чем сейчас считают

Спе­циаль­но для науч­ных вычис­лений соз­даны супер­компь­юте­ры, нап­ример супер­компь­ютер Кур­чатов­ско­го инсти­тута или «Ломоно­сов-2» в МГУ. Под рас­четы обыч­но выделя­ют одну ноду, и это в целом весь­ма недур­ной вари­ант. Но тут есть и свои нюан­сы, ска­жем при­вяз­ка к опре­делен­ному соф­ту и некото­рые адми­нис­тра­тив­ные момен­ты. С дру­гой сто­роны, и плюс солид­ный — не надо нас­тра­ивать сре­ду.

Мно­гие исполь­зуют свои вычис­литель­ные мощ­ности, и тут мож­но встре­тить целый зоопарк раз­нооб­разных устрой­ств. Обыч­но это что‑то напоми­нающее ноду супер­компь­юте­ра, то есть одно- или двух­про­цес­сорная сис­тема с кам­нями типа E5 2680v3/v4 и памятью от 64 Гбайт. Иног­да попада­ется старье типа Xeon X5650, но это уже пережи­ток прош­лого. Впро­чем, уче­ные дос­таточ­но кон­серва­тив­ны, поэто­му обо­рудо­вание час­то слу­жит десят­ки лет. Прав­да, с компь­юте­рами этот фокус обыч­но не про­ходит.

В «бытовом» сег­менте нес­коль­ко лет назад очень кру­то смот­релся AMD Ryzen Threadripper 3970x и стар­шие модели в связ­ке с 256 Гбайт DDR4 3200. Впро­чем, этот про­цес­сор и сей­час выг­лядит неп­лохо, как говорит­ся — дорого‑богато. Так­же опре­делен­ной популяр­ностью поль­зуют­ся AMD Ryzen 9 5950X, Intel i9-12900k и млад­шие модели, в обо­их слу­чаях компь­ютер осна­щают 64 Гбайт опе­ратив­ки. Но у бытовых решений есть одна неп­рият­ная проб­лема: подоб­ные про­цес­соры не рас­счи­таны на высокую круг­лосуточ­ную наг­рузку. Нап­ример, я слы­шал нес­коль­ко печаль­ных исто­рий о смер­ти от перег­рева неудач­но соб­ранно­го дес­кто­па на Threadripper. Комп помер на вто­рые сут­ки, при­чина — сла­бая сис­тема охлажде­ния.

Вто­рая проб­лема бытовых про­цев — малый объ­ем под­держи­ваемой памяти, тут раз­ве что Threadripper поз­воля­ет раз­гулять­ся, осо­бен­но стар­шие модели, а для про­чих потолок обыч­но сос­тавля­ет 64 Гбайт. В прин­ципе, такого объ­ема хва­тает прак­тичес­ки на все задачи, но в уме при­ходит­ся дер­жать, что методы типа DLPNO-CCSD(T) или STEOM-DLPNO-CCSD могут ока­зать­ся такому аппа­рату не по зубам.

 

Рекомендации по конфигурации

В сети не очень мно­го рекомен­даций, как соб­рать компь­ютер для науч­ных рас­четов, тем не менее они есть. Нап­ример, такую инс­трук­цию мож­но най­ти на фо­руме ORCA (недос­тупен с рос­сий­ских IP), и рекомен­дации эти доволь­но прос­тые: все­го, и поболь­ше. В пер­вую оче­редь, конеч­но, опе­ратив­ной памяти, общепри­нятым миниму­мом счи­тают 64 Гбайт. Мож­но исполь­зовать и 32, и даже 16, но тог­да при­дет­ся очень тща­тель­но под­бирать методы и задачи, так как при любом неудач­ном сте­чении обсто­ятель­ств все будет падать из‑за нех­ватки опе­ратив­ки.

Впро­чем, полу­эмпи­рике и прос­тым DFT-методам с неболь­шим базисом дол­жно хва­тить скром­ных объ­емов RAM, но это ско­рее учеб­ные задачи. Вооб­ще, памяти дол­жно быть 256 Гбайт, а еще луч­ше 512, в таком слу­чае тебе будут дос­тупны прак­тичес­ки все широко исполь­зуемые методы.

Что же каса­ется про­цес­сора, то луч­ше мень­ше ядер с высокой так­товой час­тотой, чем наобо­рот. Тем не менее кван­тово‑химичес­кий софт — это не игры, и он, разуме­ется, заточен под мно­го потоков, поэто­му при­веден­ную выше рекомен­дацию сле­дует понимать как «16 быс­трых ядер луч­ше 22 мед­ленных».

Так­же очень желате­лен быс­трый SSD на 512 Гбайт и более. Вер­нее, так: для DFT 512 Гбайт хва­тит с запасом, а вот для методов post HF край­не желатель­но иметь боль­ше 1 Тбайт (на моей памяти боль­ше 5 Тбайт пока не отъ­еда­ло). На худой конец сой­дет и RAID 0 на HDD, что, конеч­но, про­садит ско­рость, но работать будет. Очень хороший свод рекомен­даций по сбор­ке такого компь­юте­ра пуб­лику­ет иссле­дова­тель из Пекин­ско­го уни­вер­ситета под ником Sobereva.

При­чем эти рекомен­дации при­водят­ся за пос­ледние нес­коль­ко лет и раз­биты по годам: любопыт­но смот­реть, как рас­тут аппе­титы. В целом автор очень рату­ет за исполь­зование б/у сер­верных ком­понен­тов, дабы не раз­базари­вать казен­ные день­ги на переп­лату вен­дорам. Текущая рекомен­дуемая им кон­фигура­ция — это dual AMD EPYC 7R32 на 96 ядер. Исполь­зуя такую машину, автор про­вел иссле­дова­ние, нас­коль­ко хорошо парал­лелит­ся ORCA. Офи­циаль­ный ману­ал говорит, что до вось­ми ядер все парал­лелит­ся без нарека­ний, а с шес­тнад­цатью уже воз­можны проб­лемы, но в ману­але это упо­мина­ется толь­ко всколь­зь.

Так вот, сог­ласно тес­там Sobereva, при уве­личе­нии количес­тва ядер до 24 рост быс­тро­дей­ствия поч­ти линей­ный, от 24 до 48 он откло­няет­ся от линей­ного. На отрезке от 48 до 84 ядер рост еще прос­лежива­ется, а ког­да их ста­новит­ся боль­ше 84, при­рос­та уже не наб­люда­ется. Понят­но, что эти чис­ла зависят от исполня­емой задачи, но на низ­ком уров­не все кван­тово‑химичес­кие методы так или ина­че сво­дят­ся к перем­ножению мат­риц, нахож­дению собс­твен­ных век­торов и зна­чений, так что эти резуль­таты полез­но дер­жать в уме. Кро­ме того, дру­гих тес­тов подоб­ного раз­маха я не встре­чал.

 

Итерация первая

В сво­ей сбор­ке я решил сде­лать упор на объ­ем памяти. На дво­ре сто­ял январь 2022 года, кри­зис чипов был еще в раз­гаре, поэто­му вари­антов у меня оста­валось нем­ного. Если хочешь боль­шой объ­ем DDR4, то дорога тебе на «Али» за б/у сер­верной памятью, а к ней нужен проц — тоже сер­верный б/у Xeon. Цены тог­да были, пря­мо ска­жем, нев­кусные, и на память ушла изрядная часть бюд­жета (8 × 32 Гбайт 2400 DDR4 ECC REG обош­лось тог­да в сум­му поряд­ка 60 тысяч руб­лей).

По­дер­жанные сер­верные матери тог­да в мой бюд­жет не про­лез­ли, и я решил оста­новить­ся на китай­ских. О китай­ских матерях в целом ходит дур­ная мол­ва. В час­тнос­ти, одно из типич­ных боль­ных мест этих девай­сов — цепи питания CPU, то есть VRM, поэто­му я попытал­ся най­ти что‑то понадеж­нее, нас­коль­ко это воз­можно. Выбор пал на Huananzhi X99-F8: эта материн­ская пла­та име­ет активное охлажде­ние VRM, восемь сло­тов памяти и, само собой, под­держи­вает четырех­каналь­ный режим.

Те­перь о про­цес­соре. Пос­коль­ку пред­полага­лось, что машина будет дол­гое вре­мя работать в режиме 24/7 при прак­тичес­ки пол­ной наг­рузке, ни о каком раз­гоне и речи не шло, поэто­му смот­реть в сто­рону Xeon 26xxv3 смыс­ла осо­бого не было, и я выб­рал Xeon E5 2683v4. Это 16-ядер­ный про­цес­сор с час­тотой 2600 МГц при пол­ной наг­рузке. Скром­нень­ко, зато недоро­го: в 2022 году он сто­ил око­ло пяти тысяч, а сей­час и вов­се мень­ше двух. Впос­ледс­твии, ког­да цены нем­ного сни­зились, я заменил камень дру­гим — E5 2696v4, где уже 22 ядра и 2800 МГц при пол­ной наг­рузке. При­рост про­изво­дитель­нос­ти, пря­мо ска­жем, замет­ный, и это потолок для выб­ранной мною плат­формы, но он и сегод­ня смот­рится доволь­но дос­той­но.

Для охлажде­ния все­го это­го дела я исполь­зовал китай­скую «баш­ню» с шестью труб­ками и тре­мя вен­тилято­рами.

Башня
Баш­ня

Впро­чем, такая сис­тема охлажде­ния ока­залась даже избы­точ­ной, и тем­перату­ра под наг­рузкой не пре­выша­ла 51 гра­дус. Так что мож­но не парить­ся и ста­вить какой‑нибудь ноунейм, одна­ко он дол­жен уметь отво­дить при­мер­но 150 Вт. Кор­пус я исполь­зовал Zalman S2, в него были уста­нов­лены шесть вен­тилято­ров, три на вдув на фрон­таль­ной панели и три на выдув, один сза­ди и два свер­ху. Вер­хние кулеры дос­таточ­но удач­но рас­положе­ны над зоной VRM. В целом этот кор­пус доволь­но дешевый, и боковая стен­ка плас­тиковая, ну да нам на него не любовать­ся.

Объ­ем памяти поз­же был уве­личен до 512 Гбайт, но уже по сте­чению обсто­ятель­ств. Любопыт­но: китай­ские пла­ты дер­жат план­ки по 64 Гбайт, а в сети я упо­мина­ния об этом не нашел, прав­да, воз­можно, потому, что никому в здра­вом уме не при­дет в голову напихать в китай­скую сбор­ку пол­терабай­та опе­ратив­ки. Да и задач, где нуж­ны такие объ­емы памяти, кро­ме кван­тово‑химичес­ких рас­четов, я так с ходу и не при­думаю.

Материнская плата, проц, память, VRM
Ма­терин­ская пла­та, проц, память, VRM

С дис­ками выш­ла целая чехар­да. В пер­вом вари­анте я исполь­зовал под сис­тему NVME SSD объ­емом 256 Гбайт и HDD на 3 Тбайт для хра­нения резуль­татов вычис­лений. Но ока­залось, что для исполь­зования DLPNO-CCSD(T) и осо­бен­но STEOM-DLPNO-CCSD это­го сов­сем недос­таточ­но: мало и 512 Гбайт, и 1 Тбайт. А если исполь­зовать HDD, то ско­рость записи/чте­ния ста­новит­ся узким мес­том, осо­бен­но с уве­личе­нием количес­тва потоков. Доходит до смеш­ного, ког­да задача быс­трее реша­ется в восемь потоков, чем в шес­тнад­цать.

Ста­ло ясно, что нужен быс­трый SSD на 1, а луч­ше на 2 или 3 Тбайт, но цены на твер­дотель­ные накопи­тели боль­ше терабай­та тог­да были, пря­мо ска­жем, негуман­ные. Поэто­му, почесав в затыл­ке, я решил, что мне поможет RAID 0. Так объ­ем дис­ка мож­но наращи­вать пос­тепен­но, ско­рость будет рас­ти и износ дис­ков ста­нет умень­шать­ся — в общем, одни плю­сы. Что же до надеж­ности, то тут это не столь важ­но: на этих дис­ках не пред­полага­лось хра­нить резуль­таты вычис­лений. В реали­зации этой идеи мне очень при­годил­ся адап­тер PCIe-4NVME — удоб­но, ком­пак­тно, и сло­ты PCIe эко­номит.

Адаптер PCIe-4NVME
Адап­тер PCIe-4NVME

На­до иметь в виду, что если его прос­то вот­кнуть в слот x16, то будет работать толь­ко пер­вое гнез­до M2. Что­бы зарабо­тали осталь­ные, в БИОСе нуж­но нас­тро­ить бифур­кацию сло­та X16, то есть перек­лючить режим работы с X16 на X4 X4 X4 X4, тог­да все зарабо­тает как надо. Не все материн­ские пла­ты име­ют такую фун­кцию. К счастью, Huananzhi X99-F8 это уме­ет. В качес­тве дис­ков я выб­рал недоро­гие WD Blue SN550 объ­емом 1 Тбайт, тем более в обзо­рах ука­зыва­лось, что они не склон­ны катас­тро­фичес­ки про­сажи­вать ско­рость пос­ле запол­нения кеша.

WD Blue SN550 1 Тбайт
WD Blue SN550 1 Тбайт

Та­ким обра­зом я со вре­менем нарас­тил мас­сив до 3 Тбайт, и это­го, если не наг­леть, хва­тает прак­тичес­ки для всех задач. Впро­чем, если не замахи­вать­ся на методы post HF, а огра­ничить­ся DFT, то и 1 Тбайт хва­тит за гла­за. Для соз­дания прог­рам­мно­го RAID 0 я исполь­зовал mdadm, тут в общем нет никаких осо­бен­ностей, и ману­алов в сети дос­таточ­но. Работа­ет такое решение хорошо, одна­ко есть вари­ант и получ­ше: на али­ке мож­но най­ти отно­ситель­но недоро­го U2 SSD WD Black SN640 аж на 7,5 Тбайт — уль­тиматив­ное решение.

Учи­тывая, что исполь­зуемый мною софт, а имен­но ORCA, на дан­ный момент не уме­ет работать с GPU, стро­гой необ­ходимос­ти в виде­окар­те у меня не воз­никло. Одна­ко на эта­пе нас­трой­ки и уста­нов­ки соф­та без нее не обой­тись. В свою машину я пос­тавил GTX 1080, она мне в свое вре­мя дос­талась по очень прив­лекатель­ной цене. У китай­ских плат есть один нюанс в работе с виде­окар­тами, свя­зан­ный с нас­трой­ками CSM: в нашей кон­фигура­ции она дол­жна быть вык­лючена.

UEFI CSM Support setting
UEFI CSM Support setting

Ню­анс тут в том, какие зна­чения уста­нов­лены в БИОСе по умол­чанию. Так, если в пун­кте video будет сто­ять Legacy, то на GTX 1080 изоб­ражения ты не уви­дишь, толь­ко чер­ный экран. Как следс­твие, в БИОС ты не зай­дешь и нас­трой­ки не поменя­ешь. Но проб­лема реша­емая: берем какую‑нибудь древ­нюю видяху (про­верял на GTX 640 и EAH4650), вты­каем, заходим в БИОС, меня­ем нас­трой­ки, вык­люча­ем, ста­вим назад GTX 1080. Если нуж­но исполь­зовать ста­рую виде­окар­ту, а в нас­трой­ках video сто­ит UEFI, то алго­ритм дей­ствий обратный. Подоз­реваю, что эта осо­бен­ность мно­гим людям попор­тила нер­вы.

В качес­тве бло­ка питания я исполь­зовал Cooler Master Elite V4 600 Вт, одна­ко я бы рекомен­довал иметь боль­ший запас по мощ­ности, так как при пол­ной наг­рузке машина очень чувс­тви­тель­на к про­сад­кам в сети. Бес­перебой­ник не спа­сает: комп ухо­дит в перезаг­рузку. Более мощ­ный блок питания поз­воля­ет машине не вылетать, пока сра­баты­вает бес­перебой­ник.

 

Плюсы и минусы

К плю­сам моей сбор­ки мож­но отнести цену: ста­рые Xeon сто­ят, пря­мо ска­жем, недоро­го, осо­бен­но если не гнать­ся за топом в линей­ке E5 2696v4 и E5 2699v4. Любопыт­но, что по фак­ту это иден­тичные про­цы с той лишь раз­ницей, что E5 2696v4 пос­тавлял­ся стро­го в сос­таве сер­веров, поэто­му отно­ситель­но мало­известен. Кро­ме того, не все пла­ты его под­держи­вают, имей это в виду. У E5 2699v4 с под­дер­жкой вро­де бы дела обсто­ят получ­ше, но и цена у него в пол­тора‑два раза выше. А в осталь­ном они иден­тичны.

Хо­роший вари­ант — E5 2690v4, ядер у него помень­ше (14), но и час­тота повыше: 3200 МГц при пол­ной наг­рузке. Сто­ит он око­ло двух тысяч. Еще к плю­сам мож­но отнести то, что у меня материн­ка по фак­ту дес­ктоп­ная, форм‑фак­тора ATX, вле­зает она прак­тичес­ки в любой кор­пус, да и заморо­чек с ней мень­ше, чем с сер­верны­ми.

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

Продолжение доступно только участникам

Вариант 1. Присоединись к сообществу «Xakep.ru», чтобы читать все материалы на сайте

Членство в сообществе в течение указанного срока откроет тебе доступ ко ВСЕМ материалам «Хакера», позволит скачивать выпуски в PDF, отключит рекламу на сайте и увеличит личную накопительную скидку! Подробнее

Вариант 2. Открой один материал

Заинтересовала статья, но нет возможности стать членом клуба «Xakep.ru»? Тогда этот вариант для тебя! Обрати внимание: этот способ подходит только для статей, опубликованных более двух месяцев назад.


  • Подпишись на наc в Telegram!

    Только важные новости и лучшие статьи

    Подписаться

  • Подписаться
    Уведомить о
    0 комментариев
    Межтекстовые Отзывы
    Посмотреть все комментарии