Home Articles

在GPU上预测多普勒并行

Asked
Viewed 1315 times
4

我有这个代码用于并行编写我的结果 . 我在R中使用 foreachdoParallel 库 .

output_location='/home/Desktop/pp/'
    library(foreach)
    library(doParallel)
    library(data.table)

    no_cores <- detectCores()
    registerDoParallel(makeCluster(no_cores))
    a=Sys.time()

    foreach(i=1:100,.packages = c('foreach','doParallel')
    ,.options.multicore=mcoptions)%dopar% 
    {result<- my_functon(arg1,arg2)
    write(result,file=paste(output_location,"out",toString(i),".csv"))
    gc()
    }

现在它在CPU中使用4个内核,因此使用此代码编写所需的时间非常少 . 但我想使用GPU进行foreach-doparallel . 是否有任何方法可以在GPU上处理 foreach doParallel 循环 . gputools,gpuR 是一些支持R包的GPU . 但它们主要用于数学计算,如gpuMatMult(),gpuMatrix()等 . 我正在寻找在GPU上运行循环 . 任何帮助或指导都会很棒 .

1 Answer

  • 3

    使用 foreach 或类似工具进行并行化是有效的,因为您有多个CPU(或具有多个内核的CPU),可以同时处理多个任务 . GPU也有多个核心,但这些核心已经用于并行处理单个任务 . 因此,如果要进一步并行化,则需要多个GPU .

    但是,请记住,GPU仅比某些类型的应用程序更快 . 使用大型矩阵的矩阵运算是一个很好的例子!有关一个特定示例的最新比较,请参见性能部分here . 因此,您可以考虑GPU是否适合您 .

    此外:文件IO将始终通过CPU .

Related