태터데스크 관리자

도움말
닫기
적용하기   첫페이지 만들기

태터데스크 메시지

저장하였습니다.

헛된 결과가 될까 두려워하지 말고 시도하라
Josh Phillips

 

우리는 "다중 코어로의 전환"에 대해, 즉 다중 코어가 우리에게 어떤 영향을 미치는지, 그리고 이와 관련하여 우리는 어떤 일을 하고 있는지에 대해 자주 이야기하지만 막상 다중 코어를 활용하여 보다 풍부한 클라이언트 환경을 개발하는 일에 대해서는 말을 얼버무립니다.
4개, 64개, 또는 1,000개의 코어를 사용하여 여러분은 무슨 일을 하십니까?
어떤 영역에서는 다중 코어 자체만으로 효과가 있습니다.
이러한 영역에서 알고리즘은 빠를수록 좋습니다.
그러나 다른 영역에서는 더 많은 생각이 필요합니다.
자연어 쿼리제스처와 같은 직관적인 사용자 인터페이스는 보다 풍부한 클라이언트 환경에 크게 기여할 수 있습니다.
그러나 이러한 기술은 많은 연구가 필요하고 구현하기도 어렵습니다.
그렇다면 지금 당장 클라이언트 응용 프로그램을 더 풍부하게 만들려면 어떻게 해야 할까요?
전반적인 UI 응답성을 높이는 것 외에 필자가 제안하는 과격한 방법은 CPU 시간을 낭비하라는 것입니다.
뭐라구요?
제가 지금 여러분이 힘들게 확보한 CPU 시간을 날짜 지난 뉴스처럼 내버리라고 제안하고 있나요?
네, 맞습니다.
단일 코어의 속도를 계속 높이던 시절에는 CPU 시간이 중요했습니다.
CPU 시간을 낭비하면 중요한 작업을 수행하는 데 지장이 있었습니다.
복수 코어, 특히 다중 코어 시스템에서는 풍부한 처리 리소스를 통해 중요한 작업과 중요하지는 않지만 쓸모 있는 작업을 모두 수행함으로써 보다 강력한 응용 프로그램을 만들 수 있습니다.
이제 추측 계산을 수행할 수 있기 때문입니다.
즉, 사용자가 다음에 할 행동을 예측하고 그 결과를 미리 계산해 둠으로써 필요한 경우 즉시 사용할 수 있도록 합니다.
사진을 그림이나 연필 스케치처럼 만들기 위한 필터가 포함된 일반적인 사진 편집 제품군을 생각해 보십시오.
필터를 적용하려고 창을 띄우면 이 창에는 각 필터의 효과를 보여 주기 위해 응용 프로그램에 미리 준비된 그림이 표시됩니다.
이 대화 상자를 스크롤하면서 원하는 필터를 찾습니다.
그리고 필터를 클릭하면 응용 프로그램이 진행되면서 점차적으로 사진을 변환해 나갑니다.
작업이 완료된 후 원하는 결과가 아니라고 판단될 경우 실행을 취소하고 필터 대화 상자로 돌아가 위 과정을 반복합니다.
이번에는 동일한 시나리오에서 128개의 코어를 사용하여 추측 계산을 수행해 보겠습니다.
이제는 필터 창을 띄우면 현재 창에서 보이는 필터가 사용자 사진의 축소판에 이미 적용된 상태로 표시됩니다.
오른쪽으로 스크롤해서 확인해 보면 모든 필터에 이미 미리 보기가 있음을 알 수 있습니다.
게다가 창에서 현재 표시되는 모든 필터를 원본 크기의 이미지에 적용하는 실제 변환 작업도 이미 시작된 상태입니다.
이제 필터를 클릭하면 이미 변환이 완료된 이미지가 표시됩니다.
또한 필터가 선택되면 응용 프로그램은 추측을 통해 여러 매개 변수를 사용하여 이미지를 처리할 수도 있습니다.
더 나아가 카메라를 컴퓨터에 연결한 경우를 생각해 보십시오.
사용자가 휴가 사진을 살펴보는 사이 컴퓨터는 사진을 자르고 적목 현상을 제거하고 자동으로 조정합니다.
컴퓨터가 수행한 결과물이 마음에 들지 않으면 그냥 버리고 편집되지 않은 사진으로 되돌아가면 됩니다.
추측 계산이 사진 응용 프로그램에만 사용되는 것은 아닙니다.
자동차에 올라타면 4코어 내비게이션 시스템은 요일, 시간, 여행 기록, 그리고 Bluetooth로 연결된 사용자의 전화기에서 달력과 주소록을 참고하여 사용자가 선택할 가능성이 가장 높은 목적지를 결정합니다.
이 시스템은 유력한 목적지를 결정할 때마다 경로를 미리 계산하며, 이 과정에서 교통량 데이터를 반영하고 기름이 얼마 없을 경우 가장 가깝고 저렴한 주유소의 위치도 확인합니다.
여러분의 목적이 가까운 식품점에 잠깐 가는 것이라면 내비게이션 시스템은 그냥 계산 결과를 버리면 됩니다.
요점은 이제 CPU 시간의 각 주기가 금덩이라도 되는 것처럼 행동하지 않아도 된다는 것입니다.
더 멋진 응용 프로그램을 위해 기꺼이 낭비해도 될만큼의 풍부한 처리 성능이 곧 현실화될 것입니다.
64코어 프로세서까지 기다릴 필요도 없습니다.
이미 4코어 프로세서가 판매 중이고 8코어 프로세서도 출시를 눈앞에 두고 있습니다.
지금부터라도 CPU 시간을 낭비할 수 있습니다.
Microsoft의 병렬 컴퓨팅 이니셔티브는 어려운 스레딩 모델을 추상화함으로써 복수 코어 및 다중 코어 프로그래밍을 더 쉽게 만드는 작업을 진행 중입니다.
Microsoft .NET Framework용 Parallel Extensions의 CTP(Community Technology Preview)는 현재 사용 가능하며 작업 병렬 처리, 데이터 병렬 처리, 조율 및 취소 API를 포함한 추측 계산에 적합합니다.
Parallel Extensions(네이티브 스택을 위한 이와 비슷한 기술도 함께) 및 도구는 Visual Studio 다음 버전에 제공됩니다.
이제 추측하십시오.
사용자에게 먼저 제안함으로써 사용자가 귀찮은 작업을 할 필요가 없도록 하십시오.
기민하고 몰입적이며 혁신적인 UI를 만드십시오.
그리고 쾌적한 환경을 위해 어느 정도의 처리 시간은 거리낌 없이 버려도 됩니다.


 

Josh Phillips는 Microsoft Parallel Computing Platform 팀의 프로그램 관리자이며 현재 개발자가 동시성을 생산적으로 활용하고 풍부한 기능의 강력한 차세대 응용 프로그램을 구축할 수 있도록 하기 위한 라이브러리, 언어 및 도구를 개발 중입니다.
 
- October, 2008 -

 

 
### 출처 : MSDN Magazine / 저작권자 : Microsoft Corporation ###

 

 

Posted by Essayer

Trackback URL :: http://www.essayer7.com/trackback/149 관련글 쓰기