in reply to Re: Optimizing with Caching vs. Parallelizing (MCE::Map)
in thread Optimizing with Caching vs. Parallelizing (MCE::Map)
Hi choroba,
I tried using multiple cores for your demonstration. Perl has this capability. So little effort and practically transparent. :)
#!/usr/bin/perl use warnings; use strict; use feature qw{ say }; use MCE::Util; use MCE::Map max_workers => MCE::Util::get_ncpu(); sub collatz { my ($start) = @_; my @seq = $start; push @seq, ($seq[-1] / 2, 3 * $seq[-1] + 1)[$seq[-1] % 2] while $seq[-1] != 1; return @seq } my @sizes = mce_map_s { [$_, scalar collatz($_)] } 1, 1e6; say "@$_" for reverse +(sort { $b->[1] <=> $a->[1] } @sizes)[0 .. 19];
Before and after on a 6 core machine with hyper-threading - 12 logical cores.
Serial 48.170 seconds Parallel 9.361 seconds
Regards, Mario
|
---|
Replies are listed 'Best First'. | |
---|---|
Re^3: Optimizing with Caching vs. Parallelizing (MCE::Map)
by choroba (Cardinal) on Apr 06, 2020 at 16:23 UTC | |
by marioroy (Prior) on Apr 06, 2020 at 18:19 UTC | |
by 1nickt (Canon) on Apr 06, 2020 at 18:49 UTC | |
by marioroy (Prior) on Apr 07, 2020 at 00:48 UTC |
In Section
Meditations