ТОП способов Ускорить Код Python. На примере построения Фрактала Мандельброта в Pygame

preview_player
Показать описание
В этом видео строим Фрактал Мандельброта в Pygame и применяем наиболее простые и эффективные способы ускорения кода языка программирования Python.

Также будут использоваться параллельные вычисления на CPU и GPU. Разобрана эффективность применения следующих модулей: Numpy, Numba, Taichi

Код:

#standalonecoder
Рекомендации по теме
Комментарии
Автор

Тебя не остановить, столько роликов за короткий срок, круто) так держать)

mrvillst
Автор

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

mihail-lnrf
Автор

Супер, спасибо) давно хотел ускорить на питоне расчет и по путешествовать в фрактальном мире, но знаний не хватало. СПАСИБО за новую мотивацию) Расскажи еще о себе, чем занимаешься и твой путь в программирование, думаю всем будет интересно)

pashahous
Автор

Всегда поражаюсь, когда на канале с, условно говоря, небольшим количеством подписчиков вижу такой офигенский контент. Спасибо огромное!))

TheLokomotivbj
Автор

Сам давно хотел сделать фрактал Мандельброта или множество Жюлиа на питоне с масштабируемостью и постоянным рендерингом, а тут вышел видос. Красивый код получился)
Вот пара идей для проектов, было бы интересно увидеть их в твоем исполнении:
- Система массового обслуживания с визуализацией
- Моделирование перколяции в 2д и 3д. Выглядит очень красиво.

VarezVision
Автор

Я вот вроде инженер и программирую немного, но это тот случай когда очень интересно но так и не понятно как рисуется фрактал Мандельброта.

bhotksf
Автор

Раскраску мандельброта можно автоматически адаптировать, думаю даже объяснять не стоит, но например
1) красить в HSV, где H зациклен, а SV подбираются под требования. Кода минимум, но вырвиглазно
2) каждый цикл по градиенту спускаться по y ниже, а саму картинку по краям зациклить. Получится уникальная раскраска на долгие итерации вперёд
3) использовать динамическую нормализацию уровней, просто выбирая случайные пиксели на экране и смотреть на минимум и максимум, а потом сглаживать эти параметры

ATtinya-PU
Автор

Я из тех для кого это просто набор букв..и ничего не понял но очень интересно..)

drum-divancover
Автор

cpu: i5 4570; gpu: gtx1060 6gb

arch=cuda dtype=np.uint32 fps=158
archo=cuda dtype=np.uint8 fps=230

P.S. Спасибо за крутой ролик )

alexd
Автор

Только пожалуйста, не уходи на год, как в прошлый раз) и создай телеграмм канал где на голосование выставляй темы новых роликов или направлений для идей)

pashahous
Автор

Прекрасно, как всегда, правда, опять же, как всегда, сложно для понимания не на поверхностном уровне

magicmc
Автор

Хотелось бы увидеть курс по OpenCV на этом канале! :)

alexkapralov
Автор

Класс, теперь благодаря тебе буду знать как ускорить код👍

funny_poco
Автор

Супер!
Только детально бы разжевать самый простой пример для новичков.
И дать дальнейшие пояснения для особо тупых, спасибо!

sledleo
Автор

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

spanev
Автор

Очень интересная тема! Решил проверить производительность на своём ПК (cpu - ryzen 5 2600 4 Ghz, gpu - gtx 1050 ti):
1) max_iter = 30: cpu ~ 160 fps, cuda ~ 220 fps, vulkan ~ 230 fps, opengl ~ 25 fps, metal ~ 160 fps
2) max_iter = 3000: cpu ~ 8.5 fps, cuda ~ 110 fps, vulkan ~ 140 fps, opengl ~ 23 fps, metal ~ 8.5 fps
res = 800, 450 в обоих случаях

backer
Автор

Как человек, который самостоятельно изучает python уже 19 дней, могу с уверенностью утверждать - это все очень интересно, но, пока, не понятно :-)

lclusij
Автор

Отличное видео. Небыло желания проводить вычисления на pytorch? Синтаксис у него практически такой-же как в numpy, но есть возможность отправлять массивы на вычисления в видеокарту.

sladge
Автор

Как говорят ничего не понятно но очень интересно)

SHKIPPER
Автор

Я не понял зачем мне эта информация, но было круто!

bees_make_honey