This paper presents a case for exemplar parallelism of neural networks using Go as parallelization framework. Further it is shown that also limited multi-core hardware systems are feasible for these parallelization tasks, as notebooks and single board computer systems. The main question was how much speedup can be generated when using concurrent Go goroutines specifically. A simple concurrent feedforward network for MNIST digit recognition with the programming language Go was created to find the answer. The first findings when using a notebook (Lenovo Yoga 2) showed a speedup of 252% when utilizing 4 goroutines. Testing a single board computer (Banana Pi M3) delivered more convincing results: 320% with 4 goroutines, and 432% with 8 goroutines.
翻译:本文论证了使用Go作为并行化框架进行神经网络示例并行化的可行性,并进一步证明在有限多核硬件系统(如笔记本电脑和单板计算机系统)上也能实现此类并行化任务。核心研究问题聚焦于:使用Go协程(goroutines)时具体能产生多少加速比。为此,我们基于编程语言Go构建了一个用于MNIST手写数字识别的简单前馈网络并行化模型。初步实验结果显示:在笔记本电脑(联想Yoga 2)上使用4个goroutines实现了252%的加速比;而在单板计算机(Banana Pi M3)上的测试结果更具说服力——4个goroutines达到320%加速比,8个goroutines则达到432%加速比。