Корректировка Python скрипта под Многопоточность.
ПРЕДЫСТОРИЯ #
Предположим есть Магазины. В Магазинах есть товар для продажи.
Задача скрипта спрогнозировать кол-во продаж по Каждому Магазину, по Каждому Товару.
Будем считать, что скрипт разделён на две части.
1. Обработка входящих данных.
а. Загрузка данных.
б. Чистка этих данных и отбор только нужных.
2. Сам этап прогнозирования.
а. Первый цикл проходит по Магазинам.
б. Второй цикл проходит по Товару.
(Цикл в Цикле). Дальше в скрипте обозначено место, которое надо переписать для многопоточности. Не многопроцессорность! Функция "map()" - не подходит.
ТЕКУЩАЯ РАБОТА #
Выполнение Первой части скрипта занимает примерно 1 минуту.
Выполнения прогнозирования по 1 Магазину занимает 3-10 секунд (в среднем 4 сек.).
Прогнозирования работает последовательно (2 цикла "for").
Магазинов примерно 370+.
Общее время выполнения скрипта примерно 40 минут +-.
ЗАДАЧА #
Рассмотрим ТРИ Магазина.
Данный скрипт прогнозирует 3 магазина за 4+4+4=12 сек.
Я хочу, чтобы 3 магазина прогнозировались за 4-5 сек. (в отдельных потоках).
В итоге (в идеале) хочу сократить время выполнения скрипта с 40 мин. до 5-7 мин.
Все результаты прогнозирования должны быть записаны в ОДИН "pandas.DataFrame".
ПРОБЛЕМА #
Я уже несколько недель пытался это сделать, но желаемого результата так и не добился.
У меня получилось добиться, как таковой, многопоточности. Но есть предположение, что у меня не получилось решить вопрос с "Race Conditions".
Также вопрос с загрузочными данными. Могут ли потоки одновременно считывать данные с одной и той же переменной?
По всем вопросам пишите в Telegram.
-
24 За 5 днів модифікую Ваш скрипт так, щоб час його виконання (при тих самих за розміром вхідних даних) був менше 7 хвилин. У фінальному коді відкоментую що модифікував(додав, видалив, змінив), та чому саме ввів кожну модифікацію.
-
usunięte przez moderatora
-
Читать одну переменную из разных потоков можно, вот писать в неё - уже не стоит.
И 4-5 секунд на каждый магаз в отдельном потоке, если одним потоком они обрабатываются 4+4+4 - не то чтобы совсем нереально (хотя 4 будет уж совсем вряд ли), но все таки весьма оптимистично. Я бы при таком раскладе и 6 секунд на магазин посчитал бы неплохим результатом.
-
Нужно видеть код.
Читать из одной переменной можно. Но, вопрос такой - она (эта переменная) изменяется по мере работы?
Анализ товара в магазине зависит как-то от анализа товаров, произведенных до него?А почему вам многопроцессовость не подходит? Или celery например?
-
Может кто-то знаком с Cython? Есть предположения, что так получиться ускорить работу.
-
Шановний, а перша частина (читання та чистка даних) йде окремо по кожному магазину чи одразу по усім 370 магазинам?
Чи не виявиться випадково що 35 хвилин йде послідовне читання та чистка, а решту 5 хвилин - аналітика та обробка даних?
Люблю нетривіальні задачі, але перш ніж братися хотів би бачити код. Краще - шліть в особисті повідомлення
-
Добрый день. Хотелось бы ознакомиться с Вашим скриптом. Могли бы ли Вы отправить мне его (или хотя бы ту часть, которую следует распараллелить)?
-
Aktualne zlecenia dla freelancerów w kategorii Python
Stworzenie wielofunkcyjnego bota w Telegramie
83 PLN
(Wszystkie materiały przekażę w prywatnych wiadomościach) Oto szczegółowy opis projektu: Po naciśnięciu przycisku /start Bots wysyła tekst z zasadami i warunkami korzystania (pod tekstem przycisk 'zapoznałem się') Po naciśnięciu przycisku, następna wiadomość 'sprawdzenie… Python, Tworzenie chatbota ∙ 12 godzin 23 minuty temu ∙ 66 ofert |
Znaleźć feed produktowy (Google Merchant XML) dla strony na OpenCart
58 PLN
Konieczne jest znalezienie bezpośredniego linku do działającego pliku z danymi produktowymi (XML) konkurenta dla Google Merchant Center Platforma (CMS): OpenCart / ocStore Znajdź oryginalny plik z danymiWymagania dotyczące wyniku: Roboczy link do pliku XML Python, Parsowanie danych ∙ 3 dni 1 godzina temu ∙ 22 oferty |
Rozwój farmy Tik-Tok (fabryka treści)Konieczne jest opracowanie systemu do centralnego zarządzania wieloma kontami TikTok z automatycznym publikowaniem treści, wykorzystaniem indywidualnych proxy oraz symulacją naturalnej aktywności kont. Wymagania funkcjonalne1. Zarządzanie kontami Dodawanie i usuwanie kont… Python, Tworzenie chatbota ∙ 3 dni 13 godzin temu ∙ 19 ofert |
Poprawić działanie Claude Code i prace związane z pisaniem oprogramowaniaObecnie rozwijam CRM i analitykę, oprogramowanie. Robię to przez Claude Code, ale rozumiem, że wyniki nie są najlepsze pod względem zmian. Mam 2 zadania - Potrzebuję pomocy w stworzeniu presetów dotyczących umiejętności, MD itd., aby poprawić jakość. Wziąć sprawdzone, z którymi… AI i uczenie maszynowe, Python ∙ 3 dni 19 godzin temu ∙ 24 oferty |
System OCRPotrzebny jest system rozpoznawania tekstu na kopertach pocztowych (indeks - tylko liczby). Tekst czasami może być ręcznie napisany. Rozpoznawanie znaczków (liczenie ilości i nominałów) Python ∙ 3 dni 22 godziny temu ∙ 26 ofert |