Вопросы по теме 'gil'

OpenMP, Python, расширение C, доступ к памяти и злой GIL
поэтому в настоящее время я пытаюсь сделать что-то вроде A ** b для некоторого 2d ndarray и двойного b параллельно для Python. Я хотел бы сделать это с помощью расширения C, используя OpenMP (да, я знаю, есть Cython и т. Д., Но в какой-то момент у...
472 просмотров
schedule 07.09.2021

Где я могу найти список функций numpy, которые выпускают GIL?
Я нашел несколько SO-вопросов, которые так или иначе задают этот вопрос, но ни один из них не дает ни одного списка, ни ссылки на него. Этот вопрос относится к страница вики , но хотя на странице вики говорится о GIL и многопоточности, она не...
1347 просмотров
schedule 24.10.2021

Как вызвать многопоточный код Python из C ++?
Я пытаюсь подключиться к устаревшему многопотоковому приложению Python из разрабатываемого нового кода C ++. Кажется, я не могу заставить вызовы C ++ в Python работать надежно, если код Python запустил поток. В псевдокоде я пытаюсь заставить...
674 просмотров
schedule 26.10.2021

Распараллеливание программы python3 с огромными сложными объектами
вступление У меня есть довольно сложная программа на Python (скажем, более 5000 строк), написанная с помощью Python 3.6 . Эта программа анализирует огромный набор данных из более чем 5000 файлов, обрабатывает их, создавая внутреннее представление...
71 просмотров

Вызов функции, требующей gil, не разрешен без ошибки компиляции gil с C++
По сути, это расширение этого вопроса - Использование threadpoolexecutor в сочетании с cython ногил В этом случае мой метод getArea2() немного отличается cdef int getArea2(self,double[:] p) nogil: cdef int area cdef SphericalPoint...
928 просмотров
schedule 01.03.2022

Освобождение GIL после уничтожения подинтерпретатора
Я встраиваю Python 3.2 в приложение C++, и у меня есть несколько подинтерпретаторов, которые в разное время запускаются в программах (созданы Py_NewInterpreter ). Они приобретают и выпускают GIL в разное время, но я столкнулся с проблемой, когда...
457 просмотров
schedule 19.03.2022

Существует ли универсальный способ проверки существования GIL?
Я пишу многопоточное приложение Python, которое будет вести себя по-разному в системах в зависимости от деталей реализации GIL. Есть ли универсальный способ проверить, есть ли у интерпретатора, на котором я работаю, GIL в стиле CPython?
57 просмотров
schedule 01.04.2022

Почему этот скрипт Python работает в 4 раза медленнее на нескольких ядрах, чем на одном ядре
Я пытаюсь понять, как работает GIL CPython и каковы различия между GIL в CPython 2.7.x и CPython 3.4.x. Я использую этот код для бенчмаркинга: from __future__ import print_function import argparse import resource import sys import threading...
1923 просмотров
schedule 11.05.2022

Почему значение max_workers по умолчанию для ThreadPoolExecutor определяется на основе количества процессоров?
В документации для concurrent.futures.ThreadPoolExecutor говорится: Изменено в версии 3.5: если max_workers равно None или не задано, по умолчанию будет указано количество процессоров на машине, умноженное на 5 , при условии, что...
3743 просмотров
schedule 24.08.2022

Как я могу проверить, содержит ли поток в настоящее время GIL?
Я попытался найти функцию, которая сообщает мне, имеет ли текущий поток глобальную блокировку интерпретатора или нет. Документация Python/C-API, похоже, не содержит такой функции. Мое текущее решение состоит в том, чтобы просто получить...
4652 просмотров
schedule 05.10.2022

Многопоточный пример Python GIL
Я довольно много читал о том, насколько «плох» этот бизнес с GIL на питоне при написании многопоточного кода, но я никогда не видел примера. Может кто-нибудь, пожалуйста, дайте мне простой пример, когда GIL вызывает проблемы при использовании...
4925 просмотров

Обработка списка списков в Cython с помощью nogil
В Python у меня есть список списков в качестве входных данных: input = [[0,1,2],[0,3,4,5],[0,6]] На самом деле количество подсписков исчисляется десятками тысяч. Длина каждого подсписка может сильно различаться, от нуля или одного значения...
789 просмотров
schedule 01.10.2022

CherryPy в 60 раз медленнее в тесте с 8 запрашивающими потоками по сравнению с 7
Мне любопытно, почему при тестировании веб-сервера Python CherryPy с использованием ab с -c 7 (7 одновременных потоков) он может обслуживать 1500 запросов/с (около того, что я ожидаю), но когда я перехожу на -c 8 , он падает до 25 запросов/с....
1955 просмотров

Поддерживает ли параметр потока Pypy без стека параллельное выполнение?
Я читал о функции PyPy без стека . Мой вопрос прост: обходит ли это GIL? На странице говорится, что это позволяет кодировать в «массово параллельном стиле». Означает ли это также массово-параллельный стиль с использованием нескольких ядер?
676 просмотров
schedule 26.12.2022

Может ли режим округления FPU, установленный в процессе Python, быть изменен другим процессом Python?
Я часто использую библиотеку libqd, которая требует установки режима округления FPU перед любыми вычислениями. До сих пор я в основном использовал его в программах на C, но время от времени я хотел бы использовать его в скриптах Python. Я слышал о...
45 просмотров
schedule 10.04.2023

Python GIL предотвращает превышение загрузки ЦП на 100% на многоядерной машине?
Многие ссылки говорят, что Python GIL снижает производительность многопоточного кода на многоядерной машине, поскольку каждый поток должен будет получить GIL перед выполнением. Другими словами, похоже, что GIL фактически переводит многопоточную...
1065 просмотров
schedule 08.03.2023

Производительность Python Threading против количества ядер
Я новичок в python и изучаю многопоточность и GIL. Это статистика команды lscpu : Architecture: x86_64 CPU op-mode(s): 32-bit, 64-bit Byte Order: Little Endian CPU(s): 4 On-line CPU(s) list: 0-3...
1367 просмотров
schedule 15.06.2023

Нужно ли заботиться о Python GIL при работе с многопоточным расширением C++?
Сейчас я реализую подписчика данных с помощью Python, который подписывается на издателя данных (на самом деле это сокет издателя ZeroMQ) и будет получать уведомления при получении любых новых сообщений. В моем подписчике сообщения сбрасываются в...
2479 просмотров
schedule 23.12.2022

Распараллеливание потоков Python без GIL
Я перефразирую свой вопрос, потому что я думаю, что многие думали, что это вопрос «есть ли у python потоки». Это так, но в CPython также есть GIL, который никогда не будет планировать более одного потока в любой момент времени. Это делает потоки...
158 просмотров
schedule 03.12.2022

Локальные массивы потока в cython's prange без огромного выделения памяти
У меня есть несколько независимых вычислений, которые я хотел бы выполнять параллельно с помощью Cython. Сейчас я использую этот подход: import numpy as np cimport numpy as cnp from cython.parallel import prange [...] cdef...
456 просмотров