跳至主要內容
  • Hostloc 空間訪問刷分
  • 售賣場
  • 廣告位
  • 賣站?

4563博客

全新的繁體中文 WordPress 網站
  • 首頁
  • 外行请问多线程如何设置线程数
未分類
5 11 月 2020

外行请问多线程如何设置线程数

外行请问多线程如何设置线程数

資深大佬 : 132hong 6

背景:在写论文,需要处理较大的矩阵,因此想通过分块矩阵用多线程分别计算。
对于如何设置线程数,看到一篇博客: https://www.cnblogs.com/javalyy/p/10930330.html,上面提到:
最佳线程数目 = ((线程等待时间+线程 CPU 时间)/线程 CPU 时间 )* CPU 数目
博主举例:我们的服务器 CPU 核数为 4 核,一个任务线程 cpu 耗时为 20ms,线程等待(网络 IO 、磁盘 IO )耗时 80ms,那最佳线程数目:( 80 + 20 )/20 * 4 = 20 。也就是设置 20 个线程数最佳。

问题:我去搜索无法搜到想要的内容,请问使用 C#如何查看我电脑的 线程等待时间、线程 CPU 时间呢?可以用哪个方法获取,或者提供一个关键字我去搜索。
说明:使用几个线程其实无所谓,主要是要有个理论依据。

大佬有話說 (19)

  • 資深大佬 : GoLand

    这东西没有很精确的值,一般默认设成核数,你要是想压榨算力,可以慢慢调,加几个减几个然后测试,调到性能最佳点就是你这个“程序”的最佳线程数。

  • 資深大佬 : ysc3839

    这种 CPU 运算的情况,线程是一直在运行的,没有等待 IO,所以“线程等待时间”是 0 。

  • 資深大佬 : no1xsyzy

    CPU 密集型运算没有等待时间
    压榨每一滴算力需要实测,因为上述也只是非常粗略的估计,何况实际情况下还会产生别的问题(比如缓存命中率的问题)。

  • 資深大佬 : lower

    结束和开始时的时间相减

  • 主 資深大佬 : 132hong

    @GoLand #1
    @ysc3839 #2
    @no1xsyzy #3
    @lower #4
    感谢解答,我还是自己编一个数字吧,要有个理论依据[狗头]

  • 資深大佬 : renmu123

    CPU 密集型一般就设置成 cpu 核数

  • 資深大佬 : rihkddd

    如果单纯的想快,最好用已经写好的矩阵计算库,不止并行会影响计算速度,例如缓存命中,算法,指令优化带来的提升都会很大。
    如果你论文研究的就是矩阵计算,应该对上述问题都有了解,简单来说矩阵计算基本上没有 IO 。

  • 資深大佬 : imn1

    C#是写 GUI 么,还是 CLI ?
    GUI 加个控件可选呗,默认=CPU 数

  • 資深大佬 : wangritian

    如果矩阵是整体加载到内存后再分块计算,也就是线程中没有磁盘 IO,那设置成 CPU 逻辑核心数就好了
    如果你的矩阵分块保存成了多个文件,线程内有读取文件操作,就需要按公式定

  • 資深大佬 : paoqi2048

    先设置成 processor 数量,后面根据测试情况调整

  • 資深大佬 : wysnylc

    用二分法慢慢调
    操作步骤为:设置 200 记录运行时间;设置 100 记录运行时间,设置 300 记录运行时间.如果 100 时间最少则设置 50 和 150,依次类推不到 10 次就可以定位到个位数

  • 主 資深大佬 : 132hong

    @wangritian
    @paoqi2048
    感谢回答
    @wysnylc 话说没有一个比较标准的计算公式什么的嘛

  • 資深大佬 : mingl0280

    @132hong 这东西哪有计算标准,都是看 CPU 性能的

  • 資深大佬 : hdfg159

    这个没有标准的公式吧,自己看看任务主 IO 还是主 CPU,然后自己调,然后测试跑一下看看处理效率比。

  • 資深大佬 : lxilu

    较大是多大,百万乘百万?

  • 資深大佬 : laminux29

    公开一个小技巧,这个问题其实有一款图形化模拟器,名字叫:Factorio 。什么并行串行单核多核分布式缓存瓶颈等问题,在这款模拟器里都能实现图形化展示。

  • 資深大佬 : laminux29

    你把这款模拟器从头到尾玩一遍,就相当于从单核单机时代,到现在分布式时代,全部走了一遍。以后再遇到这种问题,脑子里就容易有设计思路与处理画面了。

  • 資深大佬 : stormysky

    @laminux29 这不是个游戏吗

  • 資深大佬 : Chinsung

    等待时间这些,linux 上可以通过命令和工具查看,windows 不清楚。
    不过我感觉 CPU 密集型,2*CPU 到 CPU+1 去慢慢试就好了

文章導覽

上一篇文章
下一篇文章

AD

其他操作

  • 登入
  • 訂閱網站內容的資訊提供
  • 訂閱留言的資訊提供
  • WordPress.org 台灣繁體中文

51la

4563博客

全新的繁體中文 WordPress 網站
返回頂端
本站採用 WordPress 建置 | 佈景主題採用 GretaThemes 所設計的 Memory
4563博客
  • Hostloc 空間訪問刷分
  • 售賣場
  • 廣告位
  • 賣站?
在這裡新增小工具