2010-02-26 5 views
4

현재 아키텍처가 단일 시스템의 여러 코어에서 동일한 단일 스레드를 실행하도록 지원합니까? 그러한 상황에 어떤 종류의 문제가 관련됩니까?두 개의 코어에서 하나의 스레드 실행

+3

정의에 따르면 스레드는 "다른 스레드와 병렬로 실행할 수있는 명령 시퀀스"입니다. 순차적으로 실행되기 때문에 병렬 모드에서 단일 스레드를 실행하는 것은 위험합니다. – Manu

답변

4

나는 그렇지 않습니다.

스레드가 다른 코어에서 다시 시작될 수는 있지만 스레드 자체는 병렬로 실행할 수 없습니다.

병렬로 실행할 수있는 스레드에 코드가있는 경우 두 개의 스레드로 분할해야합니다.

2

실제로 스레드가 느려집니다. 스레드가 코어를 전환 할 때마다 이전 코어의 모든 상태를 전송해야합니다. 이상적으로 스레드는 하나의 코어에 머무를 것입니다.

여러 코어에서 실행하면 어떤 이점이 있다고 생각합니까? 아니, 나는 그런 일이 존재한다 생각하지 않는다

+0

실행중인 하나의 코어에서 실속을 유발할 수있는 IO와 같은 스레드 작업의 일부는 다른 코어에서 병렬로 실행될 수 있습니다. 이는 멀티 코어 시스템의 성능을 활용하는 데 도움이됩니다. – Aastha

0

하드웨어가 허용하지 않기 때문에이 존재하지 않는 그러나 이것은 이론적으로 인텔에서 일부 독창성으로 제거 할 수있는 병목 현상입니다.

0

기본적으로 순차적 인 지시가 자동으로 병렬 처리 되나요? 작업 부하에 따라 서로 다른 수준의 효율성으로 병렬 실행을 구현하는 방법은 여러 가지가 있습니다. 이것은 또한 서로 다른 레벨에서 일어날 수 있습니다. (질문과 관련된), ISA, OS 등 ...

내가 올바르게 추측 할 수 있다면, 나는 당신이 묻는 것을 대답하려고 시도합니다. 이론적으로는 가능하지만 시중에서 판매되는 상용 하드웨어에서는 구현되지 않았습니다. 따라서 병렬화를위한 더 높은 수준의 방법.

관련 문제