본문 바로가기

병렬

TBB & PPL의 task_group(task)를 사용해보자.. 기존에 쓰래드 생성시 사용했었던 CreateThread와 _BeginThread도 있지만.. 병렬프로그래밍에서는 task라는게 새로 생겼습니다.. 코드부터.. #include #include #include #include #include #include #include #include #include using namespace std; const int MAX_LOOP = 10000000; const int THREAD_COUNT = 4; queue queTest; tbb::concurrent_queue queParallelTest1; tbb::concurrent_bounded_queue queParallelTest2; Concurrency::concurrent_queue queParallelTest.. 더보기
tbb를 배워보자.. parallel_reduce 의 사용법.. 2 parallel_reduce는 ..... 일단 코드부터 -_- #include #include #include #include #include #include using namespace tbb; using namespace std; class TbbTest { std::vector* m_vecTest; public: void operator() (const tbb::blocked_range&r) { std::vector* vecTemp = m_vecTest; for(int i = r.begin(); i != r.end(); i++) { m_fSum += (*vecTemp)[i]; } } void join(const TbbTest &y) { m_fSum += y.m_fSum; } TbbTest(TbbTe.. 더보기
tbb를 배워보자.. parallel_for의 사용법.. 1 OpenMP, PPL, TBB 이 3개중 한개만이라도 일단 배워보자 하는 마음에. 어제 속도 테스트에 혹해서 TBB에 대해서 본격적으로 배워보기로 했습니다.. 먼저 TBB의 parallel_for에 대해서 알아보겠습니다.. #include #include #include #include #include using namespace std; class TbbTest { std::vector* const m_vecTest; public: void operator() (tbb::blocked_range&r) const { std::vector* vecTemp = m_vecTest; for(int i = r.begin(); i != r.end(); i++) { (*vecTemp)[i]=i; } } TbbTest.. 더보기
병렬 프로그래밍(PPL,openMP,TBB)의 for문 속도 비교..!! openMP와 TBB를 공부하던 도중 얼마나 빨라지는지 한번 비교를 해보았습니다.. 비교하는김에 PPL까지 포함해서 3가지 다 비교해보았고. 비교의 대상은 가장 기초적이고 책의 첫부분에 나오는 for문... 일단 코드부터.. #include #include #include #include #include #include #include #pragma comment(lib,"d3dx9.lib") using namespace std; int _tmain(int argc, _TCHAR* argv[]) { D3DXMATRIX mat; clock_t start, stop; start = clock(); #pragma omp parallel for { for( int i = 0; i < 100000000; ++i .. 더보기