【问题标题】:Can I run two seperate jupyter notebook files at the same time, without slowdown on a single CPU computer?我可以同时运行两个单独的 jupyter notebook 文件,而不会在单台 CPU 计算机上减速吗?
【发布时间】:2018-06-18 05:23:30
【问题描述】:

我目前正在 jupyter notebook 中运行一个 python 函数,这需要相当长的时间。 Python 说它以大约 98% 的 CPU 运行,但是,我的 CPU 仍有大约 60% 未使用。现在经过一番谷歌搜索后,我发现这与我的处理器线程有关(我不是计算机工程师,如果这不正确,很抱歉)。但是,我想知道是否可以在 jupyter notebook 中运行另一个函数,它会占用 60% 的未使用活动,还是会将 99% 分配给两个函数,从而减慢这两个函数的速度。我希望你们能提供帮助。如果有任何不清楚的地方,请告诉我。

附:我在 2012 年末使用 macbook pro 视网膜(我知道),2.5 gHZ 英特尔核心 i5,8 gb 内存。它有两个内核和一个处理器。

【问题讨论】:

  • 抱歉换了。会改的!
  • 你试过看看会发生什么吗?
  • 程序中的计算时间已经超过 21 小时,我有点着急。但我只是试了一下,它奏效了!谢谢!两者都以 100% 运行。

标签: python jupyter-notebook cpu-usage cpu-architecture


【解决方案1】:

您有一个 Intel Sandybridge 或 Ivybridge CPU。它有两个带超线程的物理内核,因此它可能对操作系统显示为 4 个逻辑内核。

每个内核都有自己的私有 L1i/d 和 L2 缓存,但 L3(和内存带宽)在内核之间共享。

在另一个物理 CPU 上运行单独的进程或线程可以通过以下机制减慢第一个进程:

  • 双核最大睿频时钟速度低于单核睿频。
  • 它们争夺内存带宽和 L3 缓存占用空间。 (即更多的 L3 缓存未命中)。

如果 L3 缓存未命中和内存带宽不是您工作负载的重大瓶颈,那么将两个内核用于单独的任务几乎是绝对的胜利。

运行 4 个线程(因此操作系统必须将任务安排到每个物理内核的两个逻辑内核上)会降低一些速度,但这更多地取决于工作负载的细节。有关 HT 如何静态分区或动态共享各种执行资源的 asm / cpu 架构详细信息,请参阅 Agner Fog 的微架构指南 (http://agner.org/optimize/)。但真的只是试试看。

除了纯吞吐量之外,单线程可能会因缓存未命中和其他瓶颈而出现一些停顿,因此您可以通过超线程以牺牲单核性能为代价来获得一些吞吐量。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-11-03
    • 2011-01-20
    • 1970-01-01
    • 2020-06-13
    • 1970-01-01
    • 1970-01-01
    • 2012-11-04
    • 2011-03-30
    相关资源
    最近更新 更多