Multi-core usage, threads, thread-pools의 질문을 따릅니다.코어 사이의 .NET 스레드 이동
스레드가 수명 기간 동안 한 코어에서 다른 코어로 이동 했습니까?
물론. 듀얼 코어 시스템에서 3 개의 스레드가 있다고 가정 해보십시오. 에 정기적으로 스레드를 이동시키지 않는 공정한 일정을 코어 사이에 표시하십시오.
이 사이트에서는 이번이 처음이기 때문에 의견을 말할 수있는 충분한 담당자가 없었습니다. 나는 내가 논평하고 싶었던 것을 참조하는 새로운 질문을하기로 결정했다.
스레드를 이동할 코어를 선택하는 프로세스는 무엇입니까? 그것은 스케줄러가 처리 시간을 필요로하는 스레드 목록을 가지고 있으며, 하나가 끝나면 다른 스레드를 넣는 것과 같습니까?
또한 코어간에 스레드가 이동한다는 진술에 대한 참조가 있는지 궁금합니다. 아니면 그냥 "일반적인 지식"으로 간주됩니까?
감사합니다.
"캐시가 이미이 핵심에 있었기 때문에이 스레드가 스레드를 다시 얻을 확률이 더 높습니다"라는 문제 만 있습니까? 스트롱 (Strong)과 툴센 (Tullsen)에 의한 "코어 간 스레드의 고속 스위칭"을 읽은 후보다 복잡해 보였다. "Constantinou, Sazeides et al.의"칩 멀티 코어에서의 단일 스레드 마이그레이션의 성능 의미 " 캐시 히스토리의 문제인 경우 "모든 스마트 스케줄러"그룹 아래의 Windows 스케줄러가 있습니까? 아니면 스케줄링이 "스마트"하도록주의해야합니까? – mphair
"이 스레드는이 코어에서 실행되었고, CPU 캐시와 같은 이유로 인해이 코어에서 다시 스케줄을 잡으면 더 빨리 실행됩니다"와 비슷합니다. 나는 당신이 인용 할 수있는 논문을 읽지 않았으므로 나는 그것에 대해 논평 할 수 없다. Windows 및 다른 시스템의 스케줄링 알고리즘은 내가 일반화 한 것보다 훨씬 앞선다. 그러나 아이디어는 동일하다. 동일한 코어에서 스레드를 실행하는 것이 더 빠르므로 스케줄러가 스레드를 다시 배치 할 가능성이 큽니다. 그러나 스레드 연관 관계를 수동으로 설정하지 않으면 보장이 없습니다. –