2015-01-13 1 views
8

줄리아에서 사용할 수있는 코어 수를 얻고 싶습니다. 현재 다음을 수행하고 있습니다.줄리아에서 CPU 코어 수를 얻으십시오

using PyCall 
@pyimport psutil 
nCores = psutil.cpu_count() 

이 코드는 파이썬 함수를 호출합니다. 그러나 줄리아 절차를 사용하고 싶습니다. 어떻게 할 수 있습니까?

+4

상수 [Base.CPU_CORES] (http://docs.julialang.org/en/latest/stdlib/constants/#Base.CPU_CORES)는 트릭을 수행 할 수 있지만 (하이퍼 스레딩 코어는 풀 코어로 계산됩니다.). –

+1

'psutil.cpu_count()'는 인텔 i7-2720QM 기반 랩톱에서 8 코어를보고하므로 하이퍼 스레딩 코어도 풀 코어로 계산됩니다. – Simon

답변

6

나는 이것에 대해 100 % 확신하지 않지만, CPU_CORES은 시리얼 모드에서 줄리아를 시작할 때조차도 내 컴퓨터 (OSX 10.9.5 및 줄리아 0.3.5)에서 (하이퍼 스레드) 코어 수를 반환합니다. 나는 nworkers()nprocs()을 사용하여 사용 가능한 코어 수를 확인했습니다. -p 플래그가없는 줄리아를 시작하면이 둘 모두에 대해 1이 반환됩니다.

내가 두 경우 모두 julia -p 4

julia> nprocs() 
5 

julia> nworkers() 
4 

CPU_CORES 반환 8. 줄리아를 모르는

+0

나의 늦은 답변에 대한 사과는 사과합니다. – Pablo

+2

'''Base.CPU_CORES'''는 더 이상 사용되지 않습니다. 이 정보를 얻으려면,'''Sys.CPU_CORES'''를 시도해야합니다. 더 자세한 내용은 여기에서 찾을 수 있습니다 (https://github.com/JuliaLang/julia/blob/9ab1519db4ab8c525f84fce542bfc463d9a2b071/base/sysinfo.jl#L21) – tndoan

1

하지만를 줄리아를 시작하면 "psutil.cpu_count는 (논리는 = 거짓)"파이썬 당신에게주는 실제 CPU 수 (하이퍼 스레드 수는 계산되지 않음)

-2

JoshAdel의 대답은 정확합니다. Base.CPU_CORES은 가상 코어를 포함하여 사용 가능한 코어 수를 유지합니다.

대체 답변 : Hwloc 패키지를 사용하여이 답변을 추가합니다. 프로젝트 설명에서

이 줄리아 패키지는 hwloc 라이브러리를 래핑합니다.

휴대용 하드웨어 소재지 (hwloc) 소프트웨어 패키지가 휴대용 추상화를 제공 (OS, 버전, 아키텍처를 통해 ...) NUMA 메모리 노드, 소켓, 공유 캐시를 포함하여 현대적인 아키텍처의 계층 토폴로지, 코어 및 동시 멀티 스레딩. 또한 캐시 및 메모리와 같은 다양한 시스템 속성과 네트워크 인터페이스, InfiniBand HCA 또는 GPU와 같은 I/O 장치의 지역성을 수집합니다. 주로 응용 프로그램이 최신 컴퓨팅 하드웨어에 대한 정보를 수집하여 적절하고 효율적으로 활용할 수 있도록 돕는 것을 목표로합니다. 이것을 사용

import Hwloc 
topology = Hwloc.topology_load() 
counts = Hwloc.histmap(topology) 
ncores = counts[:Core] 
npus = counts[:PU] 
println("This machine has $ncores cores and $npus PUs (processing units)") 

이점을 다음과 같이 프로젝트 페이지에서도

가 물리적 코어의 개수 및 {물리적, 가상} 코어 (즉, 처리 유닛)을 획득하는 방법은 패키지는 물리적 인 코어와 가상 코어를 구분할 수있는 휴대용 기능에 있으며, 현재 Julia에서는 사용할 수 없습니다. 그러나 petition은이 기능을 언어 기반에 포함시킵니다.

3

줄리아의 최신 버전에서는 Sys.CPU_CORES을 사용할 수 있으며 언급 된 대답은 Base.CPU_CORES이 아닙니다. 0.6에서 테스트되었습니다.

+0

사실 https : //에서 언급 한 바와 같이 밑줄이있는'Sys.CPU_CORES'입니다. /stackoverflow.com/questions/27931026/obtain-the-number-of-cpu-cores-in-julia/45170709#comment65214105_27957225 –