Re: Parallel Sieve Of Eratosthenes

Liste des GroupesRevenir à cl ada 
Sujet : Re: Parallel Sieve Of Eratosthenes
De : rosen (at) *nospam* adalog.fr (J-P. Rosen)
Groupes : comp.lang.ada
Date : 01. Jul 2024, 11:17:09
Autres entêtes
Organisation : Adalog
Message-ID : <v5ts6h$10f7e$1@dont-email.me>
References : 1 2 3 4
User-Agent : Mozilla Thunderbird
Le 01/07/2024 à 02:02, Lawrence D'Oliveiro a écrit :
On Sun, 30 Jun 2024 18:36:45 +0200, J-P. Rosen wrote:
 
That's because in your first version, you call the child within the
accept statement. Therefore you wait for the value to go to the end of
the pipeline before processing the next value.
Try to copy the number to a variable, and call the child after the end
of the accept. This will give you 100% CPU time usage.
>
BTW, you don't need an access type. Just use a declare block to create
the child after the first accept.
 Thanks for the comments, how about this slight rework of the first
version. It does seem faster, but I’m not sure it’s as fast as the second
version.
That's better, but as a general principle, you should move as much as you can out of the rendezvous (minimize critical sequences). For example:
           accept next_int(i : integer) do
               my_prime := i;
           end next_int;
           Text_IO.Put_line(integer'image(my_prime));  -- moved
           declare
               subchild : offspring;
               ii : integer;
           begin
               loop
                   accept next_int(i : integer) do
                       ii := i;
                   end next_int;
                   if ii mod my_prime /= 0 then --moved
                       subchild.next_int(ii);
                   end if;
               end loop;
--
J-P. Rosen
Adalog
2 rue du Docteur Lombard, 92441 Issy-les-Moulineaux CEDEX
https://www.adalog.fr https://www.adacontrol.fr

Date Sujet#  Auteur
30 Jun 24 * Parallel Sieve Of Eratosthenes6Lawrence D'Oliveiro
30 Jun 24 `* Re: Parallel Sieve Of Eratosthenes5Lawrence D'Oliveiro
30 Jun 24  `* Re: Parallel Sieve Of Eratosthenes4J-P. Rosen
1 Jul 24   `* Re: Parallel Sieve Of Eratosthenes3Lawrence D'Oliveiro
1 Jul 24    `* Re: Parallel Sieve Of Eratosthenes2J-P. Rosen
1 Jul 24     `- Re: Parallel Sieve Of Eratosthenes1Lawrence D'Oliveiro

Haut de la page

Les messages affichés proviennent d'usenet.

NewsPortal