14 October 2022

Многоядерность: компиляция и декомпрессия

После апгрейда начала этого многострадального года, когда я переехал с 4х ядерного процессора на 10 ядер, периодически ловлю себя на мысли, что я оказался в ситуации чувака, который купил себе sports car, чтобы каждый день стоять на нем в городских пробках. При казуальных сценариях использования ПК дома хоть какую-то серьезную нагрузку на процессор дают ну разве что игры. При этом для современных многоядерных камней речь идет о нагрузке порядка 30-40%, т.е. две трети мощностей тупо простаивает. Как по мне, для гейминга оптимум по процессору находится где-то в области нынешних бюджетных решений со схемой 4C/8T (при условии, что эти ядра будут работать на достаточно высоких частотах)... 
Да, на моем i5-12600K есть возможность выбивать красивые цифры во всякой там синтетике, типа Cinebench, но синтетика она и есть синтетика и постепенно приходит осознание, что у тебя в ПК стоит процессор, которому вообще-то место не дома, а на рабочем месте в машинах класса "workstation". Короче, в один прекрасный день, наблюдая за тем, как неторопливо идет компиляция проекта на моем ноутбуке для работы (с не самым дохлым i7-10850H), я понял, что мне определенно стоит попробовать стоящий рядом домашний ПК в роли рабочей лошадки. 

Наконец-то дошли руки поставить Visual Studio 2022, а в качестве real-world бенчмарка решено было использовать компиляцию boost (достаточно большую по размеру и сверх популярную C++ библиотеку). Скачал последнюю актуальную версию 1.80, это целых 200 мегабайт исходников. 

Перед тем, как показывать и обсуждать какие-то цифры, напомню, что в одной из прошлых заметок я поделился выводами о том, как нужно оценивать многопоточный потенциал процессора i5-12600K с учетом того, что он содержит в себе аж целых три разных вида ядер -- производительные P-ядра, их виртуальных копии для режима hyperthreading и "экономичные" E-ядра. Многочисленные бенчмарки говорят о том, что для хорошо масштабирующейся нагрузки этот процессор можно интерпретировать как содержащий 10 P-ядер: 6 фактических, +2 ядра дают 6 HT ядер (с коэффициентом 1 к 3) и +2 ядра дают 4 E-cores (с коэффициентом 1/2). Т.е. если какая задача, при переходе от выполнения на одном ядре к работе на всех 16-ти ядрах, ускоряется в 10 раз, то можно говорить о том, что она практически идеально масштабируется под многопоточность. 

27 June 2022

Олдскул по-молодежному

Недавно вышла игра "Teenage Mutant Ninja Turtles: Shredder's Revenge" у которой хватает достоинств, но сегодня мне захотелось поговорить об одном из ее недостатков. 

Расцвет жанра beat'em up пришелся на рубеж 80-х и 90-х годов прошлого века, а самые лучшие его представители, как по мне, были выпущены для 16-ти битной консоли Sega: те же "черепашки", легендарные серии Golden Axe и Streets of Rage. Это я все к тому, что когда сегодня сталкиваешься с игрой, которая во всем старается подражать классике тридцатилетней давности, то последнее, чего от нее ожидаешь это... тормозов и жестких просадок частоты кадров. В своем анализе игры Digital Foundry показывает, что на Nintendo Switch в некоторых моментах фреймрейт проседает вдвое -- ниже 30 кадров в секунду! 

Честно говоря, у меня нет слов для того, чтобы хоть как-то охарактеризовать производительность игры, поэтому вместо слов я решил использовать цифры. 

15 June 2022

Про лозунг "Армия! Мова! Вiра!"

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

С началом войны случилось обострение у довольно большого числа людей, которые решили, что российский вопрос окончательно можно решить только соорудив пятиметровую стену на границе с соседом, за ней -- ров с крокодилами, всем гражданам одеться в вышиванки, между собой говорить исключительно на мове, а за границы внутреннего культурного пространства вынести не только Пушкина, но и Гоголя с Булгаковым в придачу.  

Понятно, что страна у нас большая и в ней много разных групп людей, политических и идеологических течений, но, в данном случае, я абсолютно убежден, что львиная доля сторонников такого рецепта самоизоляции это сторонники Петра Порошенко и, конечно же, тут нельзя не вспомнить, что именно эта идея "особого пути" была сформулирована на последних президентских выборах в виде известного слогана "Армия! Мова! Вiра!".

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

С языком разобрались, теперь насчет "веры". Если кто не в курсе, под этим словом в лозунге имеется ввиду религия, а вернее сказать -- Украинская Православная Церковь, которая в начале 19-го года получила Томос, событие, сопровождаемое невероятным количеством политического пиара вокруг него... И мы снова получаем раскол, деление на правильных и граждан второго сорта, ибо Украина по своей конституции это светское государство, в котором свободно живут люди самых разных вероисповеданий и религиозных конфессий, а также атеисты и те, кто вообще не верит ни в какого Бога. Зачем им ваша УПЦ? 

Ну и про последний компонент лозунга -- про армию. 
Начну несколько издалека. На сегодня ствольная артиллерия армии рф на 100% состоит из пушек и гаубиц, произведенных еще в Советском Союзе. Тоже самое можно в значительной степени сказать и про танковый парк, хотя есть у них некоторое количество танков модели Т-90, произведенных уже после 91-го года. 
Это я все к чему -- если в армию вкладывать деньги, как это делал в данном случае СССР, то потом этим ресурсом можно пользоваться даже спустя несколько десятилетий. Если бы Петр Алексеевич реально заботился бы о переоснащении и вооружении украинской армии, то спустя пару лет президентства Зеленского, которого армия типа совсем не интересовала, мы бы все равно имели бы чем воевать. 
А так -- воевать не чем, кроме разного советского барахла, которое старое, изношенное и его мало, а вопрос нашего выживания целиком и полностью находится в руках наших "западных партнеров" и того оружия, которое они нам поставят. Ну или не поставят.  

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

Вот тыкаешь наугад в какого-то погибшего на этой войне украинского воина-героя, а он при жизни говорил по-русски, в бога не верил, а погиб, блин, потому, что воевать нашей армии толком-то и нечем.
Зато над его телом реет красивый патриотический петин лозунг.
Тот самый, "Армия! Мова! Вiра!". 


21 May 2022

О производительности современных процессоров

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

Тотальный апгрейд домашнего ПК я сделал еще в январе, с той поры активно его использовал, бенчмаркал и всячески экспериментировал, что в итоге позволило накопить ряд интересных наблюдений. Ну и, помимо всего прочего, переезжал я с i5-6600K на i5-12600K, т.е. процессоры одного класса из разных поколений, а это позволяет ретроспективно оценить успехи процессоростроения компании Intel на интервале в шесть лет.    


Многопоточная производительность

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

В случае 12600K тема многоядерности усложняется фактором гетерогенности, в этом процессоре реализовали аж целых три вида ядер: полноценные высокопроизводительные (P-cores), паразитирующие на них hyper-threading ядра и плюс ядра энергоэффективные (E-cores).

01 February 2022

Сказ о том, как мне было лень апгрейдить ПК, но я все-таки сделал это

Лет 30 назад это была главная мечта в моей жизни -- иметь дома персональный компьютер. Поэтому не удивительно, что когда это все-таки случилось в 96-м году, домашний компьютер стал центром Вселенной, вокруг которого вращалась вся моя жизнь. И это при том, что Интернета тогда не было и вообще компьютер не играл тогда роль медиацентра для воспроизведения музыки, фильмов и так далее. Зато на компьютере можно было рисовать и рендрить 3D модели, набирать тексты, делать расчеты для института, программировать и, конечно же, играть в игры. Именно моя безудержная страсть к вычислительной технике в 90-х предопределила мою будущую профессиональную карьеру. 

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

Короче, в какой-то момент апгрейд домашнего компа превратился из праздника в малоприятную трудовую повинность, которую надо было совершать раз в пять-шесть лет. 


***

Последний раз домашний апгрейд я затеял летом 16-го года. Я переезжал с двухъядерного Pentium E6500 на i5 6600K, помимо всего прочего, еще и прикупив себе первый SSD на 256 Гб для установки системы. Видик я не брал тогда от слова совсем, планируя обойтись интегрированным. 

Главный сюрприз от апгрейда преподнесла "мать". На материнках я никогда не экономил и в тот раз взял Asus Z170 Pro Gaming, понятно, что не гейминга ради, а просто как решение определенного качества и класса. И так как мать была игровая, Asus дарила к ней код для бесплатного скачивания Doom 16-го года. А я, хоть и был в тот момент совершенно равнодушен к ПК играм, но все-таки повелся: Doom есть Doom, моя самая любимая игра из 90-х, да еще и пресса тогда ее нахваливала самым безбожным образом. В общем, даже мне, хоть краешком глаза, на него посмотреть захотелось. Тем более, что был код, а на торрентах не было пиратки.

31 January 2022

Про руки программистов — прямые и не очень

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

Сто лет как пользуюсь Notepad++, это бесплатный, функциональный, легковесный и очень быстрый редактор текста с фичами для программистов. Как бы быстрый, ибо есть одна оговорка. Функция поиска текста по множеству файлов работает с совершенно черепашьей скоростью. Если взять за референс аналогичную функцию в Total Commander (где она, судя по всему, реализована максимально прямолинейно, без всяких там фокусов имени Бойера-Мура), то Notepad++ делает это как минимум на порядок медленнее.
Понятно, что речь идет о поиске по данным на диске, доступ к которым, конечно же, может быть узким местом. Но у меня по работе часто бывает, что при рефакторинге многократно ищешь что-то в одном и том же, относительно компактном, наборе файлов, который гарантировано будет закэширован операционной системой в память.

 

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

17 January 2022

Киномарафон на каникулах

Решил в беглой манере написать о том, что получилось посмотреть на новогодних каникулах. 
Поехали!

 "Не смотри вверх" -- кино в крайне редком нынче жанре социальной сатиры, за одно только это его стоит посмотреть. А если к этому еще прибавить неприлично звездный актерский состав, то колебаний насчет просмотра вообще не должно быть. 
Лично мне несколько обидно, что пытаясь препарировать современные проблемы американского общества, режиссер тактично обошел стороной повесточку "diversity and inclusion", увлечение которой в Штатах приняло какую-то совершенно патологическую форму. 
Что же касается идеи о том, что нынешнее состояние общества таково, что оно не сможет сплотиться перед лицом смертельной угрозы, то мне кажется, что тут вполне себе уместны аналогии с COVID эпидемией и, наверное, на практике все не так уж и плохо. Хотя, безусловно, соцсети как источник антиваксерской ереси -- системная проблема, которая хорошо освещена в фильме. 
Забавный факт: сидящий на коксе глава администрации Белого Дома мордой прям один в один наш Ермак. 

"Рука Бога" -- автобиографический фильм итальянского режиссера о своем детстве и родном городе. Нет, не угадали, это не "Амаркорд", хотя солнечная, полная жизнерадостности и веселья первая часть картины довольно сильно перекликается с фильмом Феллини. А если вы не знакомы с деталями биографии Соррентино, то дальше вас ждет весьма неожиданный сюжетный поворот, который направляет течение фильма в совершенно другое русло...
Я считал и считаю, что Соррентино входит в тройку лучших действующих режиссеров, его "Рука Бога" однозначно удалась, поэтому тут только могу смело рекомендовать эту картину к обязательному ознакомлению. 

"Аннетт" -- порой мне хватает терпения высидеть какие-то бесконечно длинные, нудные и совершенно зубодробительные арт-хаусные картины, но вот это чудо я осилить не смог, выключил минут через 20. Извините. 

"Агнец" -- невероятно атмосферный ужастик, который вряд ли можно рекомендовать любителям щекочущего нервы жанра. Тут все происходит крайне неторопливо и драмы, пожалуй, сильно больше, чем мистики. Снято все на натурных съемках в Исландии и история рассказывается на фоне таких пейзажей, что только ради этого стоит решиться на просмотр. Мне понравилось, хорошее кино.  

"Случайность и догадка" -- японское кино не кино. Картинка тут вообще не играет никакой роли, этот фильм -- бесконечная череда диалогов о человеческих чувствах. Диалогов очень глубоких,  психологически достоверных, словно бы написанных в лучших традициях русской классики XIX века. Да, внезапно оказалось, что японцы умеют в такое.
Фильм состоит из трех законченных миниатюр, каждая из которых посвящена вопросам любви и случайности. Мне понравилось, хотя еще раз повторюсь, что это совершенно не кино, это скорее книга. 

09 January 2022

2021 год в играх

Как и обещал, пост о том, во что получилось поиграть в прошлом году. 

Главной игровой платформой, как и в позапрошлом году, был Switch

C него и начнем.  

Самая популярная игра на приставке -- "Animal Crossing: New Horizons". Я в нее не играю, а вот ребенок набегал в 21-м году под сотню часов. В конце года новую жизнь вдохнуло DLC, интересное и качественное дополнение. 

"Shadowverse: Champions Battle" -- одна из лучших игр, которые я прошел в прошлом году. За подробностями в обзор, всячески рекомендую. 

"Grindstone" -- начал плотно играть еще в конце 20-го, в том году прошел и основную линию и дополнение. Игра на грани абсолютной гениальности -- казалось бы, очень простая базовая механика, но ее смогли отмасштабировать так, что в игре с удовольствием проводишь 60-70 часов и хочется еще. Маленький шедевр. 

02 January 2022

Год 2021: итоги

Когда я писал аналогичный текст в прошлый раз, то пришел в выводу, что мне и моим близким удалось пережить пандемийный 20-й год без особых потерь и последствий. А вот 21-й удалось пережить не всем. 

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