TGStat
TGStat
Qidiruv uchun matnni kiriting
Ilg‘or kanal qidiruvi
  • flag Uzbek
    Sayt tili
    flag Russian flag English flag Uzbek
  • Saytga kirish
  • Katalog
    Kanal va guruhlar katalogi Kanallar qidiruvi
    Kanal/guruh qo‘shish
  • Reytinglar
    Kanallar reytingi Guruhlar reytingi Postlar reytingi
    Brendlar va shaxslar reytingi
  • Analitika
  • Postlarda qidiruv
  • Telegram'ni kuzatish
Para||elix — платформа демосцены

27 Jan 2023, 22:29

Telegram'da ochish Ulashish Shikoyat qilish

Prev Next
Друзья! Хорошие новости! 🔥 Я реализовал параллелизм: API для вызова пользовательских функций в многопоточном режиме 🤩. Т.е. параллельный for, одномерный и двумерный. В частности, API будет вызывать вашу функцию для каждой строки экрана, для группы из нескольких пикселей (например, для 64-х) или для каждого пикселя в отдельности.

Самый медленный вариант (как можно догадаться) — использование попиксельных вызовов, т.к. он связан в большим кол-вом накладных расходов на вычисления и вызов функции. На моём компьютере такой режим позволяет достигать 1537 fps для FullHD (против 1112 fps для однопоточного режима) без учёта вывода на экран. Но это для отрисовки банального XOR-паттерна. Для таких простых операций использовать попиксельный режим неэффективно. Построчный или 64-пиксельный работает гораздо быстрее (до 6521 fps). Однако, если добавить в код холостой цикл на 1000 итераций, разница в попиксельном режиме будет куда существеннее: 32,34 fps в многопоточном коде против 2,21 fps в однопоточном (ускорение в 14,639 раз). Т.е. для сложных алгоритмов (реймаршинг, фракталы) такой режим можно использовать.

Первый алгоритм for, который я сделал 2 дня назад (в таблице он обозначен "первая реализация"), работал ощутимо медленнее, т.к. был сделан совсем по-простому. Сегодня я его оптимизировал в 2.7-100 раз для однопиксельных режимов и до 4.5 раз для 64-пиксельных режимов работы. Но это, конечно, далеко не финальная оптимизация, там есть ещё над чем работать 😎

Так что друзья, можно сказать, что идея себя оправдала, параллелизм позволяет добиться существенного ускорения (у меня вышло до 16,7 раз для 20 потоков, из которых реальных ядер 12, остальные 8 — гипертреды) 🥳

Больше подробностей о тестровании скорости — в таблице (смотрите верхнюю половину, т.к. он учитывает только вычислительную часть, без вывода на экран, который вносит существенную лепту в скорость работы).

71 0 0
Katalog
Kanal va guruhlar katalogi Kanallar to‘plamlari Kanallar qidiruvi Kanal/guruh qo‘shish
Reytinglar
Telegram-kanallar reytingi Telegram-guruhlar reytingi Postlar reytingi Brendlar va shaxslar reytingi
API
Statistika API'si Postlar qidiruvi API'si API Callback
Kanallarimiz
@TGStat @TGStat_Chat @telepulse @TGStatAPI
O‘qish
Академия TGStat Telegram tadqiqoti 2019 Telegram tadqiqoti 2021 Telegram tadqiqoti 2023
Kontaktlar
Справочный центр Qo‘llab-quvvatlash Email Vakansiyalar
Har xil narsalar
Foydalanuvchi shartnomasi Maxfiylik siyosati Ommaviy oferta
Botlarimiz
@TGStat_Bot @SearcheeBot @TGAlertsBot @tg_analytics_bot @TGStatChatBot