On 2023-07-11 at 00:01:32 -0400, Peter Ratzlaff via pdl-devel wrote:
> Hello,
>
> I've pasted the code below, since I'm not sure attachments will make it to
> the list. I have a program that does something similar to this. Obviously
> not as simple, but using the same concept: an inner loop using the index()
> function with an argument calculated from the outer loop.
>
> In PDL 2.082 it loops at a consistent speed. But in PDL 2.083, each
> successive loop takes longer than the previous, and the real code becomes
> unusable, practically speaking.
>
> On my particular machine, with PDL 2.082 the included code runs in 13
> seconds, real time. With PDL 2.083, it's 5 minutes.
>
> Any thoughts would be appreciated.
>
> Thanks,
> Pete
>
> #! /usr/bin/perl
>
> use strict;
> use warnings;
>
> use PDL;
>
> my $n = 700;
>
> my $a = sequence($n)->dummy(0, $n)->flat;
> my $b = sequence($n)->dummy(1, $n)->flat;
>
> for my $a_val (0..$n-1) {
> printf "%d / %d\n", $a_val, $n-1;
> my $ind1 = which($a == $a_val);
> for my $b_val (0..$n-1) {
> my $ind2 = which($b->index($ind1) == $b_val);
> }
> }
Hello Peter,
Thank you for identifying this.
Ed, I have run a git bisect and found that the first commit that has
this slow down is:
# first bad commit: [03c3793f36b5739138751dd06f4b2334e0d3c7fe] use ArgOrder
to simplify Ops overloads
Script:
git bisect start 2.083 2.082
git bisect run bash -c 'make -j$(nproc); timeout 20s perl -Mblib ../test.pl
|| exist 125'
where `test.pl` contains the attached example.
I don't have the tuits to investigate just now, but hopefully that is a
start.
Regards,
- Zaki Mughal
>
>
> _______________________________________________
> pdl-devel mailing list
> [email protected]
> https://lists.sourceforge.net/lists/listinfo/pdl-devel
_______________________________________________
pdl-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/pdl-devel