码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 一次XGBoost性能优化-超线程影响运算速度


    一、问题背景

    1. 一个朋友在使用 XGBoost 框架进行机器学习编码,他们的一个demo, 在笔记本的虚拟机(4核)运行的时候,只要8s, 但是在一个64核128G 的物理机上面的虚拟机去跑的时候,发现时间需要更长。

      image-20220517103920522

      笔记本执行:

      image-20220517104217425

    二、问题定位和解决

    首先看到负载是比较高的,内存占用比较少。因为是计算型的,所以这种状态是正常的。

    一开始我觉得是GIL 锁,后面询问是使用了 XGBoost 框架,想去官网看看能不能找到相关内容

    XGBoost 多线程支持 文档的一段话提醒了我:

    我们可以在具有更多核心的机器上运行相同的代码。例如大型的 Amazon Web Services EC2 具有 32 个核心。我们可以调整上面的代码来计算具有 1 到 32 个核心的模型所需的训练时间。结果如下图。

    img

    XGBoost 在 1 到 32 个核心上训练模型所需的时间

    值得注意的是,在多于 16 个线程(大约 7 秒)的情况下,我们没有看到太多进步。我想其原因是 Amazon 仅在硬件中提供 16 个内核,而另外的 16 个核心是通过超线程提供额外。结果表明,如果您的计算机具有超线程能力,则可能需要将 num_threads 设置为等于计算机中物理 CPU 核心的数量。

    示例: https://github.com/dmlc/xgboost/blob/master/demo/guide-python/sklearn_parallel.py

    我们通过示例将 n_job 的值调整为 cpu 核心的一半,

    n_jobs=multiprocessing.cpu_count()//2
    

    发现解决了问题

    image-20220517104911783

  • 相关阅读:
    Java GC 算法
    设计模式- 单例模式(Singleton)结构|实现方式|优缺点|场景
    jmeter 线程组
    Rust初接触
    为什么要用WRF计算非绝热加热项,以及如何输出非绝热加热项.
    springboot和vue:二、springboot特点介绍+热部署热更新
    Qt编写4K/8K大分辨率播放器(8K占用1%CPU)
    为什么六位数高薪仍无法让技术人员感到满足?
    软件工程概述----- Scrum敏捷开发
    JumpServer 堡垒机 v2.25.0 发布
  • 原文地址:https://www.cnblogs.com/operationhome/p/16324011.html
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号