为什么常规只能在一个核心上运行

时间:2014-04-23 16:08:40

标签: go

我试图应用未来的模式 http://www.golangpatterns.info/concurrency/futures

但我发现go例程只在一个cpu核心上执行。我确信我正确地设置了所有环境变量,就像核心数量一样。而且我也确定我的常规会花费很多时间。我就是这样做的。

Batch := make(chan *NNBatch, BatchNumber)
for i := 0; i < BatchNumber; i++ {
        go func(Index int) {
            Batch <- Self.TrainBatch(TrainData, LableData, Config, RandomTable[Index])
        }(i)
    }
for i := 0; i < BatchNumber; i++ {
        Delta := <-Batch
.....

它正在尝试计算反向传播错误,每层超过100个节点,因此需要花费大量时间。

我做错了什么吗? cpu使用率固定为25%

任何提示都会有所帮助。

0 个答案:

没有答案