为什么多核上的R计算较慢,而单核上的R计算较快? 两个矩阵

为什么多核上的R计算较慢,而单核上的R计算较快? 两个矩阵,r,performance,parallel-processing,multicore,slowdown,R,Performance,Parallel Processing,Multicore,Slowdown,在mapply中有1个核 user system elapsed 0.008 0.000 0.008 user system elapsed 0.007 0.000 0.007 并为MCM指定1个核心 user system elapsed 0.008 0.000 0.008 user system elapsed 0.007 0.000 0.007 我不明白为什么多核的速度比单核慢。是不是因为计算成本不高 当你对代码进行平

在mapply中有1个核

 user  system elapsed 
0.008   0.000   0.008 
 user  system elapsed 
0.007   0.000   0.007 
并为MCM指定1个核心

 user  system elapsed 
0.008   0.000   0.008 
 user  system elapsed 
0.007   0.000   0.007 

我不明白为什么多核的速度比单核慢。是不是因为计算成本不高

当你对代码进行平行排列时,你总是会得到一些开销。对于这里非常简单的工作负载,开销大于工作负载。如果您使用的工作负载需要一些时间,例如
Sys.sleep(0.1)
,您应该会看到多核计算带来的加速

当你对代码进行平行排列时,你总是会得到一些开销。对于这里非常简单的工作负载,开销大于工作负载。如果您使用的工作负载需要一些时间,例如
Sys.sleep(0.1)
,您应该会看到多核计算带来的加速

为了给出一个有意义的基准,您可能需要执行100次左右的操作。0.008秒与0.02.OTOH相差不远,多核解决方案在系统代码(即内核代码;可能是由于衍生操作系统线程)上花费大量时间,而单核解决方案只在用户代码(即应用程序代码)上花费时钟周期。为了给出有意义的基准,您可能需要执行100次左右的操作。0.008秒与0.02.OTOH相差不远,多核解决方案在系统代码(即内核代码;可能是由于衍生操作系统线程)上花费大量时间,而单核解决方案在用户代码(即应用程序代码)上只花费时钟周期。
 user  system elapsed 
0.008   0.000   0.008 
 user  system elapsed 
0.007   0.000   0.007