multithreadingconcurrencyrakujunction

Raku: Using hyper or race with junctions


I have about 75000 files and I need to search each file for a set of key phrases stored in an array. I have Intel i9 capable of running 20 threads. I am trying to speed up the whole process by slurping each file into a string and matching each key phrase simultaneously. I wonder how I can use hyper/race to expedite the process even more. Or do junctions automatically and concurrently distribute the tasks across the threads?

[1] > my $a = (1..10).join
12345678910
[3] > my @b = (3, /5./, /8\d/)
[3 /5./ /8\d/]
[4] > say $a.match( @b.all )
all(3, 56, 89)

[4] > say hyper $a.match( @b.all )
No such method 'hyper' for invocant of type 'Match'.    # what to do?

Solution

  • Perhaps App::Rak can help you with this? Or perhaps its plumbing rak?

    There's also an introduction.

    To answer your question re "Or do junctions automatically and concurrently distribute the tasks across the threads?". The idea is that at one point they might, but that's not how they're currently implemented.