Project

General

Profile

Actions

Bug #20618

closed

ruby uses 1/2 (7 out of 16) cores for 16 ractors

Added by skorobogatydmitry (Dmitry Skorobogaty) 4 months ago. Updated 4 months ago.

Status:
Closed
Assignee:
-
Target version:
-
ruby -v:
ruby 3.3.1 (2024-04-23 revision c56cd86388) [x86_64-linux]
[ruby-core:118496]

Description

According to top, the below code uses 7/16 cores (700%) of my AMD Ryzen 7 5800HS:

#!/usr/bin/env ruby

16.times {
  Ractor.new {
    10_000.downto(1) { |i|
      100_000.downto(1) { |j|
        i * j
      }
    }
  }
}

sleep 30

The same code occupies all 16 cores on ruby 3.1.2p20 (2022-04-12 revision 4491bb740a) [x86_64-linux]

The problem reproduces on ruby 3.3.3 (2024-06-12 revision f1c7b6f435) [x86_64-linux] (ruby from the latest docker image).

Actions #1

Updated by skorobogatydmitry (Dmitry Skorobogaty) 4 months ago

  • Subject changed from ruby uses 1/2 (8 out of 16) cores for 16 ractors to ruby uses 1/2 (7 out of 16) cores for 16 ractors

Updated by alanwu (Alan Wu) 4 months ago

  • Status changed from Open to Closed

I think this is an intended change from #19842. Please correct me if I'm wrong @ko1 (Koichi Sasada).

Emphasis mine:

On the multiple Ractors, N (+ alpha) native threads run M ractors. Now there is no way to disable M:N threads on multiple Ractors because there are only a few multi-Ractor programs and no compatibility issues.

Updated by ko1 (Koichi Sasada) 4 months ago ยท Edited

Thanks @alanwu (Alan Wu)

Please use RUBY_MAX_CPU to increase the processors.

Actions

Also available in: Atom PDF

Like0
Like0Like0Like1