解决运行pytorch程序多线程问题

Posted bamtercelboo

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了解决运行pytorch程序多线程问题相关的知识,希望对你有一定的参考价值。

  • 当我使用pycharm运行  (https://github.com/Joyce94/cnn-text-classification-pytorch )  pytorch程序的时候,在Linux服务器上会开启多个进程,占用服务器的大量的CPU,在windows10上运行此程序的时候,本机的CPU和内存会被吃光,是因为在train.py中有大量的数据训练处理,会开启多个进程,占用大量的CPU和进程。
  • 本机window10

 

  • linux服务器开启了多个进程

 

  • Linux服务器占用大量CPU

 

  • 在pytorch中提供了(http://pytorch.org/docs/master/multiprocessing.html)muliprocessing多进程管理,其中有Pool进程池、Process()等对进程进行管理,可能是我使用的方式不对,反正是没有什么效果。
  • 然而最简单的也是最好的解决办法 :torch.set_num_threads(int thread) ,可以很好的解决windows问题,参考(http://pytorch.org/docs/master/torch.html#parallelism) 然而,在linux服务器上还是有一些问题的,export OMP_NUM_THREADS = 1 可以解决Linux问题。

以上是关于解决运行pytorch程序多线程问题的主要内容,如果未能解决你的问题,请参考以下文章

具有 mkl-dnn 后端性能的 pytorch 在具有多线程的小型 conv 上

java 程序中怎么保证多线程的运行安全?

201771010126 王燕《面向对象程序设计(Java)》第十七周学习总结

java 程序中怎么保证多线程的运行安全?

Java基础-多线程篇

多线程訪问共享数据