Lama
@Virviil , добавь тогда ссылку на флуд в описании @proelixir. Если хочешь, могу дать тебе тут овнера
Źmićer
Походу я не могу - я там не owner
Lama
Надо попросить овнера там тогда
Źmićer
https://t.me/yaBloom
Bogdan
Что теперь тут общаемся ? 😂
jm
Получается так
Lama
Тут можно общаться на оффтопик, и всё. Темы касательно эликсира я бы оставил в основном чате
Ihor
🤘
Źmićer
Сегодня был дедлайн у меня с новым супер решением для машинного обучения. В результате пацаны из МЛ проебались с мультипроцессингом своей либы и я ща максимально срочно пишу обертку для этого говна на Фласке чтобы захерачить реплик на кубере и это хоть как-то работало
Źmićer
Пацаны пишут на сишечке в куду. Но код человека который не понимает что он делает - красивый, ни с чем не спутаешь
Lama
Ihor
Lama
Куду?
CUDA, который апи к nvidia gpu
Ihor
Ihor
Ihor
Они это не учли или просто не успели?
Źmićer
Не учли наверное
Źmićer
Хз. Вчера на тестовыз данных работает
Dmitry
Tharin
А там мы, разве, не флудили?
Dmitry
Dmitry
А стейт между пуллом интерпретаторов держать в редиске?
Dmitry
Ой, капец 😅
Lama
Dmitry
Как же грустно вне Elixir-а и Go 😩
Lama
Ну, вроде GIL и кажется большой проблемой, а по факту вроде и не проблема. Это лишает многой головной боли при разработке чего-либо на питоне
А за производительностью в питон никто и не идёт
Dmitry
Т.е. Когда нужна не распределенная программа - там много приятных мелочей, которых идеологически нет в Elixir-е
Dmitry
Dmitry
Как я понимаю repl-а там нет.
Dmitry
В Elixir-е ты можешь зайти и включить трейсинг и увидеть того, чего не увидешь в логах в подробностях...
Dmitry
Где-то не добавил логов и всё, с питоном труба...
Dmitry
Dmitry
А если ты получил запрос и он перекачивает кучу данных и у тебя процессинг данных сломался на какой-то пачке, что ты не можешь залогать из-за размера?
Dmitry
Нужно хорошо продумывать как делать try catch при обработке данных, чтобы знать какой кусок из мегабайта данных его сломал.
Lama
Ihor
Lama
Надо подумать. Если данные обрабатываются кусками, то этот кусок и должен быть запросом
Грубо говоря, как в Map Reduce модели — нужно получить аккумулятор и кусок данных, сломавший программу
Я думаю, это не сложно архитектурно продумать
Lama
Lama
cython )
Кстати у них прикольный туториал сразу на двух языках
https://cython.readthedocs.io/en/latest/src/tutorial/cython_tutorial.html
Dmitry
Я только так и дебажу в Эликсире. За 4 года, репл использовал только один раз 🤷♂️
Тебе везёт с проектами, я так дебагил только тот проект, который делал с нуля в компании во Франкфурте с нормальными логами...
А вот в последних двух фирмах логи такие были, что обычный разработчик пожимал руками, где косяк и был я, который в любом говне мог найти ошибку 😂😂😂 (ладно, в последнем не так всё ужасно и с логами многого можно достичь, но не всё).
Lama
Мне очень нравится питон как раз из-за его возможности высокоуровнево и интерактивно управлять довольно низкоуровневыми вещами
Можно легко играться с сетевыми пакетами в scapy
Можно легко управлять матрицами в numpy
Можно легко играться с картинками в pillow
Можно генерировать программы на C в cython
Можно читать память в memorpy
Dmitry
К примеру, у нас http клиент или точнее библиотека, его использовавщая из-за какого-то стейта бросала exception и только на продакшене - который нельзя былл воспроизвести(ибо ошибка появлялась через какое-то время после запуска приложения и была не связана с самим запросом) - посмотрел бы я, как такую фигню на питоне бы дебаггили.
Dmitry
Ошибка, возникающая пр накоплении стейта... Не, наверное, когда всё stateless и всё постоянно сериализируется, десериализируется и ходится в редис - на каждый чих. Наверное, там такие проблемы уже выгребли все.
Dmitry
И можно проинтроспектить редис.
Lama
Dmitry
Я к тому, что как оркестрировать десятки ML алгоритмов, которые должны параллельно работать? Кролик и не выходя из питона? Потому что все эти ML алгоритмы и так супер тормозные, что ходить в рабит и отсутствие параллельности в питоне всё равно ничего не ухудшит?
Źmićer
Źmićer
А если закончится gpu память - то как нифку не пиши - она упадёт с sigterm и унесёт с собой ноду
Dmitry
Źmićer
Ну, достаточно n вызовов где n - число скеджелеров чтобы твой ковбой получил 3 секнуды на приём реквеста
Źmićer
Кстати, походу gpu- это io bound
Źmićer
Потому что оно через сокет запихивает данные внутрь gpu, потом дергает в ней rpc, ждёт ответа и выкачивает результаты назад
Źmićer
Только как объяснить этот факт нифке- я честно хз
Źmićer
Илдить из неё походу… ну, надо проверять
Dmitry
Źmićer
Źmićer
В идеале напилить высокопроизводительную либу для мл на эрланге - прям кайфово было бы. Но нада много денях, а готовые решения хорошо портируются только а питон
Dmitry
Dmitry
Или ML - малая часть логики?
Źmićer
У нас нету эликсира
Dmitry
А, тогда понятно 😄
Dmitry
Что-то простое на NX конечно можно сделать, но по уровню Elixir-у до экосистемы Python-а не добраться скорее всего никогда.
Źmićer
Фишка в том, что как показала практика - запускать это говно внутри самого питона практически нереально
Źmićer
И это даже с условием того что я за последнее время изучил вообще все способы для параллельного программирования там
Źmićer
Поэтому план - распихать все это говно по grpc сервакам, в том числе возможно с tensor flower serving
Źmićer
А потом делать data enrichment из нормального места
Źmićer
Хотя, сказать по правде, для этих целей async в питоне не чувствуется хуже чем beam
Dmitry
Учитывая, что ML сервисы судя по-всему и так количество параллельных процессов обработать может очень маленькое, что async, что beam, что thread-ы в Java - практический любой тул для распаллеливания подойдёт.
Lama