hermann on Thu, 19 Sep 2024 20:39:17 +0200


[Date Prev] [Date Next] [Thread Prev] [Thread Next] [Date Index] [Thread Index]

Re: concurrent computation of a function


On 2024-09-19 19:53, Bill Allombert wrote:
The less ugly I could come up with is with using the fairly useless
seriesprecision:

fun(N)=
{
  while(1,
  if(default(seriesprecision)>16,return(0)); /*check signal */
  if(random(2^16)==0, /*Finish! */
    default(seriesprecision,17); /* signal other threads to stop */
    return(N)))
}

default(seriesprecision,16);parapply(fun,[1..20])
%5 = [0,0,0,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]

Cheers,
Bill.

That is cool, I played a bit and saw that sometimes two entries might occur:

? default(seriesprecision,16);parapply(fun,[1..20])
%23 = [0, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
?

Regards,

Hermann.