CPU 성능: 클럭 속도 또는 코어JMP를 실행할 때 더 낮은 주파수에서 더 많은 코어를 갖는 것이 더 좋을까요, 아니면 그 반대일까요? 스레드가 있는 플랫폼이 거의 없기 때문에 클럭 속도가 더 중요하다고 믿게 될 것이라고 생각했습니다.그러나 이것이 여전히 사실인지 확실하지 않습니다.나는 일반적인 경우에 말하고 있다는 것을 알고 있으며 정확하게 말하기가 불가능합니다.어쨌든 감사합니다.
Re: CPU 성능: 클럭 속도 또는 코어JMP가 사용 가능한 프로세서를 얼마나 잘 사용하는지는 실행 중인 분석 플랫폼과 처리 중인 데이터에 따라 다릅니다. 다음은 긴 문서에서 행 수 > 프로세서 수로 텍스트 구문 분석 단계에서 텍스트 탐색기를 실행하는 JMP입니다. (다른 플랫폼은 다르게 작동하며 일부는 스레딩을 이용할 수 없습니다. 텍스트 탐색기의 구문 분석은 최근에 작업한 것입니다.)
100% busy100% 바쁘다
텍스트 탐색기의 알고리즘이 컴퓨터를 항상 100% 바쁘게 유지할 수 있는 것은 아닙니다. 일부 작업은 먼저 완료되는 다른 작업에 의존하며, 스레드된 일부 작업은 스레드를 대기시키는 방식으로 리소스(예: 메모리 액세스)를 놓고 경쟁합니다.
dt = New Table( "bigtext",
Add Rows( 1000 ),
New Column( "text", Character, "Nominal", formula( Repeat( "aaa bbb ccc ", 1e5 ) ) )
);
dt << Text Explorer(
Text Columns( :text )
);
더 많은 CPU를 추가하는 데는 한계가 있습니다. 여기에서는 모든 32/64 CPU가 바쁘게 보이지만 작업은 거의 같은 속도로 진행됩니다.
100% busy but not making progress much faster100% 바쁘지만 훨씬 더 빠르게 진행되지 않음
이 CPU들이 서로 방해가 되는 것 같습니다. 메모리를 통해 이동하는 GB의 문서는 CPU의 캐시 메모리를 휘젓는 기회가 많습니다. 대부분 JMP는 4~12개의 CPU가 있는 컴퓨터에서 개발되며 알고리즘이 조정될 가능성이 높습니다. 예를 들어 텍스트 탐색기가 구문 분석 단계를 완료한 후 프로세서의 절반을 사용하여 구문 분석 결과를 결합합니다. CPU 8개 시스템에서 프로세서를 모두 사용하는 것보다 빠르다고 판단했기 때문입니다.
예, 4-12개의 CPU, 더 빠른 CPU, 페이징을 방지하기에 충분한 메모리입니다. 디스크로 페이징하지 않고 데이터를 보관할 메모리가 충분하지 않은 경우 다른 방법은 도움이 되지 않습니다.
Re: CPU 성능: 클럭 속도 또는 코어@vince_faller : 원래 질문에 답하기 위해 JMP(Windows에서) 사본 하나를 최적화하기 위한 개인적 권장 사항은 가능한 가장 빠른 4개 또는 6개의 프로세서를 얻는 것입니다.
@txnelson : JMP는 종종 모든 코어의 일부를 사용하지만 모든 코어를 용량까지 사용하지는 않습니다.따라서 JMP가 8개 또는 12개 미만의 실제 '작업자' 스레드로 실행되고 있으며 처리가 운영 체제에 의해 코어에서 코어로 이동한다고 믿게 되었습니다.
JMP의 이 속성이 마음에 들지 않아 JMP가 전체 코어의 일부만 사용한다는 내 이론을 테스트하는 데 시간을 보냈습니다. 다음은 자체 JMP 인스턴스에서 각각 아래에 있는 스크립트 사본 1, 2, 3 또는 4개를 동시에 실행할 때의 결과입니다.
하나의 인스턴스
19-21초

두 인스턴스
26~28초

세 가지 인스턴스
34-39초

4개의 인스턴스
43-47초

한 번에 두 개의 복사본을 실행하는 시간은 하나를 두 번 실행하는 시간보다 확실히 적습니다.

Names default to here( 1);
dt = Open( "$Sample_data/probe.jmp", Private );
Random reset(1);
valcol = dt << New Column( "Validation",
Numeric, "Nominal", Set formula( Random Category( 0.75, 0, 0.25, 1, 2 ) ),
Value Labels( {0 = "Training", 1 = "Validation", 2 = "Test"} ), Use Value Labels( 1 )
);
dt << Run Formulas; valcol << Delete Formula;
timeboot = Function( {},
start = Today();
xvars = Substitute(Char((dt << Get Column Names)[8::394]), "{", "", "}", "");
Eval( Parse(
"rf = dt << Bootstrap Forest(
Y( :Process ),
X( " || xvars || " ),
Validation Portion( :Validation ),
Method( \!"Bootstrap Forest\!" ),
Portion Bootstrap( 1 ),
Number Terms( 30 ),
Number Trees( 2000 ),
Early Stopping( 0 ),
Go
);"
));
rf << Close Window;
end = Today();
return(end - start);
);
win = New window("Time Bootstrap",
V List Box(
r = text box( "", << Set Width( 100 ) ),
H List Box(
Button Box( "Start", r << Set Text( Char( timeboot() ) || " seconds" ) ),
Button Box( "Close", dt << Close Window; win << Close Window; )
)
)
);Re: CPU 성능: 클럭 속도 또는 코어내 결과는 다르며 내가 테스트한 플랫폼 때문일 수 있습니다.Random Forrest를 실행하면 Windows 7과 Windows 10 모두에서 모든 CPU에서 쉽게 실행됩니다. 평균적으로 전체 CPU 용량의 35% 이상을 차지합니다.저는 8개의 프로세스만 가지고 있습니다....당신의 멋진 총 12개는 아니지만 8개 모두 문제를 해결하고 있습니다.
Re: CPU 성능: 클럭 속도 또는 코어Windows 7 데스크톱에서 JMP의 단일 인스턴스가 12개 중 6개 이상의 코어를 사용하는 것을 본 적이 없습니다. 일반적으로 25% 프로세서 사용량과 함께 칙칙합니다.Re: CPU 성능: 클럭 속도 또는 코어빈스,
대부분의 분석 플랫폼은 다중 스레드인 반면 JSL은 대부분 단일 스레드입니다.따라서 혼합 사례입니다.내가 제안하는 것은 작업 관리자를 연 다음 그 안에 있는 성능 탭을 여는 것입니다.그런 다음 일반적인 작업 흐름을 실행하면 애플리케이션이 여러 코어에 도달할 때와 단일 코어에 도달할 때를 명확하게 확인할 수 있습니다.거기에서 결정을 내릴 수 있습니다.