nlothik: (wtf)
[personal profile] nlothik

Нарисовали тут граждане аналитики скриптов на R — финансовые данные обрабатывать. Всё бы ничего, только на их лаптопах оно летает, а в продакшене скрипт встаёт колом.

Ну ладно, говорю, давайте посмотрим, в чём разница. Разница нашлась быстро.

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

Открываю диспетчер задач. Смотрю… ага.

Гляжу в книгу — вижу фигу: из 64 ядер скрипт бодро молотит ОДНО ядро. Остальные 63 стоят вокруг, жуют сено, и курят бамбук.

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

На ноутбуке у него — AMD «Рязань» с турбочастотой 5.1 ГГц. А в продакшене, извините, ядер-то хоть отбавляй, но они попроще лицом будут, и на 2 ГГц.

Разработчик винит железо.
Я виню разработчика.

Потому что в 2026 году писать однопоточный процесс — это не просто западло, а тупизна со взломом.

Вот так и живём. Пойду писать грозное письмо проджект-лиду. Пусть он им в команду хоть одного погромиста с реальной степенью в CS вкрутит, иначе они продолжат выдавать херню на гора. Таких дундуков даже ИИ не спасает.

Permalink to this post

Date: 2026-01-30 03:22 pm (UTC)
man_of_motley: (Default)
From: [personal profile] man_of_motley
Он там такой, на уровне control flow. С R проблема что там много тяжелых операций над большими объемами идут в виде вызова функции, причем чего-нибудь из библиотеки, причем стороннего производителя. И doParallel туда не спускается. То есть тут скорее оптимизация будет какая-то аналитическая/алгоритмическая - по возможности бить всю огромную цепочку на небольшие кусочки которые при желании хоть отдельными программами с передачей данных через файлики можно делать.

Особенно весело если серии данных привязаны ко времени/имеют скрытую казуацию или корреляцию к старым данным (типа истории цен рыночных с точки зрения технического анализа), тогда сегментацией будет не так просто сделать. Грубо говоря как если им надо экспоненциальное скользящее среднее взять по большому массиву - оно ведь зависит от предыдущих данных так что хер ты его посчитаешь по сегментами, в отличие от обычного скользящего среднего. А это самый простой пример из того яоя который там есть.

Profile

nlothik: (Default)
Multithreaded Branching Logic Blog

March 2026

S M T W T F S
1 2 3 4 5 67
8 9 1011121314
15 16171819 2021
22 23 2425 26 2728
293031    

Page Summary

Style Credit

Expand Cut Tags

No cut tags
Page generated Mar. 27th, 2026 01:48 pm
Powered by Dreamwidth Studios