돌아가는 프로그램은 A한개라고 가정하고
단순 계산프로그램임. 예를 들어 루트값을 찾는다거나 소수를 찾는 프로그램
근데 스래드 한개만 해도 CPU독점 ㅏ다시피하고 여러개 해도 거이 독점할텐데
스레드를 늘리게 되면 컨텍스트 스위칭 빈도만 많아지고 오히려 시간상으로 더 오래걸릴수 있는거 아닌가요??
단순 계산프로그램임. 예를 들어 루트값을 찾는다거나 소수를 찾는 프로그램
근데 스래드 한개만 해도 CPU독점 ㅏ다시피하고 여러개 해도 거이 독점할텐데
스레드를 늘리게 되면 컨텍스트 스위칭 빈도만 많아지고 오히려 시간상으로 더 오래걸릴수 있는거 아닌가요??
병렬화할수없는걸병렬화하려하면더느리게져하드웨어제한사항도체크해야하고
단순계산이면 openmp 적용하는 것도 고려해봐
리눅스로 했고 top로 cpu모니터링 해봤는데 프로그램이 독점하는거 확인했습니당...
스레드를 늘릴필요가 있는 경우임? CPU가 여러개인 상황에서 병렬처리할수있는 코드를짯다면 스레드여러개가 우수한건 사실인데
문맥교환이 오버헤드로 크다고하는거보니깐 적은 cpu로 스레드여러개를 돌린다는거면 이건 당연히 성능이낮아지지만
보통 스레드여러개를 만들어서 여러cpu에 할당해서 병렬처리하는 상황이면 문맥교환안일어나게만들어야됨 cpu4개면 4개스레드로 병렬처리해야지 굳이 8개씩 만들어서 cpu가 계속 문맥교환하게 만들면 손해임