Мохнатые уроды и моральные пёзды. Войти !bnw Сегодня Клубы
Вы полтора года назад забацали программу на Питоне. Все эти полтора года программа росла, и данные, которые она переваривает, тоже росли. И вот сейчас вы задумались о том, что так дальше продолжаться не может, и надо её распараллелить, т.к. больше ничего уже не сделать. Вы подключили multiprocessing, стали пытаться делать так, чтобы всё работало правильно (для начала чтобы хоть как-то работало), и... осознали, что как раз сейчас и есть очень хороший момент для того, чтобы своей любимой программе сказать «большое спасибо» и переписать её на чё-то другом, что, как минимум, распараллеливаться будет без адских мучений. Причём вполне вероятно, что новая программа будет работать с такой скоростью, что распараллеливание не будет актуально ещё года полтора. Но лучше сразу не обманываться, чтобы не страдать потом.
Рекомендовали: @o01eg
#I62G05 / @dluciv / 3512 дней назад

на луа?
#I62G05/RBO / @ruki / 3512 дней назад
@ruki Не, вряд-ли. Я на неё не писал почти, но по-моему на ней вещи, которые на Питоне записываются лаконично, часто получаются какиеми-то уж больно громоздкими. Скорее уже что-то со статической типизацией и с удобным компактным синтаксисом...
#I62G05/4EA / @dluciv --> #I62G05/RBO / 3512 дней назад
Disclaimer: зарабатываю деньги программированием на Python (но в душе ни разу не питонист). Всё верно, кроме последнего предложения, где ты просто троллишь. Я не верю, что ты не слышал выражений «язык под задачу», «прототипирование» и «смена требований». То, что ты изначально не продумал (да и не мог продумать — это же real life) всех проблем, с которыми может столкнуться реализация, в т.ч. не представил себе количество входных данных — это не проблема языка (это справедливо не только для Python).
#I62G05/6VC / @minoru / 3512 дней назад
@minoru "The right tool for the job!" said someone whose assumptions, past experience, motivations, and definition of "job" aren't explicit.
#I62G05/2T8 / @anonymous --> #I62G05/6VC / 3512 дней назад
@minoru Так а кто сказал, что проблема языка? Я Питон очень люблю. И да, я на самом деле не представлял себе, что там на вход столько данных попадёт =).
#I62G05/25H / @dluciv --> #I62G05/6VC / 3512 дней назад
Да, параллелить на питоне можно, но боль. У мены был основной затык с сериализацией данных для передачи другому процессу. То-есть данные нужно как-то передавать вне питоньих объектов.
#I62G05/4IX / @xl0 / 3512 дней назад
@dluciv Вернее даже так. Там с самого начала данных было довольно много и они перефигачивались моим самопальным алгоритмом со сложностью O(N log N). А потом потребовалось заменить мой самопальный алгоритм на более точный, но со сложностью O(N^2). А потом данных стало ещё чуть-чуть побольше. Ну и дальше в общем понятно =).
#I62G05/6IG / @dluciv --> #I62G05/25H / 3512 дней назад
@xl0 Вот именно что можно, но боль. Если бы у меня была машинка с 32 ядрами, я бы напрягся таки на multiprocessing. Если бы был кластер, я бы напрягся на что-нибудь кластерное. А ради 4 полуторных (HT) ядер -- игра свеч не стоит =).
#I62G05/URZ / @dluciv --> #I62G05/4IX / 3512 дней назад
@dluciv А версий питона с поддержкой настоящей многопоточности нет? Хотя тут всё равно нужно от питона уходить.
#I62G05/L55 / @o01eg --> #I62G05/URZ / 3512 дней назад
@o01eg Посмотри на IronPython, там нет GIL ⇒ возможно, есть нормальная многопоточность.
#I62G05/IHG / @minoru --> #I62G05/L55 / 3512 дней назад
@o01eg Есть, но они не развиваются в ногу с мейнстримом, сильно отстают =).
#I62G05/DFX / @dluciv --> #I62G05/L55 / 3512 дней назад
@minoru Там абсолютно точно нормальная многопоточность есть, но он 2.7, а моя прога 3.
#I62G05/J0S / @dluciv --> #I62G05/IHG / 3512 дней назад
@dluciv Хотя кстати вот, надо бы заценить https://github.com/IronLanguages/ironpython3
#I62G05/YQX / @dluciv --> #I62G05/J0S / 3512 дней назад

nopython

#I62G05/CM8 / @o7ry6fievfafz4bkz2m0 / 3512 дней назад
опять кто-то не понимает разницы между языком программирования и скриптовым языком программирования
#I62G05/297 / @mugiseyebrows / 3512 дней назад
@mugiseyebrows Я. Поясняй.
#I62G05/B8P / @minoru --> #I62G05/297 / 3512 дней назад
@mugiseyebrows толстенно
#I62G05/RMJ / @dluciv --> #I62G05/297 / 3512 дней назад
@minoru на языках программирования пишутся программы на скриптовых языках пишутся скрипты (клей, утилиты, вебня) можно писать на скриптовых языках программы, но с какого-то момента начинаешь всасывать
#I62G05/CN8 / @mugiseyebrows --> #I62G05/B8P / 3512 дней назад
@mugiseyebrows А ведь что-то в этом есть… Спасибо, подумаю.
#I62G05/LSG / @minoru --> #I62G05/CN8 / 3512 дней назад
ipv6 ready BnW для ведрофона BnW на Реформале Викивач Котятки

Цоперайт © 2010-2016 @stiletto.