Уведомления

Группа в Telegram: @pythonsu

#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
Сообщения: 2196
Репутация: +  294  -
Профиль   Отправить e-mail  

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

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



==============================
Помещайте код в теги:
[code python][/code]
Бериегите свое и чужое время.

Отредактировано 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
Сообщения: 4138
Репутация: +  252  -
Профиль   Отправить e-mail  

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

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

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



Офлайн

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

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

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

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



==============================
Помещайте код в теги:
[code python][/code]
Бериегите свое и чужое время.

Отредактировано 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)

Офлайн

#8 Май 20, 2021 08:46:59

AD0DE412
Зарегистрирован: 2019-05-12
Сообщения: 1130
Репутация: +  44  -
Профиль   Отправить e-mail  

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

может быть затолкать файлы в ram? https://www.youtube.com/watch?v=ZFyM0JgLqjg
ну или memcached (ну тут понятно ограничения по объему и … хотя … не все равно спорно)



1. пжлст, форматируйте код, это в панели создания сообщений, выделите код и нажмите что то вроде
2. чтобы вставить изображение залейте его куда нибудь (например), нажмите и вставьте ссылку на его url

есчщо

Отредактировано AD0DE412 (Май 20, 2021 09:06:26)

Офлайн

Board footer

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

Powered by DjangoBB

Lo-Fi Version