더북(TheBook)

# 병렬로 실행하기
# for chunk_start, chunk_end in chunks:
#     crack_chunk(crypto_hash, length, chunk_start, chunk_end)}

➊ 정수의 전체 범위를 더 작고 일정한 범위의 덩어리로 나누어 여러 개의 코어 또는 프로세서로 병렬 처리한다.

➋ 프로세서의 수를 확인한다.

➌ 별도의 프로세스에서 각각의 여러 청크를 동시에 처리하는 의사코드

새로운 함수 crack_password_paralle를 추가했다. 이 함수는 crack_password 함수를 여러 코어에서 병렬로 실행한다. 다른 프로그래밍 언어를 사용하더라도 겉모습만 다를 뿐 원리는 동일하다. 병렬 실행의 단위를 생성하고 이들에게 패스워드 후보의 범위를 배정해 병렬로 실행한다. 여기서는 의사코드(pseudocode)(프로그램의 로직을 사람이 이해할 수 있는 형태로 기술한 것으로, 실제 코드와 비슷하게 생긴 언어가 쓰인다)가 사용됐다. 4장과 5장에서 의사코드를 더 자세히 설명하겠다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.