#coiled #aws #burstable #steal
Турбо-инстансы ожидаемо оказались дороже для DS-нагрузок.
https://medium.com/coiled-hq/burstable-vs-non-burstable-aws-instance-types-for-data-engineering-workloads-540b7f10f6eb
Турбо-инстансы ожидаемо оказались дороже для DS-нагрузок.
https://medium.com/coiled-hq/burstable-vs-non-burstable-aws-instance-types-for-data-engineering-workloads-540b7f10f6eb
Medium
Burstable vs non-burstable AWS instance types for data engineering workloads
Author: Nat Tabris
#dask #coiled
История миграции со Spark на Dask.
Сокращение расходов на 40%, уменьшение времени обработки на 30%.
https://youtu.be/jR0Y7NqKJs8
История миграции со Spark на Dask.
Сокращение расходов на 40%, уменьшение времени обработки на 30%.
https://youtu.be/jR0Y7NqKJs8
YouTube
Spark vs Dask | Why We Switched from Spark to Dask | Sébastien Arnaud at Steppingblocks | June 2022
Learn more at https://bit.ly/3oTtMIN
Spark vs Dask for big data analytics...which should you pick?
Steppingblocks is a big data analytics company that provides workforce and education analytics on over 130 million individuals in the U.S to universities…
Spark vs Dask for big data analytics...which should you pick?
Steppingblocks is a big data analytics company that provides workforce and education analytics on over 130 million individuals in the U.S to universities…
#dask #coiled
Экспериментирую с Dask и Coiled. Первые впечатления - всё смешалось, кони, люди. Кластеру coiled при старте передаётся параметр n_workers=int, который в обычном dask значит то ли число узлов (компьютеров, виртуальных машин), то ли число процессов на узле, в зависимости от настроек. Я попробовал заказать n_workers=8 на AWS c compute_purchase_option="spot", он мне бахнул 8 инстансов t3.xlarge (4 vCPU, 16Gb RAM), надеюсь, спотовых, +1 scheduler, если верить доке, шедулер всегда не-спотовый. Но через пару секунд всё это добро удалилось тк coiled не смог восстановить окружение моего ноута: "ClusterCreationError: Cluster status is error (reason: Scheduler Stopped -> Software build failed -> Conda package install failed with the following errors: package anaconda-2022.10-py310_0 requires pip 22.2.2 py310h06a4308_0, but none of the providers can be installed) (cluster_id: 194588)."
Придётся сначала создавать софтовое окружение явно, как я и думал. Но уже видно, что, несмотря на огромную проделанную работу, coiled не довели её до совершенства. При работе с облаком всегда актуален вопрос стоимости, а тут никаких тебе оптимизаций цен. Максимум они могут "посоветовать" регион с высокими шансами получить машины. Можно указать перечень допустимых инстансов и регион, но цены на них ты должен вызнавать самостоятельно. И никак не регламентировано, как создаются гетерогенные кластера с инстансами разных типов. Такое ощущение, что coiled просто насыпает каких-то рандомных или же дефолтных инстансов, какие может получить от облачного провайдера.
Экспериментирую с Dask и Coiled. Первые впечатления - всё смешалось, кони, люди. Кластеру coiled при старте передаётся параметр n_workers=int, который в обычном dask значит то ли число узлов (компьютеров, виртуальных машин), то ли число процессов на узле, в зависимости от настроек. Я попробовал заказать n_workers=8 на AWS c compute_purchase_option="spot", он мне бахнул 8 инстансов t3.xlarge (4 vCPU, 16Gb RAM), надеюсь, спотовых, +1 scheduler, если верить доке, шедулер всегда не-спотовый. Но через пару секунд всё это добро удалилось тк coiled не смог восстановить окружение моего ноута: "ClusterCreationError: Cluster status is error (reason: Scheduler Stopped -> Software build failed -> Conda package install failed with the following errors: package anaconda-2022.10-py310_0 requires pip 22.2.2 py310h06a4308_0, but none of the providers can be installed) (cluster_id: 194588)."
Придётся сначала создавать софтовое окружение явно, как я и думал. Но уже видно, что, несмотря на огромную проделанную работу, coiled не довели её до совершенства. При работе с облаком всегда актуален вопрос стоимости, а тут никаких тебе оптимизаций цен. Максимум они могут "посоветовать" регион с высокими шансами получить машины. Можно указать перечень допустимых инстансов и регион, но цены на них ты должен вызнавать самостоятельно. И никак не регламентировано, как создаются гетерогенные кластера с инстансами разных типов. Такое ощущение, что coiled просто насыпает каких-то рандомных или же дефолтных инстансов, какие может получить от облачного провайдера.
#dask #coiled
Ураа, после пары часов танцев удалось запустить вычисления на кластере AWS через coiled. Уже хотел отказаться от этой затеи, т.к. постоянно выкидывало ошибку что не установлен мой модуль, хотя я его копировал на узлы с помощью client.upload_file. Уже было расстроился, что не получается сделать прозрачную замену локального dask на распределённый, но оказалось, в той функции, что требуется запустить на кластере, надо сделать импорт из нужного модуля, и тогда всё заработает. Это нигде не документировано и в поисковике не находится, не удивлюсь, если многие до этой проблемы дошли и бросили. Ну ладно, все проблемы решены, получается? Нет, конечно.
Замерил использование CPU на воркере, похоже, всегда загружено только 1 ядро, что за чёрт? Запостил вопрос на их гитхабе (другой поддержки там не предусмотрено).
Похоже, стартап с US$ 21M финансированием, цель которого демократизировать кластерные вычисления питонистов в облаках... решил, что поддерживать многопроцессовость vs многопотоковость, которая нужна для чистого питон-кода, не умеющего обходить GIL, (и которая уже была в dask) не надо, и так сойдёт. Как говорится, что это, глупость или предательство?
Пока что мне подсказали использовать много машинок не более чем с 2 vCPU. По результатам теста, действительно, это позволяет извлечь максимум из железа: 1 ядро по-любому подсунут виртуальное (HT), и оно даёт +15% к производительнсти, даже с учётом того, что dask от coiled на потоках (не знаю, как это получается). Но при добавлении ещё одного реального и виртуального ядра это масштабирается ещё на 15% вместо 50%, что уже невыгодно. Конечно, создавать каждый раз вирутальный сервер со своим полноразмерным образом диска ради 2 потоков глупо, ну а что делать.
Ураа, после пары часов танцев удалось запустить вычисления на кластере AWS через coiled. Уже хотел отказаться от этой затеи, т.к. постоянно выкидывало ошибку что не установлен мой модуль, хотя я его копировал на узлы с помощью client.upload_file. Уже было расстроился, что не получается сделать прозрачную замену локального dask на распределённый, но оказалось, в той функции, что требуется запустить на кластере, надо сделать импорт из нужного модуля, и тогда всё заработает. Это нигде не документировано и в поисковике не находится, не удивлюсь, если многие до этой проблемы дошли и бросили. Ну ладно, все проблемы решены, получается? Нет, конечно.
Замерил использование CPU на воркере, похоже, всегда загружено только 1 ядро, что за чёрт? Запостил вопрос на их гитхабе (другой поддержки там не предусмотрено).
Похоже, стартап с US$ 21M финансированием, цель которого демократизировать кластерные вычисления питонистов в облаках... решил, что поддерживать многопроцессовость vs многопотоковость, которая нужна для чистого питон-кода, не умеющего обходить GIL, (и которая уже была в dask) не надо, и так сойдёт. Как говорится, что это, глупость или предательство?
Пока что мне подсказали использовать много машинок не более чем с 2 vCPU. По результатам теста, действительно, это позволяет извлечь максимум из железа: 1 ядро по-любому подсунут виртуальное (HT), и оно даёт +15% к производительнсти, даже с учётом того, что dask от coiled на потоках (не знаю, как это получается). Но при добавлении ещё одного реального и виртуального ядра это масштабирается ещё на 15% вместо 50%, что уже невыгодно. Конечно, создавать каждый раз вирутальный сервер со своим полноразмерным образом диска ради 2 потоков глупо, ну а что делать.
GitHub
Making a worker use processes rather than cores · Issue #238 · coiled/feedback
Hi, I am trying to run distributed computing on AWS using coiled. My code is pure Python and therefore can not bypass the GIL. When testing with local Dask on my laptop, to activate all cores I had...
#dask #coiled
Так смешно. Мэтт Роклин, глава Coiled (и создатель Dask), прислал мне емэйл, что, мол, я престал пользоваться их продуктом, не предоставлю ли обратную связь, почему так вышло? Не знаю, часть ли это стандартной практики контроля качества, или связано с нашей беседой по поводу отсутствия в койлед функциональности мультипотоков, которая есть в опенсорсном dask-distributed, на что я указал им в issue и они пытались мне помочь (но их советы не сработали). Я ответил на письмо, что детальный feedback предоставлю, но мне только нужно понять, насколько развитие dask-distributed создаёт конфликт интересов с развитием коммерческого Койлед, к примеру, что будет, если я предложу PR по добавлению в AWS dask-cloudporvider спотовых инстансов, которых там по странному стечению обстоятельств не завезли. В течение часа Мэтт ответил, что это не проблема, и парни из nvidia, которые тоже поддерживают dask, будут рады это принять. Ну хорошо, подумал я, люди открыты меняться в лучшую сторону, и честно изложил во втором письме свои мысли по поводу того, что Койлед берёт слишком много денег за весьма скромную функциональность, и не пытается даже решить актуальные проблемы: выбор серверов где нагрузка юзера будет считаться быстрее и дешевле, гетерогенные кластера в разных облаках, прогноз interruption rates, prices, perf scores с помощью ML и предоставление пользователю этих оценок. Я как-то думал, это приведёт к плодотворной дискуссии, но прошло уже несколько дней, а мой визави просто пропал )
В связи с этим вспомнился анекдот:
- Вы указали в резюме, что Вашим основным недостатком является привычка всегда говорить напрямик и только правду, верно?
- Да.
- Но, знаете, я думаю, это вовсе не недостаток, а даже преимущество.
- Да мне по*уй, что ты там думаешь.
Так смешно. Мэтт Роклин, глава Coiled (и создатель Dask), прислал мне емэйл, что, мол, я престал пользоваться их продуктом, не предоставлю ли обратную связь, почему так вышло? Не знаю, часть ли это стандартной практики контроля качества, или связано с нашей беседой по поводу отсутствия в койлед функциональности мультипотоков, которая есть в опенсорсном dask-distributed, на что я указал им в issue и они пытались мне помочь (но их советы не сработали). Я ответил на письмо, что детальный feedback предоставлю, но мне только нужно понять, насколько развитие dask-distributed создаёт конфликт интересов с развитием коммерческого Койлед, к примеру, что будет, если я предложу PR по добавлению в AWS dask-cloudporvider спотовых инстансов, которых там по странному стечению обстоятельств не завезли. В течение часа Мэтт ответил, что это не проблема, и парни из nvidia, которые тоже поддерживают dask, будут рады это принять. Ну хорошо, подумал я, люди открыты меняться в лучшую сторону, и честно изложил во втором письме свои мысли по поводу того, что Койлед берёт слишком много денег за весьма скромную функциональность, и не пытается даже решить актуальные проблемы: выбор серверов где нагрузка юзера будет считаться быстрее и дешевле, гетерогенные кластера в разных облаках, прогноз interruption rates, prices, perf scores с помощью ML и предоставление пользователю этих оценок. Я как-то думал, это приведёт к плодотворной дискуссии, но прошло уже несколько дней, а мой визави просто пропал )
В связи с этим вспомнился анекдот:
- Вы указали в резюме, что Вашим основным недостатком является привычка всегда говорить напрямик и только правду, верно?
- Да.
- Но, знаете, я думаю, это вовсе не недостаток, а даже преимущество.
- Да мне по*уй, что ты там думаешь.