[#108771] [Ruby master Bug#18816] Ractor segfaulting MacOS 12.4 (aarch64 / M1 processor) — "brodock (Gabriel Mazetto)" <noreply@...>

Issue #18816 has been reported by brodock (Gabriel Mazetto).

8 messages 2022/06/05

[#108802] [Ruby master Feature#18821] Expose Pattern Matching interfaces in core classes — "baweaver (Brandon Weaver)" <noreply@...>

Issue #18821 has been reported by baweaver (Brandon Weaver).

9 messages 2022/06/08

[#108822] [Ruby master Feature#18822] Ruby lack a proper method to percent-encode strings for URIs (RFC 3986) — "byroot (Jean Boussier)" <noreply@...>

Issue #18822 has been reported by byroot (Jean Boussier).

18 messages 2022/06/09

[#108937] [Ruby master Bug#18832] Suspicious superclass mismatch — "fxn (Xavier Noria)" <noreply@...>

Issue #18832 has been reported by fxn (Xavier Noria).

16 messages 2022/06/15

[#108976] [Ruby master Misc#18836] DevMeeting-2022-07-21 — "mame (Yusuke Endoh)" <noreply@...>

Issue #18836 has been reported by mame (Yusuke Endoh).

12 messages 2022/06/17

[#109043] [Ruby master Bug#18876] OpenSSL is not available with `--with-openssl-dir` — "Gloomy_meng (Gloomy Meng)" <noreply@...>

Issue #18876 has been reported by Gloomy_meng (Gloomy Meng).

18 messages 2022/06/23

[#109052] [Ruby master Bug#18878] parse.y: Foo::Bar {} is inconsistently rejected — "qnighy (Masaki Hara)" <noreply@...>

Issue #18878 has been reported by qnighy (Masaki Hara).

9 messages 2022/06/26

[#109055] [Ruby master Bug#18881] IO#read_nonblock raises IOError when called following buffered character IO — "javanthropus (Jeremy Bopp)" <noreply@...>

Issue #18881 has been reported by javanthropus (Jeremy Bopp).

9 messages 2022/06/26

[#109063] [Ruby master Bug#18882] File.read cuts off a text file with special characters when reading it on MS Windows — magynhard <noreply@...>

Issue #18882 has been reported by magynhard (Matth辰us Johannes Beyrle).

15 messages 2022/06/27

[#109081] [Ruby master Feature#18885] Long lived fork advisory API (potential Copy on Write optimizations) — "byroot (Jean Boussier)" <noreply@...>

Issue #18885 has been reported by byroot (Jean Boussier).

23 messages 2022/06/28

[#109083] [Ruby master Bug#18886] Struct aref and aset don't trigger any tracepoints. — "ioquatix (Samuel Williams)" <noreply@...>

Issue #18886 has been reported by ioquatix (Samuel Williams).

8 messages 2022/06/29

[#109095] [Ruby master Misc#18888] Migrate ruby-lang.org mail services to Google Domains and Google Workspace — "shugo (Shugo Maeda)" <noreply@...>

Issue #18888 has been reported by shugo (Shugo Maeda).

16 messages 2022/06/30

[ruby-core:108855] [Ruby master Bug#17995] Slow down when mjit and Ractor are being used at same time

From: "k0kubun (Takashi Kokubun)" <noreply@...>
Date: 2022-06-11 04:02:17 UTC
List: ruby-core #108855
Issue #17995 has been updated by k0kubun (Takashi Kokubun).

Assignee set to k0kubun (Takashi Kokubun)

----------------------------------------
Bug #17995: Slow down when mjit and Ractor are being used at same time
https://bugs.ruby-lang.org/issues/17995#change-97934

* Author: nekoyama32767 (Jinsong Yu)
* Status: Open
* Priority: Normal
* Assignee: k0kubun (Takashi Kokubun)
* ruby -v: Ruby 3.0.1p64 (2021-04-05 revison 0fb782ee38)[x86-64-linux]    ruby 3.0.1p64 (2021-04-05 revision 0fb782ee38) [x64-mingw32]
* Backport: 2.6: UNKNOWN, 2.7: UNKNOWN, 3.0: UNKNOWN
----------------------------------------

When using --jit and Ractor at same time, benchmark would be slow down with recursion function such like Tarai function an Fibonacci function.
The slow down is confirmed under both gcc(linux) and mingw64(windows MSYS2).



Test environment:
Cpu:Ryzen9 5900HS@3.3Ghz 8core/16thread 
Memory:32GB@3200Mhz
OS:Ubuntu 21.04/Windows 10

Because of this cpu has 8 physic core,the parallel thread number is set to 8  

Slow down is also confirmed with using only ractor  (without sequence running).

When runing 'par' before 'seq' and using --mjit,'seq' is more slower than runing 'seq' berfore 'par'


Tarai function


```ruby
def tarai(x, y, z) =
  x <= y ? y : tarai(tarai(x-1, y, z),
                     tarai(y-1, z, x),
                     tarai(z-1, x, y))
require 'benchmark'
Benchmark.bm do |x|
  # sequential version
  x.report('seq'){ 8.times{ tarai(14, 7, 0) } }

  # parallel version
  x.report('par'){
    8.times.map do
      Ractor.new { tarai(14, 7, 0) }
    end.each(&:take)
  }
end
```

Fibonacci function 

```ruby
def fib(n)
  if n==1 then return 1 end
  if n==2 then return 1 end
  fib(n-1)+fib(n-2)
end

require 'benchmark'
Benchmark.bm do |x|
   # sequential version
  x.report('fib:seq'){ 8.times{ fib(40) } }

  # parallel version
  x.report('fib:par '){
    8.times.map do
      Ractor.new {fib(40) }
    end.each(&:take)
  }
end
```



-- 
https://bugs.ruby-lang.org/

Unsubscribe: <mailto:ruby-core-request@ruby-lang.org?subject=unsubscribe>
<http://lists.ruby-lang.org/cgi-bin/mailman/options/ruby-core>

In This Thread