Корректировка 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 хвилин. У фінальному коді відкоментую що модифікував(додав, видалив, змінив), та чому саме ввів кожну модифікацію.
-
deleted by moderator
-
Читать одну переменную из разных потоков можно, вот писать в неё - уже не стоит.
И 4-5 секунд на каждый магаз в отдельном потоке, если одним потоком они обрабатываются 4+4+4 - не то чтобы совсем нереально (хотя 4 будет уж совсем вряд ли), но все таки весьма оптимистично. Я бы при таком раскладе и 6 секунд на магазин посчитал бы неплохим результатом.
-
Нужно видеть код.
Читать из одной переменной можно. Но, вопрос такой - она (эта переменная) изменяется по мере работы?
Анализ товара в магазине зависит как-то от анализа товаров, произведенных до него?А почему вам многопроцессовость не подходит? Или celery например?
-
Может кто-то знаком с Cython? Есть предположения, что так получиться ускорить работу.
-
Шановний, а перша частина (читання та чистка даних) йде окремо по кожному магазину чи одразу по усім 370 магазинам?
Чи не виявиться випадково що 35 хвилин йде послідовне читання та чистка, а решту 5 хвилин - аналітика та обробка даних?
Люблю нетривіальні задачі, але перш ніж братися хотів би бачити код. Краще - шліть в особисті повідомлення
-
Добрый день. Хотелось бы ознакомиться с Вашим скриптом. Могли бы ли Вы отправить мне его (или хотя бы ту часть, которую следует распараллелить)?
-
Current freelance projects in the category Python
Creation of a multifunctional bot in Telegram
22 USD
(I will provide all materials in private messages) Here is a detailed project description: After pressing the button /start The bot sends a text with rules and terms of use (under the text, the button ‘acknowledged’) After pressing the button, the next message is… Python, Bot Development ∙ 1 day 22 hours back ∙ 92 proposals |
Find a product feed (Google Merchant XML) for a website on OpenCart
16 USD
It is necessary to find a direct link to the active product feed (XML) of a competitor for Google Merchant Center Platform (CMS): OpenCart / ocStore Find the original feedRequirements for the result: Working link to the XML file Python, Data Parsing ∙ 4 days 11 hours back ∙ 25 proposals |
Development of a TikTok farm (content factory)It is necessary to develop a system for centralized management of multiple TikTok accounts with automatic content publishing, using individual proxies and simulating natural account activity. Functional Requirements1. Account Management Adding and removing TikTok accounts.… Python, Bot Development ∙ 4 days 23 hours back ∙ 19 proposals |
Improve the performance of Claude Code and work on software development.I am currently developing CRM and Analytics software. I am using Claude Code, but I understand that the results are not the best in terms of changes. There are 2 tasks - Need help creating a preset for skills, MD, and so on to improve quality. Take verified ones that have been… AI & Machine Learning, Python ∙ 5 days 5 hours back ∙ 26 proposals |
OCR systemA system for recognizing text on postal envelopes (index for whom - only numbers). The text can sometimes be handwritten. Recognition of stamps (counting quantity and denomination) Python ∙ 5 days 8 hours back ∙ 28 proposals |