# Multi processing
import multiprocessing as mp
import numpy as np
def square(x):
return np.square(x)
x_ = np.arange(72)
# print(x_)
cpu_n = mp.cpu_count()
print(cpu_n)
pool = mp.Pool(cpu_n) # CPU 개수와 같은 다중 프로세싱 풀을 만듬
squared = pool.map(square, [x_[3*i:3*i+3] for i in range(cpu_n)]) #Pool의 map method를 활용해 square 함수를 각 배열에 적용 -> 취
print(squared)
import multiprocessing as mp
import numpy as np
def square(i, x, queue):
print("In process {}".format(i, ))
queue.put(np.square(x))
processes = [] # 각 Processor 들의 reference 를 담을 목록
queue = mp.Queue() # Processor 들 간의 데이터 공유를 위한 대기열
x = np.arange(64)
for i in range(8): # 8개의 Processor에서 각각 square 함수 실행
start_index = 8 * i
proc = mp.Process(target=square, args=(i, x[start_index:start_index + 8], queue))
proc.start()
processes.append(proc)
for proc in processes: # 모든 Process가 완료되길 기다림
proc.join()
for proc in processes: # 모든 Process를 종료
proc.terminate()
results = []
while not queue.empty(): # 최종 결과 목록
results.append(queue.get())
print(results)