소개 :-XX : parallelGCThreads = 8은 Amdahl의 법칙과 관련하여 코어 수와 관련이 있습니까?
나는 현재 소프트웨어의 조각 작업을하고 어디 벤치 마크 멀티 스레드 하나에 순차적 프로그램. 내 하드웨어에는 24 개의 코어와 16GB의 RAM이 있습니다. 내 프로그램은 Java로 작성되었지만 플로팅 (plotting)의 필요성 때문에 MATLAB에서 실행되었습니다. MATLAB 개방하면 다음 메시지가 표시된다 :
Picked up JAVA_TOOL:OPTIONS: -XX:parallelGCThreads = 8 - Xmx8g -Dsun.java2d.pmoffscreen = false
이론 지금 Amdahl's Law 따라 maksimum 성능 증가는 1/(B- (1-B)/P)로 정의 될
여기서 B는 연속 분수이고 P는 프로세서 수입니다. 제 경우 는 제가 parallelGCThreads
알기가 최대이고, 이것은 이제 좀 약 20
이론적 최대 성능 향상을 제공 B = 0.01, (1-B = 0.99) 및 P = 24 것을 가지고 g 용 가능한 가비지 콜렉터 스레드 수. 내 프로그램에 대한 집중적 인 테스트를 한 후에는 최대 비율 증가가 7.5인데 이는 이론적 인 20 점 근처가 아니 었습니다. 그러나 P = 8을 대체하면 이론적으로 7.8 내 프로그램에서 얻은 것과 매우 가깝습니다.
질문
parallelGCThreads
실제로 암달의 법칙은 P = 8이 아닌 P = (24)와 함께 사용해야 있도록 스레드의 양을 제한합니까?
미리 감사드립니다.
귀하의 thourough 답변 주셔서 감사합니다, 나는 아주 많이 apreciate. 당신은이 문제와 관련된 모든 것에 거의 대답합니다. Amadahls 비율이 19.5 일 때 7.5의 속도 비율을 얻는 것이 정상입니까? 평소 '용의자'가 내 프로그램 속도를 늦추는 것에 대해 어떻게 생각하십니까? 당신은 그들을 식별하기 위해 무엇을 할 것입니까? – SteewDK