in reply to Re: [OT] Merry Christmas and gift of love
in thread [OT] Merry Christmas and gift of love
Congratulations on the PDL parallelisation effort.
Thank you for sharing the article. I'm trying to run the demonstration, beginning on page 6, and encountered a C build failure. See issue on GitHub. Thanks to @mohawk2, this is working.
Update: Remove the size args to pgswin. Thanks, etj.
Update: Display the compute time.
use strict; use warnings; use PDL; use PDL::Graphics::Simple; use Time::HiRes 'time'; no PDL::NiceSlice; # prevents interference use Inline Pdlpp => <<'EOPP'; pp_def('pp_mandel', # Pars (signature) specs threadable arguments. Pars => 'c(n=2); [o]o()', # OtherPars specs scalar arguments. OtherPars => 'int max_it', Code => <<'EOC', // All this code gets wrapped automagically in a thread loop. // It starts a fresh C block, so you can declare stuff up top. // The $GENERIC() macro is the overall expression type. int i; // Iterator $GENERIC() rp0 = $c(n=>0), ip0 = $c(n=>1); // Copy the initial val +ue to rp0/ip0 $GENERIC() rp = rp0, ip = ip0; // Copy again for the i +nitial iteration $GENERIC() rp2 = rp*rp, ip2 = ip*ip; // Find RP^2 and IP^2 f +or magnitude and z^2 // The OtherPars are in the $COMP macro. for(i=$COMP(max_it); rp2+ip2 < 4 && i; i--) { ip *= 2 * rp; rp = rp2 - ip2; // Calculate M_i(z)^2 rp += rp0; ip += ip0; // Add z rp2 = rp*rp; ip2 = ip*ip; // Calculate rp^2 and ip^2 for n +ext time } $o()= i; // Assign the iterator to the output value EOC ); EOPP my $cen = pdl(-0.74897,0.05708); my $coords = $cen + (ndcoords(501,501)/250 - 1) * 0.001; my $w = pgswin(); my $start = time(); $w->image( $coords->using(0,1), $coords->pp_mandel(2500), {title=>"Man +delbrot"} ); print "Compute time: ", time() - $start, $/; print "Press the enter key to exit\n"; <STDIN>;
|
---|
Replies are listed 'Best First'. | |
---|---|
Re^3: [OT] Merry Christmas and gift of love
by etj (Deacon) on Dec 27, 2021 at 21:18 UTC | |
Re^3: [OT] Merry Christmas and gift of love
by etj (Deacon) on Dec 27, 2021 at 09:34 UTC |
In Section
Meditations