Корректировка 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 хвилин. У фінальному коді відкоментую що модифікував(додав, видалив, змінив), та чому саме ввів кожну модифікацію.
-
видалено модератором
-
Читать одну переменную из разных потоков можно, вот писать в неё - уже не стоит.
И 4-5 секунд на каждый магаз в отдельном потоке, если одним потоком они обрабатываются 4+4+4 - не то чтобы совсем нереально (хотя 4 будет уж совсем вряд ли), но все таки весьма оптимистично. Я бы при таком раскладе и 6 секунд на магазин посчитал бы неплохим результатом.
-
Нужно видеть код.
Читать из одной переменной можно. Но, вопрос такой - она (эта переменная) изменяется по мере работы?
Анализ товара в магазине зависит как-то от анализа товаров, произведенных до него?А почему вам многопроцессовость не подходит? Или celery например?
-
Может кто-то знаком с Cython? Есть предположения, что так получиться ускорить работу.
-
Шановний, а перша частина (читання та чистка даних) йде окремо по кожному магазину чи одразу по усім 370 магазинам?
Чи не виявиться випадково що 35 хвилин йде послідовне читання та чистка, а решту 5 хвилин - аналітика та обробка даних?
Люблю нетривіальні задачі, але перш ніж братися хотів би бачити код. Краще - шліть в особисті повідомлення
-
Добрый день. Хотелось бы ознакомиться с Вашим скриптом. Могли бы ли Вы отправить мне его (или хотя бы ту часть, которую следует распараллелить)?
-
Актуальні фриланс-проєкти в категорії Python
Створення бота багато фунціонального бота в телеграм
1000 UAH
(Всі матеріали предоставлю в приватні повідомлення) Ось детальний опис проєкту: Псіля натискання кнопки /start Бот присилає текст з правилми та умови користування (під текстом, кнопка ‘ознакомлен’) Після натискання на кнопку, наступне повідомлення ʼпроверка на подпискуʼ Три… Python, Розробка ботів ∙ 2 дні 1 година тому ∙ 92 ставки |
Знайти товарний фід (Google Merchant XML) для сайту на OpenCart
700 UAH
Необхідно знайти пряме посилання на діючий товарний фід (XML) конкурента для Google Merchant Center Платформа (CMS): OpenCart / ocStore Знайти оригінальний фідВимоги до результату: Робоче посилання на XML-файл Python, Парсинг даних ∙ 4 дні 14 годин тому ∙ 25 ставок |
Розробка Тік-Ток ферми (контент-завод)Необхідно розробити систему для централізованого управління кількома TikTok-акаунтами з автоматичною публікацією контенту, використанням індивідуальних проксі та імітацією природної активності акаунтів. Функціональні вимоги1. Управління акаунтами Додавання та видалення… Python, Розробка ботів ∙ 5 днів 1 година тому ∙ 19 ставок |
Покращити роботу Claude Code та роботу з написанням програмного забезпеченняЗараз розробляю СРМ та Аналітику, софт. Роблю через Клод Код, але розумію, що результати не найкращі в плані змін. Є 2 задачі - Потрібно допомогти зробити пресет по навичкам, мд і так далі, щоб покращити якість. Взяти перевірені, з якими працювали, а не з інтернету перші. - В… AI та машинне навчання, Python ∙ 5 днів 8 годин тому ∙ 26 ставок |
Система OCRПотрібна система розпізнавання тексту на поштових конвертах (індекс кому - лише числа). Текст інколи може бути рукописним Розпізнавання марок (підрахунок кількості та номіналу) Python ∙ 5 днів 11 годин тому ∙ 28 ставок |