posted by 꽁치 통조림 2019. 5. 15. 05:47

앞서 말했듯이, Parallel Programming with Python을 찬찬히 훑어보고 있는 중이다.

 

책 중간에 메모를 할 부분이 있어, 이렇게 글을 남긴다.

 

  • 패러랠 프로그래밍의 목적

"패러랠 프로그래밍은 다양한 분야에서 활용되고 있다. 패러랠 프로그래밍의 가장 기본은 개발자가 애플리케이션의 퍼포먼스를 최적화 시키기 위함이다. 이것은 사용자의 경험과 컴퓨팅 리소스의 활용을 증대하고, 복잡한 태스크에 소요되는 시간을 줄이는 장점이 있다".

(Parallel Prgamming with Python, p.9)

 

  • 병렬 (parallel) 과 병행 (concurrency)의 차이

보통 병렬과 병행은 사로 혼용해서 많이 쓰지만, 프로그래밍에서는 엄연히 다른 내용인것 같다. 여러 task가 있다고 할때, 각기 태스크들이 서로 독립적으로 처리를 하게 한다면, 병렬 처리 (parallel programming)가, 각기 태스트간에 서로 신호처리 가 필요하다면 병행 처리 (concurrent programming)이 적절한 설명인듯 하다. 근데 책에서는 병행처리는 병렬처리의 추상화된 개념이라고 하는데, 아직 잘 모르겠다. 책을 더 읽다보면 답이 나오겠지. 

 

  • 분산 (distributed programming)

처리해야 할 태스크가 여러개 있을 때, 이를 각각의 프로세스 에 할당하여 처리하게 하도록 하는 것이다. 이러한 분산 처리는 점점 널리 활용되고 있는데, 1) 문제가 발생했을 시에, 전체 시스템에 영향을 미치지 않기 때문에, 2) 프로세싱 능력을 증대시킬 수 있기 때문에 (scalability), 3) 클라우드 환경 때문에 라고 한다. 

 

그동안 scalability라는 말을 엄청 많이 들었는데, 사회과학에서는 보통 스케일 이라고 하면 시&공간 차원을 거시적으로 하는가 미시적으로 하는가를 가지고 많이 이야기 하는데, 이제 scalability가 어떤 의미를 담고 있는지 이제서야 이해가 된다. 

 

 

'패러랠 프로그래밍' 카테고리의 다른 글

패러랠 프로그래밍 공부 시작  (0) 2019.05.15