c - 让进程使用所有进程能力

标签 c linux multithreading neural-network cpu

<分区>

这个问题真的很笼统,所以这里有更详细的信息: 我目前运行 Ubuntu 14.04,目前在神经网络上工作。为了找到最佳参数,我想训练许多不同的参数化网络,看看哪一个效果最好。

网络及其训练序列是用 c 语言编写的,我有一个 4 核处理器。如果我运行该程序,它会一个接一个地训练每个网络。

现在系统监视器告诉我程序使用了大约 25% 的总处理能力。我怎样才能改进它,平均使用所有内核并 100% 使用我的 cpu(和 gpu?)的最佳方法是什么

目前我正在使用编译标志-pthread,但我想还有更多的可能性。

最佳答案

是的,这个问题很笼统。答案也是如此:了解并发编程。线程,或 OpenMP .特别是对于 OpenMP,您可以通过在正确的 for 循环之前添加一个 #pragma 将您的程序变成一个多线程程序。

一种不同的方法可能是由不同的过程执行四种训练中的每一种。该策略是使用 main 的参数 (argc, argv) 来告诉每个进程要做什么。如果进程之间不需要通信,这很容易。

关于c - 让进程使用所有进程能力,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34372013/

相关文章:

Java:ReadWriteLock 和 ReentrantReadWriteLock 之间的区别

c - 我的程序在 C 中实现堆栈有什么问题

c - C语言线程,跨平台

c - 为什么在尝试使用 DDD 打开文件时会出现此错误?

linux - 如何在bash中输出目录的不可读内容

multithreading - 通过单个EJB @Asynchronous方法产生多个线程

不能在幂函数中使用常数

android - 适用于 Android 开发的轻型 Linux 发行版

linux - 将 soapui 模拟服务运行器作为非阻塞进程运行

c++ - C++ IntAtomicGet、GotW 的原因