본문 바로가기

Computer & Parallel Processing

(5)
OpenMP 병렬 처리 : 스케줄링 병렬 처리에서 가장 중요한 변수 중 하나인 스케줄링입니다. 스케줄링은 병렬화 한 구문을 어떤 스레드에게 어떻게 분배할지 결정하는 것입니다. 만약 이걸 std::thread와 같은 스레드에 구현해서 쓰려고 하면 아주 골치 아파집니다. 자세히 알고 싶으시면 즐거운 운영체제 강의를 열심들 들어 봅시다~ 유후~(졸업해서 다행이다..) OpenMP는 골치 아픈 스케줄링을 간편하게 구현해 줍니다. 쉽게 3가지 대표적인 스케줄링 기법이 있고, 사용자가 원한다면 만들어 사용할 수 있습니다. OpenMP의 스케줄링 스케줄링에 들어가기에 앞서 이용되는 변수인 chunk에 대해 알아보죠. OpenMP에서 chunk는 스레드에게 분배하는 task의 최저 크기입니다. 만약 task의 총 개수가 11개 이고, chunk가 1이라..
OpenMP 병렬 처리 : 공유변수 문제 (레이스 컨디션) 해결 드디어 세 번째 포스팅 공유 변수 문제의 해결입니다. 앞서 포스팅에서는 OpenMP를 이용할 때 공유 변수 문제를 다루었죠. 2020.10.19 - [Computer & Parallel Processing] - OpneMP 병렬 처리 : 공유변수 문제 (레이스 컨디션) OpneMP 병렬 처리 : 공유변수 문제 (레이스 컨디션) 2020/10/13 - [Computer & Parallel Processing] - OpenMP를 이용한 병렬 처리 (parallel for) OpenMP를 이용한 병렬처리 (parallel for) OpenMP를 이용한 병렬 처리 기법은 다양한 방법이 있습니다. 그중 반복문.. sbinroom.tistory.com 이번에는 해당 문제를 해결해 보겠습니다. 사실 첫 포스팅부터 해..
OpenMP 병렬 처리 : 공유변수 문제 (레이스 컨디션) 2020/10/13 - [Computer & Parallel Processing] - OpenMP를 이용한 병렬 처리 (parallel for) OpenMP를 이용한 병렬처리 (parallel for) OpenMP를 이용한 병렬 처리 기법은 다양한 방법이 있습니다. 그중 반복문의 병렬화 방법에 대하여 글을 쓰려합니다. 다른 기법들은 간단히 익혔으나, 실제로 OpenMP를 사용하기에 적합한 방법은 para sbinroom.tistory.com 이전 글에서 OpenMP를 이용해서 for loop를 병렬처리 하는 방법에 대하여 설명하였습니다. 이 글의 예제인 소수의 개수를 세는 프로그램에서 패러렐 프로세싱의 결과가 시리얼 프로세싱과 다른 결과를 보였고, 몇 가지 키워드를 이용해 디버그 했죠. 이 글에서는 문제..
OpenMP를 이용한 병렬처리 (parallel for) OpenMP를 이용한 병렬 처리 기법은 다양한 방법이 있습니다. 그중 반복문의 병렬화 방법에 대하여 글을 쓰려합니다. 다른 기법들은 간단히 익혔으나, 실제로 OpenMP를 사용하기에 적합한 방법은 parallel for이고, 그 외의 방법은 딱히 사용처가 없거나, 일반 thread를 이용한 병렬 처리가 더 효율적이라고 생각하거든요. 그럼 큰 의미 없는 인트로는 여기까지 하고, 바로 예제를 통해 병렬 처리를 설명하겠습니다. 이번 글에서 사용한 예제는 아래 스냅샷과 같습니다. 프로그램의 목적은 입력된 변수보다 작거나 같은 소수(prime number)의 개수를 세는 프로그램입니다. 이 알고리듬은 소수의 정의인 자신보다 작은 두 개의 자연수 곱으로 자신을 만들 수 없다는 특징을 이용한 알고리듬입니다. 이 프로..
컴퓨터 사용의 목적 이 글은 병렬 처리에 관한 포스팅 첫 번째이며, "컴퓨터의 목적"에 대해 논합니다. 글 자체는 주관적이니 불만이나 의견을 댓글로 남겨 주시면, 확인해 보고 필요하다면 적용하도록 하겠습니다. 컴퓨터는 "컴퓨터 과학의 아버지" 엘런 튜닝이 에니그마를 이용한 독일군 암호를 해독하기 위해 처음 개발하였고, 그 후 지속적으로 발전했습니다. 컴퓨터의 개발 이후 약간의 탈선(AI 분야)을 제외하면, 컴퓨터의 목적은 항상 동일했습니다. 그건 사람이 수행하기에 너무 복잡하거나, 오랜 시간이 요구되는 일을 단시간에 하는 것이죠. 예제를 들면 “소수 찾기” 가 어떨까요? 수학 기말 고사 시험에서 10 이하의 모든 소수를 적으라는 문제가 나왔습니다. 답은 쉽죠 “2,3,5,7” 입니다. 이런 쉬운 문제에는 컴퓨터가 필요 없겠..