mersenneforum.org  

Go Back   mersenneforum.org > Factoring Projects > YAFU

Reply
 
Thread Tools
Old 2011-06-20, 02:40   #716
bsquared
 
bsquared's Avatar
 
"Ben"
Feb 2007

2·3·587 Posts
Default

Quote:
Originally Posted by Andi47 View Post
Just started yafu "nfs(<c121>)" -v -threads 6, but it seems that it hasn't taken the "-threads 6" flag: the output looks like the msieve output for one thread, only one of 8 threads of my i7 is busy (CPU load ~12%), and the msieve.log which it created says that the time limit for poly search is somewhat more than 4 hours (which seems normal for a c121). (BTW: my yafu.ini contains the line "threads=6", this seems to be ignored too with yafu "nfs()".)


(BTW2: I have killed the job after 2 minutes and switched back to aliqueit which now uses factmsieve.pl to factor the c121)
Some ranges take longer to search than others, and the current code waits until all ranges are done before starting each thread on a new range. This means that occasionally only 1 thread will be running. Did you look at the history in the task manager to see if it had used 6 threads at any point during the run? Specifying the number of threads to use has always worked fine, to my knowledge, so I strongly suspect you just happened to look at it when the last thread was finishing it's range. It is on my todo list to make poly selection use the more efficient thread pool structure that my SIQS code uses - which will make the issue you observed go away.
bsquared is offline   Reply With Quote
Old 2011-06-20, 04:56   #717
Andi47
 
Andi47's Avatar
 
Oct 2004
Austria

2·17·73 Posts
Default

Quote:
Originally Posted by bsquared View Post
Some ranges take longer to search than others, and the current code waits until all ranges are done before starting each thread on a new range. This means that occasionally only 1 thread will be running. Did you look at the history in the task manager to see if it had used 6 threads at any point during the run? Specifying the number of threads to use has always worked fine, to my knowledge, so I strongly suspect you just happened to look at it when the last thread was finishing it's range. It is on my todo list to make poly selection use the more efficient thread pool structure that my SIQS code uses - which will make the issue you observed go away.
No, I didn't take a look at the history in the task manager (is there any in windows when I just opened the task manager?). My PC is currently occupied with another factorization, I will take another look next weekend.

Edit: do all threads write to the same msieve.dat.p outputfile?

Last fiddled with by Andi47 on 2011-06-20 at 04:56
Andi47 is offline   Reply With Quote
Old 2011-06-20, 16:32   #718
bsquared
 
bsquared's Avatar
 
"Ben"
Feb 2007

352210 Posts
Default

Quote:
Originally Posted by Andi47 View Post
Edit: do all threads write to the same msieve.dat.p outputfile?
No, each thread writes to a separate file - by default they are named nfs.dat.<thread-num>.p. The files are then combined into nfs.dat.p at the end of every range.

BTW, here is a graphic of my processor utilization on a 6 thread run during poly selection. You can see the cyclical utilization behavior - it uses all 6 threads for a while, then ramps down as threads finish their range. When all ranges are done, it ramps back up, etc...
Attached Thumbnails
Click image for larger version

Name:	ScreenShot003.jpg
Views:	580
Size:	8.8 KB
ID:	6753  
bsquared is offline   Reply With Quote
Old 2011-06-21, 08:21   #719
Mr. Odd
 
Mar 2010

3×19 Posts
Default

Running NFS on the C103 from (10^132+57)/446393613148636496363324431219, Yafu goes through the full process only to tell me:

"too few cycles, matrix probably cannot build"

What next?
Mr. Odd is offline   Reply With Quote
Old 2011-06-21, 11:00   #720
jasonp
Tribal Bullet
 
jasonp's Avatar
 
Oct 2004

3×1,181 Posts
Default

You probably are right on the edge of having enough relations, so that filtering could start but could not finish successfully. Try sieving a little bit more.
jasonp is offline   Reply With Quote
Old 2011-06-21, 18:12   #721
Mr. Odd
 
Mar 2010

3×19 Posts
Default

How can I do that? When I run YAFU -R and call NFS it tries to sieve right away.
Mr. Odd is offline   Reply With Quote
Old 2011-06-21, 18:35   #722
bsquared
 
bsquared's Avatar
 
"Ben"
Feb 2007

352210 Posts
Default

Quote:
Originally Posted by Mr. Odd View Post
How can I do that? When I run YAFU -R and call NFS it tries to sieve right away.
When you restart, you should see something printed to the effect of:
Code:
 
nfs: found 65752 relations, continuing job at specialq = 542557
Using the specialq from this line as a starting point, use the following command to force some extra sieving:
Code:
 
YAFU "nfs(<your number here>)" -R -ns 542557,547557
With the stop value something like 5000 more than the start.

After this finishes, restart as before. Repeat as long as the filtering fails.

p.s.
It might not be a bad idea to back up your .dat file and .job file first, in case something goes wrong.
bsquared is offline   Reply With Quote
Old 2011-06-21, 20:37   #723
bsquared
 
bsquared's Avatar
 
"Ben"
Feb 2007

2·3·587 Posts
Default version 1.27 now available

Quote:
Originally Posted by Mr. Odd View Post
How can I do that? When I run YAFU -R and call NFS it tries to sieve right away.
Or... you can download version 1.27 and just do -R. I modified my local msieve source (which is built into YAFU) to pass an error code back up the chain when encountering the "too few cycles, matrix probably cannot build" condition instead of just aborting. So yafu should now detect this and automatically continue sieving.

Other changes include:

+ tweaks to siqs parameter selection for numbers > 80 digits - resulting in fairly significant improvements at 90+ digits (~10% on a c95, ~20% on a c100)

+ modified NFS poly selection to use more efficient thread pool architecture

This last change means that cpu utilization during multi-threaded poly selection should now be pegged at whatever % of your cpu you specify - no more waiting for a new batch to start when threads finish.

On my windows x64 system, the siqs parameter tweaks pushed the NFS crossover up by a little over a digit.
bsquared is offline   Reply With Quote
Old 2011-06-21, 21:08   #724
Karl M Johnson
 
Karl M Johnson's Avatar
 
Mar 2010

41110 Posts
Default

Good, the thread pool change really speeds polyselect step! Yafu's SourceForge page is being silly - it selected readme as default download file. Should be the archive with the binaries, yes ?
Karl M Johnson is offline   Reply With Quote
Old 2011-06-21, 21:11   #725
bsquared
 
bsquared's Avatar
 
"Ben"
Feb 2007

2×3×587 Posts
Default

Quote:
Originally Posted by Karl M Johnson View Post
Yafu's SourceForge page is being silly - it selected readme as default download file. Should be the archive with the binaries, yes ?
Yes, thanks! Should be fixed now.
bsquared is offline   Reply With Quote
Old 2011-06-22, 02:21   #726
Mr. Odd
 
Mar 2010

3·19 Posts
Default

Quote:
Originally Posted by bsquared View Post
Or... you can download version 1.27 and just do -R. I modified my local msieve source (which is built into YAFU) to pass an error code back up the chain when encountering the "too few cycles, matrix probably cannot build" condition instead of just aborting. So yafu should now detect this and automatically continue sieving.
That did the trick! Thanks for this, much better than your original suggestion. :-)
Mr. Odd is offline   Reply With Quote
Reply

Thread Tools


Similar Threads
Thread Thread Starter Forum Replies Last Post
Running YAFU via Aliqueit doesn't find yafu.ini EdH YAFU 8 2018-03-14 17:22
YAFU-1.34 bsquared YAFU 119 2015-11-05 16:24
Yafu bug. storflyt32 YAFU 2 2015-06-29 05:19
yafu-1.33 bsquared YAFU 12 2012-11-08 04:12
yafu-1.32.1 bsquared YAFU 21 2012-09-04 19:44

All times are UTC. The time now is 22:37.


Fri Aug 6 22:37:14 UTC 2021 up 14 days, 17:06, 1 user, load averages: 3.68, 3.68, 3.46

Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2021, Jelsoft Enterprises Ltd.

This forum has received and complied with 0 (zero) government requests for information.

Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.2 or any later version published by the Free Software Foundation.
A copy of the license is included in the FAQ.