쓰레드에 대한 멀티코어의 코어배분 ?
글쓴이: posjkh22 / 작성시간: 금, 2016/07/22 - 2:44오후
리눅스 환경에서 프로그래밍을 공부하고 있는 학생입니다.
멀티 코어를 통한 병렬처리에 대해서 공부하고 있는데요.
한 프로그램내에서 쓰레드를 이용하여 쓰레드당 CPU의 코어를 배분하고 싶습니다.
일반적으로 쓰레드를 그냥 생성 하면 운영체제에서 알아서 코어를 배분하잖습니까?
그런데, 이를 프로그래머가 제어할 수는 없나요?
근본적인 궁금증은 멀티코어 환경에서 '각 코어를, 한 프로세스 내에서의 각 쓰레드에게 배분(1)' 또는
'각 코어를, 두 개 이상의 각 프로세스에게 배분(2)' 하는 병렬처리 방법들에 대해 알고 싶습니다.
concurrent 한 처리가 아니라 parallel 한 처리 방법을 알고 싶습니다.
다양한 어떠한 방법이 있는지 알고 싶고, 혹시 코드레벨에서 가능하다면(C언어) 꼭 알고 싶네요.
Forums:
책 찾아봐야 할거 같은데요.
네이버 책 - 멀티 코어
http://book.naver.com/search/search.nhn?sm=sta_hty.book&sug=&where=nexearch&query=%EB%A9%80%ED%8B%B0+%EC%BD%94%EC%96%B4
코드 프로젝트. 데브피아. 네이버. 다음. 구글 검색
멀티 코어 멀티 프로세스 멀티 스레드 하이퍼 스레드
SSE MMX SIMD AVX
TBB CUDA GPGPU VPU
QEMM VirtualBox DosBox
Xen KVM
VDI Cloud
----------------------------------------------------------------------------
젊음'은 모든것을 가능하게 만든다.
매일 1억명이 사용하는 프로그램을 함께 만들어보고 싶습니다.
정규 근로 시간을 지키는. 야근 없는 회사와 거래합니다.
각 분야별. 좋은 책'이나 사이트' 블로그' 링크 소개 받습니다. shintx@naver.com
추천감사합니다,
아무래도 전문서적을 찾아보아야 할 것 같네요!
윗 분은 문제를 물어 보면 직접적인 답변은 회피하고
윗 분은 문제를 물어 보면 직접적인 답변은 회피하고 대부분 연관성이 낮은 검색어와 책과 기타 정보만 알려 주시니, 키워드를 찾을 수 있는 다른 분 답변을 듣는 것이 더 나을 수도 있습니다.
http://www.gnu.org/software/l
http://www.gnu.org/software/libc/manual/html_node/CPU-Affinity.html
이미 10년이 가까워지지만, 아직도 너무 유용한 내용이 많이 포함되어있는 What every programmer should know about memory 읽어보시길 권장합니다
: https://www.akkadia.org/drepper/cpumemory.pdf
chapter #6을 보시면 cpu affinity를 이용해 어떻게 프로세스(쓰레드)에 특정 CPU scheduling하는지 배우실수 있을것이고
(더욱 중요한) 멀티프로세스 프로그래밍을 할 때, CPU cache 가 프로그램의 성능에 어떻게 영향을 끼칠수 있는지 더 좋은 이해를 하실 수 있을겁니다.
특히 NUMA환경에서의 얘기들은 유익한 내용이 많습니다. 요즘은 기본적으로 NUMA에 24~48코어정도는 기본으로 탑재된 서버가 많아서 도움이 많이 될 문서입니다.
처음부터 끝까지 정독을 추천하는 문서입니다.
저자인 Ulrich Drepper의 홈페이지에 보면 다른 좋은 글들도 많습니다.
시간되면 쭉 읽어보세요. 멋진글이 많습니다.
: https://www.akkadia.org/drepper/
좋은 정보 정말 감사드립니다!
차근차근 정독해 보도록 하겠습니다.^^
좋은 정보 정말 감사드립니다!
차근차근 정독해 보도록 하겠습니다.^^
set affinity
set_affinity 관련 함수 찾아보세요~
감사합니다^^
한번 사용해 보도록 할게요~
댓글 달기