Корректировка 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
Многостраничный HTML-шаблон веб-сайта для онлайн-ставок и парсинг API матчей (
1109 UAH
|
Создать бота в телеграм (кабинет продавца)
700 UAH
Всем привет Нужен личный кабинет пользователя в формате бота в телеграм После запуска и прохождения опроса, под пользователя создается личный кабинет (его допускает в систему на дальнейшие кнопки) Чтобы у каждого, кто зарегистрировался, высвечивался в отдельном меню Уникальный… Python, Разработка ботов ∙ 1 день 3 часа назад ∙ 92 ставки |
Найти товарный фид (Google Merchant XML) для сайта на OpenCart
700 UAH
Необходимо найти прямую ссылку на действующий товарный фид (XML) конкурента для Google Merchant Center Платформа (CMS): OpenCart / ocStore Найти оригинальный фидТребования к результату: Рабочая ссылка на XML-файл Python, Парсинг данных ∙ 1 день 13 часов назад ∙ 21 ставка |
Розработка Тик-Ток фермы (контент-завод)Необзодимо разработать систему для централизованного управления несколькими TikTok-аккаунтами с автоматической публикацией контента, использованием индивидуальных прокси и имитацией естественной активности аккаунтов. Функциональные требования1. Управление аккаунтами Добавление… Python, Разработка ботов ∙ 2 дня 1 час назад ∙ 19 ставок |
Улучшить работу Claude Code и работа с написанием софтаСейчас разрабатываю СРМ и Аналитику, софт. Делаю через Клод Код, но понимаю что результаты не лучшие в плане изменений. Есть 2 задачи - Нужно помочь сделать пресет по навыкам, мд и так далее чтобы улучшить качество. Взять проверенные с которыми работали, а не с интернета… AI и машинное обучение, Python ∙ 2 дня 7 часов назад ∙ 23 ставки |