Visual Studio –2002년과 2010년Visual Studio.NET( 2002)Visual Studio 2010
33.
2008년 10월 Microsoft의최고 연구 전략 책임자를 맡은 Craig Mundie씨 Win32는 비동기 병렬 컴퓨팅에는 적합하지 않는 것을 인정. - Windows 7 및 Windows Server 2008 R2에서 문제 해결을 위해 첫발을 내딪음.- Windows는 지금이라도 2,3의 코어 머신을 처리할 수 있지만 8, 16 또는 32 이상의 코어 머신을 사용하도록 설계되어 있지 않다.
34.
Windows를 보다뛰어난 병렬/비동기프로세싱 플랫폼화 하기 위한 최초의 씨앗은 2009년부터 뿌려지기 시작.UMS - Cooperative SchedulingUserThread4UserThread3UserThread5UserThread6Core 2Core 2Core 1Core 1Thread4Thread5UserThread1Thread3Thread1Thread2Thread6UserThread2KernelThread1KernelThread2KernelThread4KernelThread3KernelThread5KernelThread6Non-running threadsThread Scheduling그림 출처 : PDC 09
다른 병렬라이브러리의 병행 런타임과 컴퓨팅 리소스 관리를 통합 할 수 있다.DynamicSchedulingStatic SchedulingCPU0CPU1…CPUNCPU0CPU1…CPUNSmallSmallBigBigBigBigBigBigSmallSmallBigSmallSmallBigSmallSmall
Parallel containersand objects 3D 게임을 실행하면…Font 리소스 로딩Texture 리소스 로딩3D 모델링 리소스 로딩 등등…
64.
Task Parallelism실제적인 task의실행은 task_group에서 한다.unstructured_task_group(task_group) 와 structured_task_group로나누어진다.task_group : 스레드 세이프structured_task_group : 스레드 세이프 하지 않음.
65.
Main ThreadMain Threadtask_group1.run(task1)structured_task_group1.run( task1)Thread Atask_group1.run( task2)Thread Btask_group1.run( task3)Thread Astructured_task_group1.run( task2)
66.
초 간단!!! task 사용 방법ppl.h파일을 포함합니다.#include <ppl.h>Concurrency Runtime의 네임 스페이를 선언합니다.using namespace Concurrency;태스크 그룹을 정의합니다.structured_task_groupstructured_tasks;태스크를 정의합니다.auto structured_task1 = make_task([&] { Plus(arraynum1, true); } );태스크를 태스크 그룹에 추가한 후 실행합니다. structured_tasks.run( structured_task1 );태스크 그룹에 있는 태스크가 완료될 때까지 기다립니다.structured_tasks.wait();
Parallel Algorithms데이터컬렉션을 대상으로쉽게 병렬 작업을 할 수 있게 해주는 알고리즘들.STL에서 제공하는 알고리즘과 비슷한 모양과 사용법.paeallel_for, parallel_for_each, parallel_invoke가 구현되어 있음.parallel_accumulate, parallel_partial_sum는 다음 버전?
71.
parallel_forfor 문을 병렬화.for문과 사용 방법이 흡사하여 쉽게 변환.step 값을 지정하는 버전과 지정하지 않는 버전 두 개가 있음(지정하지 않으면 1).index 조사는 ‘<‘만 지원.
72.
초 간단!!! parallel_for사용법ppl.h파일을 포함합니다.#include <ppl.h>Concurrency Runtime의 네임 스페이를 선언합니다.using namespace Concurrency;parallel_for에서 호출할 함수 정의parallel_for에서 사용할 data set 정의.parallel_for사용.
초 간단!!! parallel_for_each사용법ppl.h파일을 포함합니다.#include <ppl.h>Concurrency Runtime의 네임 스페이를 선언합니다.using namespace Concurrency;parallel_for_each에서 호출할 함수 정의parallel_for_each에서 사용할 data set 정의.parallel_for_each사용.
77.
parallel_invoke병렬로 일련의 태스크실행.동시 실행할 복수의 독립된 태스크를 실행할 때 좋음.task_group과 비슷하나 사용방법은 더 쉬움그러나 최대 10개의 태스크만 병렬 작업이 가능하다.
parallel objects - combinable스레드세이프한 오브젝트.계산 실행 후 최종 결과에 그 계산 결과를 통합하는 재 사용 가능한 로컬 스트리지 제공.복수의 스레드 또는 태스크 간에 공유 리소스가 있는 경우 편리.lock-free thread-local sub-computations during parallel algorithmscombinable 클래스에 사용할 데이터는 기본 생성자와 복사 생성자를 가지고 있어야 한다.Win32 API의 thread local storage와 비슷.combine, combinable_each제공
size 메소드대신 unsafe_size함수를 지원한다. unsafe_size는 이름 그대로 스레드 세이프 하지 않다.
94.
사용 방법 -“concurrent_queue.h” 파일을 include 한다. - 사용 방법은 STL의 deque와 비슷.스레드 세이프한 concurrent_queue의 함수- concurrent_queue에 enqueue또는 dequeue하는 모든 조작에 대해서는 스레드 세이프합니다. empty
AMD가 차기 아키텍쳐「Bulldozer」와「Bobcat」의 개요를 공표원문 : http://pc.watch.impress.co.jp/docs/column/kaigai/20091112_328392.html번역 :http://jacking.tistory.com/487http://jacking.tistory.com/488http://jacking.tistory.com/4892011년에 등장하는 AMD의 8코어 데스크탑 CPU 「Zambezi」원문http://pc.watch.impress.co.jp/docs/column/kaigai/20091126_331235.html번역http://jacking.tistory.com/514http://jacking.tistory.com/515http://jacking.tistory.com/516Core i5/i7원문http://www.atmarkit.co.jp/fwin2k/words/011corei5/corei5.html번역http://jacking.tistory.com/510http://jacking.tistory.com/511
104.
계획이 바뀐 Larrabee무엇이문제였는가?http://jacking.tistory.com/517http://jacking.tistory.com/518마이크로소프트 Windows 7에서도 병렬처리 향상을 목표로 http://jacking.tistory.com/355[PDC09] Developing Applications for Scale-Up Servers Running Windows Server 2008 R2http://microsoftpdc.com/Sessions/SVR18[PDC09] Lighting up Windows Server 2008 R2 Using the ConcRT on UMShttp://microsoftpdc.com/Sessions/SVR10양보할 줄 아는 Concurrency Runtime의 eventhttp://vsts2010.tistory.com/109Cross Process Resource Management - do we need it now?http://blogs.msdn.com/nativeconcurrency/archive/2010/04/07/cross-process-resource-management-do-we-need-it-now.aspx