R中的单进程(共享内存)多CPU并行

R中的单进程(共享内存)多CPU并行,r,parallel-processing,R,Parallel Processing,我已经用了很多mclapply,我很喜欢它。这是一个记忆猪,但非常方便。唉,现在我有了一个不同的问题,这不仅仅是令人尴尬的平行问题 可以在一台计算机上使用多个CPU核,共享相同的内存空间,而不必复制完整的操作系统进程吗 过程开销最小;及 一个CPU对全局数据的修改是否立即可供其他CPU使用 如果是,R能否像文件一样锁定一些内存(群集) 我怀疑答案是否定的,明确地了解这一点将非常有用。如果答案是肯定的,请给我指出正确的方向 问候, /根据你有没有看过微软的R-Open(可用于Linux)和自定义数

我已经用了很多mclapply,我很喜欢它。这是一个记忆猪,但非常方便。唉,现在我有了一个不同的问题,这不仅仅是令人尴尬的平行问题

可以在一台计算机上使用多个CPU核,共享相同的内存空间,而不必复制完整的操作系统进程吗

  • 过程开销最小;及

  • 一个CPU对全局数据的修改是否立即可供其他CPU使用

  • 如果是,R能否像文件一样锁定一些内存(群集)

    我怀疑答案是否定的,明确地了解这一点将非常有用。如果答案是肯定的,请给我指出正确的方向

    问候,


    /根据

    你有没有看过微软的R-Open(可用于Linux)和自定义数学内核库(MKL)。 在不重写代码的情况下,我看到了非常好的性能改进

    您可以使用该软件包使用分布式共享内存并行,即使用相同内存空间的多个R进程

    除此之外,您还可以使用多线程BLAS/LAPACK(例如OpenBLAS或Intel MKL),并且可以将C/C++(可能还有Fortran)代码与OpenMP一起使用。有关示例,请参见