2016-12-22 4 views
3

私はMicrosoft Rを使用しています。2つのvCPUを持つGCEインスタンスで開きます。ここにその仕様があります。Microsoft RオープンとGoogle Compute Engineですべてのコアを使用

$ lscpu 
Architecture:   x86_64 
CPU op-mode(s):  32-bit, 64-bit 
Byte Order:   Little Endian 
CPU(s):    2 
On-line CPU(s) list: 0,1 
Thread(s) per core: 2 
Core(s) per socket: 1 
Socket(s):    1 
NUMA node(s):   1 
Vendor ID:    GenuineIntel 
CPU family:   6 
Model:     63 
Model name:   Intel(R) Xeon(R) CPU @ 2.30GHz 
Stepping:    0 
CPU MHz:    2300.000 
BogoMIPS:    4600.00 
Hypervisor vendor:  KVM 
Virtualization type: full 
L1d cache:    32K 
L1i cache:    32K 
L2 cache:    256K 
L3 cache:    46080K 
NUMA node0 CPU(s):  0,1 
Flags:     fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush 
mmx fxsr sse sse2 ss ht syscall nx pdpe1gb rdtscp lm constant_tsc rep_good nopl xtopology nonstop_tsc 
eagerfpu pni pclmulqdq ssse3 fma cx16 sse4_1 sse4_2 x2apic movbe popcnt aes xsave avx f16c rdrand hyp 
ervisor lahf_lm abm fsgsbase tsc_adjust bmi1 avx2 smep bmi2 erms xsaveopt 

は、私は2つのコアを持っているにもかかわらず、マイクロソフトRオープンはそのうちの一つだけを認識しているようですので、私は私の計算能力をフル活用していませんよ。手動でスレッド数を設定することはできません。

Microsoft R Open 3.3.2 
The enhanced R distribution from Microsoft 
Microsoft packages Copyright (C) 2016 Microsoft Corporation 
Using the Intel MKL for parallel mathematical computing(using 1 cores). 
Default CRAN mirror snapshot taken on 2016-11-01. 
See: https://mran.microsoft.com/. 
> getMKLthreads() 
[1] 1 
> setMKLthreads(2) 
Number of threads at maximum: no change has been made. 

ここに、CPUの使用状況を示すグラフがあります。 CPUパワーの50%以上を使用することはありません。

enter image description here

だから、私は何をすべき私はMROですべての私のコアを使用することができますか?

+1

下記の私の答えを参照してくださいどのようなuは '>ライブラリーを入力したときにuが表示さん(パラレル)' ' > detectCores()' ' – Bg1850

+0

detectCores()'を返す '2' –

+0

。 – Bg1850

答えて

2

ハイパースレッドのXeonを実行しています。ハイパースレッディングを使用する1CPUがあり、OSは2CPUとして扱いますが、物理CPUは1CPしかありません。 MROは、あなたがこれを使用することができます(ハイパースレッディングなし)のみの物理コア

2

を使用しています。

library(doParallel)
no_cores <- detectCores() - 1
registerDoParallel(cores=no_cores)

それはあなたが持っている実際のコアよりも1つのコア少ないです。 OSの操作には1つのコアが残っています。やってみて。

関連する問題