C, C++2011. 1. 8. 19:59

 MapReducde는 구글이 제안한 분산 처리를 위한 개발 모델입니다. 조엘은 소프트웨어를 넘어서 에서도 소개되기도 한 이 방법은 대용량 자료의 분산 처리에 유용한 구조입니다.

 이미 하둡 등의 프레임워크가 많이 나와 있으며, 미래의 컴퓨터 언어는 이런 처리를 기본 사양으로 제공해 줄 가능성이 높습니다. 물론 기존의 컴퓨터 언어도 미래형 언어로 변신하려면 이런 기능을 끌어 안아야 할 것입니다.
 그런데 Qt 쪽에도 이런 기능이 있는가 하는 것을 찾아 보다 보니 QtConcurrent 가 있습니다. 주 대상은 멀티코어 프로그램 개발이 필요한 경우에 저수준 인터페이스의 지원을 넘어서, 고수준의 인터페이스 제공을 목적으로 하고 있습니다.

 하지만, 향후 함수형 언어의 사용을 지향하는 MapReduce 모델과 객체지향 기반 모델인 Qt를 융합하는 방향이 어떻게 될 지는 노키아(201x)의 향후 방향을 계속 지켜봐야 할 것입니다. [본문 초안은 2011년에 작성되었습니다.]
 아래는 필자가 작성한 예제이며, 듀얼코어 CPU라면 한번에 두 개까지만의 쓰레드가 실행됨을 확인할 수 있을 것입니다. 물론 두 개의 쓰레드는 듀얼코어에서 사용하기 가장 이상적인 쓰레드 개수입니다.
 예제 실행을 원하면 Nokia Qt 사이트에서 LGPL 지원하는 Qt SDK 를 받아서, 콘솔 예제를 실행해 보면 됩니다.
  



반응형
Posted by Jay Two