|
[필독] 처음 오시는 분을 위한 안내 (736) |
정은준1 |
2014-05 |
5207732 |
0 |
2014-05
5207732
1 정은준1
|
|
(광고) 단통법 시대의 인터넷가입 가이드(ver2.0) (234) |
백메가 |
2015-12 |
1739581 |
25 |
2015-12
1739581
1 백메가
|
39729 |
서버 컴퓨터 cpu쿨러 (19) |
Lucyed |
2017-07 |
4408 |
2 |
2017-07
4408
1 Lucyed
|
39728 |
z820 pcie 레인분배가 가능한가요? (4) |
가츠 |
2021-04 |
4408 |
0 |
2021-04
4408
1 가츠
|
39727 |
사진첨부) 툴바 제거프로그램으로도 검색안되는툴바. (9) |
쁘삐 |
2015-05 |
4408 |
0 |
2015-05
4408
1 쁘삐
|
39726 |
슈마 메인보드 무한 재부팅 질문 (2) |
메가날백 |
2020-05 |
4408 |
0 |
2020-05
4408
1 메가날백
|
39725 |
DVD에 굽기.. 골치아프네요. (25) |
아마데우쓰 |
2023-09 |
4408 |
0 |
2023-09
4408
1 아마데우쓰
|
39724 |
[ 미크로틱 ] 관리 및 긴급 상황 접속시 관리 IP 설정 (4) |
전설속의미… |
2017-01 |
4408 |
0 |
2017-01
4408
1 전설속의미…
|
39723 |
실용적 네비게이션을 찾습니다. (7) |
아름다운노을 |
2014-12 |
4408 |
0 |
2014-12
4408
1 아름다운노을
|
39722 |
호스트 버스 어댑터의 RAID 0/1 이랑 RAID 카드의 RAID 0/1이 차이가 있는지요 ? (4) |
전설속의미… |
2015-01 |
4408 |
0 |
2015-01
4408
1 전설속의미…
|
39721 |
QT visual studio 에 연결해서 사용해 보신분 계신가요,, (4) |
박완경 |
2015-08 |
4408 |
0 |
2015-08
4408
1 박완경
|
39720 |
Bios에 5805가 올라가질 않습니다. (21) |
김민철GC |
2018-08 |
4408 |
0 |
2018-08
4408
1 김민철GC
|
39719 |
EFM ipTIME NAS-IIe 복구문의 (3) |
조항주Jeonju |
2016-10 |
4408 |
0 |
2016-10
4408
1 조항주Jeonju
|
39718 |
윈도우 진입 후 비디오 출력이 사라지는 현상 (3) |
나비z |
2014-04 |
4408 |
0 |
2014-04
4408
1 나비z
|
39717 |
장터발 레노버 72e tiny 윈도우7 이미지 문의 (5) |
쿨리스트 |
2018-06 |
4408 |
0 |
2018-06
4408
1 쿨리스트
|
39716 |
IP, 도메인 연결 방식에 따른 파일 복사 속도 (3) |
행아범 |
2013-11 |
4408 |
0 |
2013-11
4408
1 행아범
|
39715 |
10G 포기전 마지막 질문... (14) |
화란 |
2020-02 |
4408 |
0 |
2020-02
4408
1 화란
|
39714 |
해외에 PMIS 서버 설치 하는데 1억 이면 적정한가요? (14) |
뽀뽀중 |
2016-02 |
4408 |
0 |
2016-02
4408
1 뽀뽀중
|
39713 |
HP Z840은 메모리 최대 몇기가 까지 사용가능한지요? (5) |
galaxyfamily |
2023-11 |
4408 |
0 |
2023-11
4408
1 galaxyfamily
|
39712 |
파워는 가성비 높은거 없나요? 무조건 용량큰거 사야하나요? (8) |
김건우 |
2018-01 |
4408 |
0 |
2018-01
4408
1 김건우
|
39711 |
z600에 ssd장착 문의드립니다. (1) |
슬루프 |
2015-06 |
4408 |
0 |
2015-06
4408
1 슬루프
|
39710 |
RAID 카드를 단순 확장용으로만 사용한다면 설정을 어찌해야하나요? (2) |
대한민국 |
2013-11 |
4408 |
0 |
2013-11
4408
1 대한민국
|
https://ko.wikipedia.org/wiki/%EC%BA%90%EC%8B%9C_%EC%9D%BC%EA%B4%80%EC%84%B1
https://ko.wikipedia.org/wiki/%EB%B6%88%EA%B7%A0%EC%9D%BC_%EA%B8%B0%EC%96%B5_%EC%9E%A5%EC%B9%98_%EC%A0%91%EA%B7%BC
를 보시는게 좋겠네요.
요즘 시스템이 다중 Core CPU가 일반적이고,
2-CPU (2-Way)이상의 NUMA 시스템들도 일반 적이기 때문에
서로 다른 Core에서 동작중인 thread간 공유 메모리의 값을 일치시켜 주어야 하는 문제가 생깁니다.
이것이 캐시 일관성입니다..
위키 백과의 내용처럼 core 1에서 동작중인 thread가
해당 core 로컬 캐시인 L1 캐시의 공유 변수 X에 대한 값을 변경하고
동시에 core2의 thread가 해당 core L1 캐시에 있는 같은 공유 변수 X에 대한 변경을 시도할때,
같은 X값에 대해 서로 다른 값이 될 수 있는 상황이 흔히 발생합니다.
따라서 모든 코어의 L1 캐시에 같은 address를 갖는 값에 대한 일관성을
어떻게 유지해 줄것이냐의 문제가 Cache Coherence 입니다.
Single CPU인 경우의 Core간 속도 차이가 없는,
버스를 사용해 broadcast로 일치 시켜주면 되어 간단하겠지만,
캐시 일관성을 지원하지 않는 NUMA의 경우 다른 CPU를 거치게 되면,
로컬에 비해 신호를 전달하는데 속도 차이가 발생하여,
서로 다른 CPU에서 동시에 같은 주소 값에 대한 변경이
이루어 질때, 속도 차이로 인해 발생하는 충돌문제를 CPU 우선순위 등등을 고려해
관리해주어야 한다는 점 때문에 어렵다는 것으로 생각됩니다.
하지만 캐시 일관성 모드를 해지하지 않는 이상
직접 프로그래밍 할일은 없으니,
실제 병렬 프로그래밍을 하는 입장에서는 위와 같은 문제로 발생할 수 있는,
thread 대기시간에 따른 성능 저하를 고려해
되도록 대기 시간을 줄일 수 있도록,
같은 CPU 주변 코어에서 같은 데이터를 공유하는 thread가 배치되도록 하는 등의,
core관리를 하는게 중요합니다.
NUMA쪽은 주변 I/O(PCI-e) 도 같은 문제가 발생하기 때문에, DMA등과 함께
역시 thread 배치가 중요합니다.
설명을 듣고 보니, 동일 변수의 값에 CPU별로 다른 경우에, 어떻게 인지 및 해결하는지 궁금하네요
'다운힐'님의 글을 보니, CPU별로 해당 변수 값이 변경되었는지 감시(SNOOP)하는 방법이 있는 거 같긴한데.