multiprocessing- все статьи тега


Python 2.7 multiprocessing-не может передать объект сокета через словарь диспетчера

У меня есть простая программа, которая ищет открытые порты в локальной сети и сохраняет подключенные сокеты в словаре вместе с их локальным адресом. Теперь я использую общий словарь менеджера для хранения этих записей, но он принимает только простые объекты, а не экземпляры сокетов. Вот код: from multiprocessing import Process, Manager import socket manager = Manager() # Store connected sockets sockets = manager.dict() def ping_addr(addr=None, port=None, timeout=None): """ Create a s ...

Общая память и мультипроцессорная обработка

Из этого вопроса и его ответов я думаю, что я понимаю, почему этот код python: big_list = [ {j: 0 for j in range(200000)} for i in range(60) ] def worker(): for dic in big_list: for key in dic: pass print "." time.sleep(0.2) w = multiprocessing.Process(target=worker) w.start() time.sleep(3600) Продолжает использовать все больше и больше памяти во время выполнения: это потому, что дочерний процесс обновляет счетчик ссылок на объект общей па ...

Вложенный параллелизм в многопроцессорной системе Python

Я знаю, что это звучит как что-то, о чем спрашивали раньше, но подождите, я объясню, почему другие варианты не работают. В настоящее время я использую multiprocessing.Pool для реализации параллелизма в приложении и хотел бы расширить его, чтобы иметь возможность использовать вложенный параллелизм. Наивный подход простой передачи Объекта Pool в качестве аргумента apply_async не работает , Как отмечалось в других ответах, потому что Pool нельзя замариновать. Вот мои требования: Мне нужен как ...

Python decorator с многопроцессорной обработкой терпит неудачу

Я хотел бы использовать декоратор для функции, которую я впоследствии передам в многопроцессорный пул. Однако код завершается с ошибкой "PicklingError: Can't pickle: attribute lookup __builtin__.сбой функции". Я не совсем понимаю, почему это не удается здесь. Я уверен, что это что-то простое, но я не могу найти его. Ниже приведен минимальный "рабочий" пример. Я думал, что использование функции functools будет достаточно, чтобы это сработало. Если я закомментирую украшение функции, оно работает ...

как сделать многопроцессорную обработку в java, и на какую скорость рассчитывать?

Я новичок, использующий Java для обработки некоторых данных в csv-файлах. Для этого я использую многопоточные возможности Java (пулы потоков) для пакетного импорта csv-файлов в Java и выполнения некоторых операций над каждой из их строк. На моем четырехъядерном процессоре многопоточность значительно ускоряет процесс. Мне интересно знать, как / ускорит ли многопроцессорная обработка операции еще больше? Если да,то есть ли где-нибудь учебник? (в учебнике Java Basic упоминается класс, но я недоста ...

Как повторно использовать пул процессов для параллельного программирования в Python 3

Я новичок в парраллельном программировании. Моя задача-проанализировать сотни файлов данных. Каждая из этих данных составляет почти 300 МБ и может быть разрезана на множество кусочков. Мой компьютер-это 4-ядерный ПК. И я хочу получить результат по каждому из этих данных как можно скорее. Анализ каждого файла данных состоит из 2 процедур. Во-первых, считывать данные в память, а затем нарезать их на кусочки, что является интенсивной работой io. Затем сделайте много вычислений для срезов этого файл ...

Python Chunking CSV файл мультипроцессорная обработка

Я использую следующий код для разбиения CSV-файла на несколько блоков (источник: здесь) def worker(chunk): print len(chunk) def keyfunc(row): return row[0] def main(): pool = mp.Pool() largefile = 'Counseling.csv' num_chunks = 10 start_time = time.time() results = [] with open(largefile) as f: reader = csv.reader(f) reader.next() chunks = itertools.groupby(reader, keyfunc) while True: # make a list of num_chunks chun ...

Почему нет никакого влияния после использования более 2 процессов в пуле?

Используя функцию map в библиотеке multiprocessing, я не вижу разницы во времени выполнения при использовании более 2 процессов. Я запускаю программу, используя 4 ядра. Фактический код довольно прямолинеен и вычисляет первые 4000 чисел Фибоначчи 4 раза (=Количество ядер). Он распределяет работу равномерно между N ядрами (например, при использовании пула с 2 процессами каждый процесс будет вычислять первые 4000 чисел Фибоначчи дважды). Весь этот процесс завершен для N = 1 вплоть до количества ...

В Python многопроцессорных бассейн.карта для нескольких аргументов

в многопроцессорной библиотеке Python есть вариант пула.карта, которая поддерживает несколько аргументов? text = "test" def harvester(text, case): X = case[0] text+ str(X) if __name__ == '__main__': pool = multiprocessing.Pool(processes=6) case = RAW_DATASET pool.map(harvester(text,case),case, 1) pool.close() pool.join() ...

Как я должен войти при использовании многопроцессорной обработки в Python?

прямо сейчас у меня есть центральный модуль в рамках, который порождает несколько процессов с помощью Python 2.6 multiprocessing модуль. Потому что он использует multiprocessing, там на уровне модуля многопроцессорной обработки-известны журнала LOG = multiprocessing.get_logger(). Пер документы, этот регистратор имеет процесс-общие блокировки, так что вы не искажаете вещи в sys.stderr (или любой другой файловый хэндл), имея несколько процессов, записывающих его одновременно. проблема у меня сейч ...

Многопроцессорная обработка: как использовать пул.сопоставление функции, определенной в классе?

когда я запускаю что-то вроде: from multiprocessing import Pool p = Pool(5) def f(x): return x*x p.map(f, [1,2,3]) он работает нормально. Однако, поставив это как функцию класса: class calculate(object): def run(self): def f(x): return x*x p = Pool() return p.map(f, [1,2,3]) cl = calculate() print cl.run() дает мне следующую ошибку: Exception in thread Thread-1: Traceback (most recent call last): File "/sw/lib/python2.6/threading.py", lin ...

многопроцессорный.Пул: в чем разница между map async и imap?

Я пытаюсь узнать, как использовать в Python multiprocessing пакет, но я не понимаю разницы между map_async и imap. Я заметил, что оба map_async и imap выполняются асинхронно. Так когда я должен использовать один над другим? И как я должен получить результат, возвращенный map_async? должен ли я использовать что-то вроде этого? def test(): result = pool.map_async() pool.close() pool.join() return result.get() result=test() for i in result: print i ...

Питон многопроцессорной обработки очереди трубы против

каковы фундаментальные различия между очередями и трубами в многопроцессорный пакет Python? в каких сценариях следует выбирать один над другим? Когда это выгодно использовать Pipe()? Когда это выгодно использовать Queue()? ...

Как устранить неполадки "AttributeError: exit" в multiproccesing в Python?

Я попытался переписать код csv-чтения, чтобы иметь возможность запускать его на нескольких ядрах в Python 3.2.2. Я пытался использовать Pool объект многопроцессорной обработки, который я адаптировал из рабочих примеров (и уже работал для меня для другой части моего проекта). Я столкнулся с сообщением об ошибке, которое мне было трудно расшифровать и устранить неполадки. ошибки: Traceback (most recent call last): File "parser5_nodots_parallel.py", line 256, in <module> MG,ppl = csv2 ...

Поймать Ctrl+C / SIGINT и выйти из многопроцессорных изящно в python

Как я могу поймать Ctrl+C в многопроцессорной программе python и выйти из всех процессов изящно, мне нужно решение для работы как на unix, так и на windows. Я пробовал следующее: import multiprocessing import time import signal import sys jobs = [] def worker(): signal.signal(signal.SIGINT, signal_handler) while(True): time.sleep(1.1234) print "Working..." def signal_handler(signal, frame): print 'You pressed Ctrl+C!' # for p in jobs: # p.terminate() ...

Разница между многозадачностью, многопоточностью и многопроцессорностью?

что разница между многозадачность, мультипрограммирование & мультипроцессирование это происходит регулярно для моих экзаменов университета ОС, и я не могу найти хороший ответ. Я знаю довольно много о многозадачности и многопрограммности, но мне нужно это подтвердить. ...

Обработка одного файла из нескольких процессов в python

У меня есть один большой текстовый файл, в котором я хочу обрабатывать каждую строку ( делать некоторые операции ) и хранить их в базе данных. Поскольку одна простая программа занимает слишком много времени, я хочу, чтобы это было сделано с помощью нескольких процессов или потоков. Каждый поток / процесс должен считывать разные данные (разные строки) из этого одного файла и выполнять некоторые операции над их фрагментом данных (строк) и помещать их в базу данных, чтобы в конце концов у меня был ...

Показать ход выполнения вызова карты многопроцессорного пула Python?

у меня есть скрипт, который успешно выполняет набор задач многопроцессорного пула с imap_unordered() звоните: p = multiprocessing.Pool() rs = p.imap_unordered(do_work, xrange(num_tasks)) p.close() # No more work p.join() # Wait for completion мой num_tasks составляет около 250 000, и поэтому join() блокирует основной поток в течение 10 секунд или около того, и я хотел бы иметь возможность эхо в командной строке постепенно, чтобы показать, что основной процесс не заблокирован. Что-то вроде: p ...

Что именно делает метод Python multiprocessing Module. join ()?

изучение Python многопроцессорная обработка (от статья PMOTW) и хотел бы некоторые разъяснения о том, что именно join() метод делает. на старый учебник с 2008 года в нем говорится, что без p.join() вызовите код ниже, "дочерний процесс будет сидеть без дела и не завершится, став зомби, которого вы должны вручную убить". from multiprocessing import Process def say_hello(name='world'): print "Hello, %s" % name p = Process(target=say_hello) p.start() p.join() я добавил распечатку PID а та ...