Уведомления

Группа в Telegram: присоединиться

#1 Окт. 12, 2020 10:46:37

AlekseyPy
Зарегистрирован: 2020-10-08
Сообщения: 10
Репутация: +  0  -
Профиль   Отправить e-mail  

Можно ли с помощью пакета Numpy асинхронно читать файлы?

Не нашел в их документации по чтению файлов каких- либо отсылок к асинхронности. Я правильно понимаю, что ее совсем нет в Numpy или есть какие- то хитрые трюки, позволяющие получить асинхронность при чтении файлов с помощью библиотеки NumPy?

Заранее благодарю за помощь.

Офлайн

#2 Окт. 12, 2020 17:06:19

PEHDOM
Зарегистрирован: 2016-11-28
Сообщения: 1752
Репутация: +  248  -
Профиль   Отправить e-mail  

Можно ли с помощью пакета Numpy асинхронно читать файлы?

AlekseyPy
Я правильно понимаю, что ее совсем нет в Numpy
Да ,Numpy это не про асинхронность, мухи отдельно, асинхронность отдельно.
AlekseyPy
есть какие- то хитрые трюки, позволяющие получить асинхронность при чтении файлов с помощью библиотеки NumPy?
есть, ровно такие же как и при чтении с помощью любой другой библиотеки. Правда возникает вопрос целесообразности, так как скорость чтения с помощью asyncio на порядок меньше чем без него
https://www.confessionsofadataguy.com/python-async-file-operations-juice-worth-the-squeeze/

Отредактировано PEHDOM (Окт. 12, 2020 17:21:26)

Офлайн

#3 Окт. 14, 2020 07:07:00

peterjohnee1
Зарегистрирован: 2020-10-14
Сообщения: 1
Репутация: +  -1  -
Профиль   Отправить e-mail  

Можно ли с помощью пакета Numpy асинхронно читать файлы?

Thank you when you have a hard time because if you don't have it, you won't have a chance to understand yourself and experience life cookie clicker

Офлайн

#4 Окт. 14, 2020 08:42:31

AlekseyPy
Зарегистрирован: 2020-10-08
Сообщения: 10
Репутация: +  0  -
Профиль   Отправить e-mail  

Можно ли с помощью пакета Numpy асинхронно читать файлы?


PEHDOM
есть, ровно такие же как и при чтении с помощью любой другой библиотеки. Правда возникает вопрос целесообразности, так как скорость чтения с помощью asyncio на порядок меньше чем без него
https://www.confessionsofadataguy.com/python-async-file-operations-juice-worth-the-squeeze/

Вы пишите, что такие способы есть, но приведенный вами код полностью заменяет исходный на асинхронный. У меня другая ситуация: я не могу переписать весь NumPy.
В свое время я делал тесты скорости чтения крупных файлов и насколько мне помнится за счет 2-ух коррутин на один процесс получил прирост производительности ~ 30-40% (3-и коррутины не давали преимущества перед 2-умя). Так что asyncio рулит (если правильно пользоваться).

Офлайн

#5 Окт. 14, 2020 08:53:19

doza_and
От:
Зарегистрирован: 2010-08-15
Сообщения: 3705
Репутация: +  220  -
Профиль   Отправить e-mail  

Можно ли с помощью пакета Numpy асинхронно читать файлы?

AlekseyPy
мне помнится за счет 2-ух коррутин на один процесс получил прирост производительности ~ 30-40%
Очень интересно. Пришлите код. Опишите какое у вас железо. Мы специально занимались оптимизацией чтения и записи больших файлов на языке C. Многопоточность чтения существенно СНИЖАЕТ скорость ФАЙЛОВЫХ ОПЕРАЦИЙ, поскольку увеличивает потребность в репозиционировании головок жесткого диска. С SSD дисками ситуация наверное другая.

Но безусловно предоставляемые ОС операции асинхронного чтения имеют смысл при определенных сценариях использования



Офлайн

#6 Окт. 15, 2020 09:58:19

PEHDOM
Зарегистрирован: 2016-11-28
Сообщения: 1752
Репутация: +  248  -
Профиль   Отправить e-mail  

Можно ли с помощью пакета Numpy асинхронно читать файлы?

AlekseyPy
Так что asyncio рулит (если правильно пользоваться).
так я ж не спорю, возможно, конкретно в вашей ситуации прирост и будет, лично я не мерял, за что купил за то и продаю, но вот doza_and мерял и говорит примерно тоже самое. это что касаеться ХДД, может для ССД действительно другая ситуация.
AlekseyPy
я не могу переписать весь NumPy.
Ну может весь и не надо, если хотите есть вариант:
вот линк на чтение csv https://pypi.org/project/aiofile/ (искать Async CSV Dict Reader)
там максимально понятный пример, попробйте переделать для нампи. Может чтото и получиться.
ЗЫ за скорость не гарантирую.

Отредактировано PEHDOM (Окт. 15, 2020 10:00:47)

Офлайн

#7 Окт. 17, 2020 13:46:00

AlekseyPy
Зарегистрирован: 2020-10-08
Сообщения: 10
Репутация: +  0  -
Профиль   Отправить e-mail  

Можно ли с помощью пакета Numpy асинхронно читать файлы?

PEHDOM
может для ССД действительно другая ситуация
Действительно, я использовал ССД.
Хотя при работе с асинхроностью всегда надо следить, чтобы накладные расходы на использование цикла коррутин были ниже потенциальной выгоды. Например, в представленном примере файлы читаются целиком (потому что у метода read( ) не указан размер считываемого блока) и возможно они очень маленькие. Я читал большие файлы и четко указывал, что читать блоком размером 1Мбайт.
Есть видео с разбором похожего вопроса, только там асинхронность использовалась для доступа к СУБД: на легких запросах asyncio отставал от конкурентов, а на тяжелых- отрывался вперед.

Отредактировано AlekseyPy (Окт. 18, 2020 08:47:23)

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version