Ractor

Real and native parallelism for Ruby 3.x

https://ruby-doc.org/core/Ractor.html

require "etc"

# get number of cpu cores and run as many cycles
p Etc.nprocessors.times.map {
	# run separate real thread
	Ractor.new {
		# do time consuming operations
		10_000_000.times.map {
			rand
		# sum up result
		}.sum
	}
# wait for all threads and get results and sum them up
}.map(&:take).sum

Output:

60001925.166772075

Hozzászólások

lefuttattam, nekem más jött ki :)

Nálam 2 sec alatt fut 12 szállal. Ha nálad 10-szer ennyi van az 0.2 sec. Ha csak a tizedes jegyeket vesszük és figyelmen kívül hagyjuk a Bates eloszlást mivel teljesen pontos egyezésről beszélünk, ezért 10**-9 az esély, de mivel 10-szer több szálat veszünk, legyen 10^-8. 0.2 sec helyett vegyünk 10-szer gyorsabbat nálad, az 0.02 sec.

0.02 sec * 10^8 = 23 nap.  Még akár elő is fordulhat.

Boltzmannhoz! EDIT: elsőre nem gondoltam alaposan végig, hogy pontosan mit is csinál a kód. Szóval Chebyshev-hez menj, ne Boltzmannhoz!

De, azt fenntartom, hogy akármi is legyen, Kurt Roeckx biztosan szívesen vár. :)

Régóta vágyok én, az androidok mezonkincsére már!