안녕하세용?


오늘은 파이썬 병렬처리 프로그래밍에 대해서 간략하게 적어볼까 합니다.


우리가 듀얼코어를 사용한지는 꽤 많은 시간이 지났습니다. 현재는 쿼드코어도 많이 사용되고 있고, 옥타코어도 출시되어


일부 사용자가 있을 것으로 생각됩니다. 코어의 갯수가 많다는 것은 즉 연산을 빠르게 할 수 있다는 말이되고(하나로 하던걸 두개로 나눠서 하니깐)


개발자 분들은 이러한 코어들을 충분히 활용할 수 있는 방식으로 프로그래밍을 해야 하는 시대인것 같습니다.


간단하게 말해서 병렬처리 프로그래밍 기법이 더욱 중요해 질 것으로 생각됩니다.


몇일전까지만 해도 사실 저는 병렬처리 프로그래밍은


MPI(http://www.mcs.anl.gov/research/projects/mpi)OpenMP(http://openmp.org/wp/) 정도 밖에 모르는 상태였지만..


기존에 제가 개발해둔 서버에서 작동하는 파이썬 스크립트들을 병렬처리로 변경해야 하는 상황에 직면해서, 부랴부랴 찾아보았습니다. 


검색 결과는 "역시 파이썬!!!!" 을 외칠 수 있었습니다.


1. Python Parallel (pp) : http://www.parallelpython.com/


간단하게 줄여서 pp로 불리는 python parallel은 정말 간단하게 단일 cpu의 코어들을 활용하는 것과, 클러스터(cluster)에서 여러개의 cpu를


활용하는 것을 모두 지원하는 것으로 보입니다. 저는 일단 단일 cpu의 코어들을 활용하는 것은 테스트해보았고.. 조만간 정리해서


포스팅 해볼까 합니당.


일단 너무 간단하게 연산 속도를 올릴 수 있어서 기분이 좋았습니다. 덕분에 하드웨어에 대한 욕심이 조금 더 생기기도 했구요.


음... 최근 AMD에서 발표한 옥타코어 cpu를 사고 싶어졌거든요 ㅠㅠㅠ (인텔은 넘 비싸영 ㅠ)



병렬처리 프로그래밍을 통해서 속도를 향상 시킬 수 있는 것은 확실하고, 기존에 연구된 여러 논문, 자료, 사례가 있습니다.


하지만 코어의 갯수에 따라 정확하게 비례해서 속도가 증가되는 것은 아니라는 것이죠.


또한 병렬처리 프로그래밍에 적합한 소스코드를 작성하는 것이 좋을 것 같고, 병렬처리를 염두해두고 프로그래밍 하는 습관을 길러봐야 하겠습니다.


다음에는 Python Parallel에 대한 간단한 예시와 시간측정한 결과를 포스팅 해볼께영. ^ ^


추가(2012.06.24) : cluster로 python parallel에 성공했어요. 약간의 문제는 있었지만요. python parallel은 아마 9월 쯤 다시 포스팅 할 수 있을 것 같네요.

                        


Python Parallel 관련 포스팅


python parallel (파이썬 병렬) : http://ngee.tistory.com/77

python parallel (파이썬 병렬) (1) 설치하기 : http://ngee.tistory.com/91

python parallel (파이썬 병렬) (2) 실행하기 : http://ngee.tistory.com/130


 

  1. 2012.07.02 02:34

    내장모듈 multiprocessing으로도 병렬처리가 가능하지 않나요??

    • Favicon of https://ngee.tistory.com BlogIcon ngee ngee 2012.07.02 09:00 신고

      네 그런거 같아요. 내장모듈로는 병렬처리를 해본적은 없지만요. http://wiki.python.org/moin/ParallelProcessing 에 가보니깐 pp 뿐만아니라.. Python Parallel을 지원하는 것이 다양하네용.

    • Favicon of https://ngee.tistory.com BlogIcon ngee ngee 2012.11.14 10:50 신고

      내장모듈로도 처리하는 것은 가능하지만.
      pp가 SMP, Cluster 등의 지원을 해주고 있으니깐요. 라이브러리 가져다 쓰는게 개발도 빠를 것 같네요 :)

+ Recent posts