![]() |
|
|
#661 | |
|
"Ben"
Feb 2007
2×3×587 Posts |
Quote:
Its an easy enough change to just make an optional parameter (something to put in yafu.ini, for example) to choose betweeen fast (/N), broad (*N), or thorough (same range). |
|
|
|
|
|
|
#662 | |
|
"Ben"
Feb 2007
1101110000102 Posts |
Quote:
Parallelization in general is usually an interesting problem. Often times the lowest level nuts & bolts type code doesn't scale very well - data dependencies, memory access latencies and the like can hamper parallelization. The trick is to find ways to divide up a problem into separate independent tasks and that only touch each other rarely, if at all. |
|
|
|
|
|
|
#663 | |
|
Mar 2010
3·137 Posts |
Quote:
I did this little research on Msieve's stage1 polyselect, and 1M-1.01M and 100M-100.01M quickly generated candidates. However, it is not enough information to build a decision upon. Oh, and what I ment to say, the "true" variant would split a certain specified(or built-in) range(say, 1,10000) by N. If the CPU has 4 cores, then it would be something like 1,2.5k ; 2.5k,5k ; 5k,7.5k ; 7.5k,10k. This way, it's up to N times(in average) faster. The second way is to assign independent ranges to N cores. It's similar to the "true" way, yet it's just with less control, somewhat. Last fiddled with by Karl M Johnson on 2011-05-25 at 13:49 |
|
|
|
|
|
|
#664 | |
|
Sep 2009
32·233 Posts |
Quote:
Chris K |
|
|
|
|
|
|
#665 | |
|
"Ben"
Feb 2007
2×3×587 Posts |
Quote:
So far everything is working nicely, but it needs more testing before I release the new version. There are many new command line or .ini file options, and I want to be sure they play nicely together and that I haven't created opprotunities to stomp on data files, for instance. On that note, if anyone wants to beta test - the source code is up to date in sourceforge if you can build your own executable. Or contact me if you want me to provide you with an executable to test.... |
|
|
|
|
|
|
#666 |
|
"Ben"
Feb 2007
2·3·587 Posts |
In the usual place.
The major addition with this version is automated multi-threadable poly selection (using msieve) for GNFS jobs. Specifying -t N will now do NFS using N threads for all major phases except filtering and sqrt. In general, NFS within YAFU underwent a pretty significant overhaul. There are a number of new options which allow jobs to be tailored for those who like to run things more manually or for large/community efforts (where manual interaction is pretty much required). The last couple bugs discussed here have been fixed as well. Happy factoring! |
|
|
|
|
|
#667 |
|
Mar 2010
3×137 Posts |
Good job, Ben.
Some quick comments so far: 1. Now it requires cat. No big deal, grabbed it from coreutils(or was it gnuutils?) 2. -ggnfsT parameter. Does it work ? I tried launching yafu agains a c93 I generated with that parameter in the batch file, in the yafu.ini file, and without it, and the polyselection always lasts the exact same time. Did I miss something ? Ofc, this can be roughly overridden by specifying a range for the polyselection(-np X,Z). 3. If I try to launch yafu with a -np 1,25000 parameter, it crashes with BEX64 error. Uhm ? |
|
|
|
|
|
#668 |
|
Mar 2007
Germany
26410 Posts |
Is it possible to print the used Poly with murphy e-score before the sieving is working?
|
|
|
|
|
|
#669 | |
|
"Ben"
Feb 2007
2×3×587 Posts |
Quote:
-ggnfsT does work, but it is only enforced at 'phase boundaries', i.e., after poly selection or a round of sieving finishes. As you observed, if you make a phase shorter (-np [X,Y]), then the -ggnfsT cutoff is checked sooner and the elapsed time will be closer to the specified cutoff. This isn't an ideal implementation, I know, but I don't know of a better way to enforce the time limit other than adding timers and checkpoints everywhere in the code and that gets tiresome and ugly. -np X,Y does indeed seem to be broken. Which is annoying because I know I tested that. I'll get a patch out soon. Thanks for the feedback! |
|
|
|
|
|
|
#670 | |
|
"Ben"
Feb 2007
2·3·587 Posts |
Quote:
The problem was that I tried to make gcc happy at the last minute by initializing a pointer variable to NULL without checking to see that the behavior of a function (strtoul) changes if passed a NULL pointer. Sorry for the hiccup. - ben. |
|
|
|
|
|
|
#671 |
|
Mar 2010
3×137 Posts |
Well, actually, with -np working, I dont need any timers
![]() Thanks for the fast bugfix. |
|
|
|
![]() |
| 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 |