hermann on Sun, 03 Dec 2023 17:16:25 +0100 |
[Date Prev] [Date Next] [Thread Prev] [Thread Next] [Date Index] [Thread Index]
Re: PARI/GP pthread questions |
On 2023-12-03 13:15, Bill Allombert wrote:
Not sure I understand: ? parforeach([1..8],v,my(t0=getabstime());factor(2^128+1);print(getabstime()-t0,"ms")) 32ms 35ms 35ms 35ms 35ms 36ms 35ms 32msObviously if you do foursquares(2^p-1); for increasing p, this will take longerand longer.
Thanks for bringing me back on track.I changed the order of foursquare() computations, now from 23040 down to 23409:
readvec("foursquares.gp"); { export(foursquares); export(isfact); export(foursquares_fact); export(isthreesquares); export(threesquares_fact); parforeach([0..31],p, my(t0=getabstime()); foursquares(2^(23440-p)-1); getabstime()-t0, t, print(p," ",t)); } Mostly times reported are ever increasing. But now that I output the p value as well, it is easy to see that the reported times to compute for 2^(23440-p)-1 are OK. Because I restricted with taskset, running below took 1600% CPU until no more new jobs were available. Only three times are lower than preceding time, which can happen when a new job was started on a core (with "<" appended manually). hermann@7950x:~$ taskset -c 0-15 gp -q < Mp.gp 26 2768 3 2858 22 5657 8 9710 4 11650 18 15284 31 26124 16 27896 6 27770 < 17 28474 10 28360 < 23 29847 1 34135 27 37177 19 45562 5 53377 21 52925 < 15 58213 2 72438 9 81265 7 82687 24 121605 11 122284 12 123877 13 131669 30 167992 14 186550 20 212513 0 226580 28 255568 29 266322 25 295941 hermann@7950x:~$