OpenMP 동기제어 지시어
·
Programming/OpenMP
OpenMP 동기제어 멀티스레딩으로 프로그램을 제작할 때, 자주 발생하면서도 찾기 어려운 것이 동기화로 인해 발생하는 문제이다. OpenMP는 병렬영역에서 데이터 액세스 동기나 코드 실행의 동기를 제어하는 지시어를 지원한다.master, atomic, critical, barrier, taskwait, flush, ordered 지시어가 있는데 각각 지시어들의 사용법과 특징을 알아본다. 1. master 지시어스레드 팀에서 마스터 스레드에 의해서만 해당 코드가 실행되도록 한다.#pragma omp master 지시어는 암시적 동기화를 지원하지 않기 때문에, 다른 스레드들은 이후에 나오는 코드를 수행하게 된다. 마스터 스레드의 처리 완료때 까지 대기하려면 barrier 지시어를 사용해야 한다. 2. bar..