Size: 1295
Comment:
|
Size: 1155
Comment:
|
Deletions are marked like this. | Additions are marked like this. |
Line 11: | Line 11: |
Python multiprocessing 해보면서 신기해하는 중. 아래 코드를 보자. | Python multiprocessing 해보면서 신기해하는 중. Pool 인스턴스 메쏘드 imap이 이터러티브하게 결과를 내 놓으면서 입력도 이터레이터를 받을 수 있음을 알았다. 즉 이터러티브하게 병렬 프로세싱이 가능하다는. 아래 코드를 보자. |
Line 14: | Line 14: |
from multiprocessing import Pool, cpu_count import time import random |
import sys from multiprocessing import Pool |
Line 18: | Line 17: |
def f(x): sec = random.choice([1,2,3]) print 'before ', x, 'wait %s sec' % sec time.sleep(sec) print 'after ', x return x*x |
def upper(line): return line.upper() |
Line 25: | Line 20: |
def aa(): i = 0 while i < 20: yield i i += 1 if __name__ == '__main__': pool = Pool(processes=4) for each in pool.imap(f, aa()): print each |
p = Pool(processes=4) for line in p.imap(upper, sys.stdin): sys.stdout.write(line) |
Line 37: | Line 25: |
이 코드를 돌려보면 4개 프로세스를 비동기적으로 유지하면서 이터러티브하게 입력을 받아 출력을 낸다. 괜찮네. 대량 반복 처리할 뭔가가 있다면 [[Generator]]를 만들고 가를 Pool().imap의 인수로 넘김. | 파일을 라인단위로 읽어 대문자로 바꿔주는데 4개 프로세스로 진행된다. 이터러티브하게. (순서는 보장안함) |
(<-) |
(->) |
2013 / April | ||||||
Sunday | Monday | Tuesday | Wednesday | Thursday | Friday | Saturday |
-1- | -2- | -3- | -4- | -5- | -6- | |
SMD |
||||||
-7- | -8- | -9- | -10- | -11- | -12- | -13- |
-14- | -15- | -16- | -17- | -18- | -19- | -20- |
-21- | -22- | -23- | -24- | -25- | -26- | -27- |
-28- | -29- | -30- | ||||
2013-04-03
해남으로 가는 버스안. 아이폰 USB 테더링이 안되서 Wifi로 연결중. http://ani2life.com/wp/?p=593 에 보면 뭔가 깔아서 설치하라는데 설치하려니 보안 오류. 그냥 구찮아서 와이파이로 인터넷
2013-04-18
Python multiprocessing 해보면서 신기해하는 중. Pool 인스턴스 메쏘드 imap이 이터러티브하게 결과를 내 놓으면서 입력도 이터레이터를 받을 수 있음을 알았다. 즉 이터러티브하게 병렬 프로세싱이 가능하다는. 아래 코드를 보자.
파일을 라인단위로 읽어 대문자로 바꿔주는데 4개 프로세스로 진행된다. 이터러티브하게. (순서는 보장안함)
(<-) |
(->) |