mersenneforum.org  

Go Back   mersenneforum.org > Factoring Projects > Factoring

View Poll Results: Should YAFU and Msieve be merged?
What is YAFU? What is Msieve? 1 4.00%
No! My supercomputer is already used to them! 3 12.00%
No! Do not sully YAFU's perfection! 3 12.00%
Yes! Do it and name it Mister Factorkins! 18 72.00%
Voters: 25. You may not vote on this poll

Reply
 
Thread Tools
Old 2011-07-22, 00:40   #1
jasonp
Tribal Bullet
 
jasonp's Avatar
 
Oct 2004

3×1,181 Posts
Default How about merging YAFU and Msieve?

Bsquared and I have been discussing the merits of combining our respective factoring codebases into a single package. Both of us have a lot to gain from the merger: Msieve has really good NFS code and highly parallel linear algebra, and YAFU has fantastic versions of everything else. The SIQS code there can expand to use three large primes using the filtering code in Msieve, and both packages can benefit from using GMP instead of the other libraries they grew up using. Maybe someday we could add an NFS lattice sieve too.

We think the best idea is to make another sourceforge project and switch everything over once the new codebase is stable enough. The problem is I tried to do this before, by merging Msieve's NFS postprocessing into GGNFS, but it became too much work to backport changes to the GGNFS version and I wound up giving up maintaining the two codebases. The same thing is going to happen here, because this code is extremely complex and both packages will require major changes to work together, which means that eventually development on YAFU and Msieve would stop.

Since several of you are involved in one or both of these projects, we could use a little consensus. Would you trade separate YAFU and Msieve packages for a single replacement that tries to do the best of both? And if so, what should we name it?

Last fiddled with by jasonp on 2011-07-22 at 01:19
jasonp is offline   Reply With Quote
Old 2011-07-22, 00:48   #2
R.D. Silverman
 
R.D. Silverman's Avatar
 
Nov 2003

22×5×373 Posts
Default

Quote:
Originally Posted by jasonp View Post
Bsquared and I have been discussing the merits of combining our respective factoring codebases into a single package. Both of us have a lot to gain from the merger: Msieve has really good NFS code and highly parallel linear algebra, and YAFU has fantastic versions of everything else. The SIQS code there can expand to use three large primes using the filtering code in Msieve, and both packages can benefit from using GMP instead of the other libraries they grew up using. Maybe someday we could add an NFS lattice sieve too.

We think the best idea is to make another sourceforge project and switch everything over once the new codebase is stable enough. The problem is I tried to do this before, by merging Msieve's NFS postprocessing into GGNFS, but it became too much work to backport changes to the GGNFS version and I wound up giving up maintaining the two codebases. The same thing is going to happen here, because this code is extremely complex and both packages will require major changes to work together.

So would you trade separate YAFU and Msieve packages for a single replacement that tries to do the best of both? And if so, what should we name it?
I'd be happy to provide my lattice siever, if you want it.
R.D. Silverman is offline   Reply With Quote
Old 2011-07-22, 01:01   #3
Batalov
 
Batalov's Avatar
 
"Serge"
Mar 2008
Phi(4,2^7658614+1)/2

7×1,367 Posts
Default

"The Mfu is strong in this one."
Batalov is offline   Reply With Quote
Old 2011-07-22, 01:04   #4
jasonp
Tribal Bullet
 
jasonp's Avatar
 
Oct 2004

67278 Posts
Default

The source for it that I have probably is very old, go ahead and email me your latest.

Edit: latest lattice sieve, not latest Mfu :)

Last fiddled with by jasonp on 2011-07-22 at 01:17
jasonp is offline   Reply With Quote
Old 2011-07-22, 01:56   #5
bsquared
 
bsquared's Avatar
 
"Ben"
Feb 2007

67728 Posts
Default

Quote:
Originally Posted by jasonp View Post
The source for it that I have probably is very old, go ahead and email me your latest.

Edit: latest lattice sieve, not latest Mfu :)
My latest is a year and a half old... could you send it to me as well?
bsquared is offline   Reply With Quote
Old 2011-07-22, 04:44   #6
Andi47
 
Andi47's Avatar
 
Oct 2004
Austria

2·17·73 Posts
Default

Quote:
Originally Posted by jasonp View Post
The same thing is going to happen here, because this code is extremely complex and both packages will require major changes to work together, which means that eventually development on YAFU and Msieve would stop.
This sentence is not entirely clear to me: Do you mean that the development might stop if yafu and msieve will be merged, or it might stop when they are kept as seperate programs?
Andi47 is offline   Reply With Quote
Old 2011-07-22, 06:02   #7
frmky
 
frmky's Avatar
 
Jul 2003
So Cal

219010 Posts
Default

I actually prefer multiple smaller programs, but I can deal with it. Jason certainly has a knack for combining nontrivial specialized code (MPI, CUDA) in a single codebase!
frmky is online now   Reply With Quote
Old 2011-07-22, 11:08   #8
jasonp
Tribal Bullet
 
jasonp's Avatar
 
Oct 2004

3×1,181 Posts
Default

Quote:
Originally Posted by Andi47 View Post
This sentence is not entirely clear to me: Do you mean that the development might stop if yafu and msieve will be merged, or it might stop when they are kept as seperate programs?
The former. No matter how similar you try to make two versions of the same codebase, it's inevitable that there will be something in one that will be very different in the other, and making improvements in one version available for the other one will inevitably become too much work. So I'll get lazy, and changes will accumulate, and before long one version will be out of date. The only exception is when both codebases are exactly the same, so why did you fork off a separate version in that case?

In the case of a merge, I want to do things like have a single directory of utilities and common code that we both can use, and if I get used to e.g. the fast tinyQS code currently in YAFU then I have to scramble when it's not available in the current Msieve.
jasonp is offline   Reply With Quote
Old 2011-07-22, 11:45   #9
Wacky
 
Wacky's Avatar
 
Jun 2003
The Texas Hill Country

32·112 Posts
Default

Quote:
Originally Posted by jasonp View Post
... the merits of combining our respective factoring codebases into a single package.
Do it!

One Ring to rule them all, One Ring to find them,
One Ring to bring them all and in the darkness bind them.


Yes, Bob, I know the definition of "Field" and "Ring". But "One Field" just doesn't have the right impact :(

PL1 anyone?
Wacky is offline   Reply With Quote
Old 2011-07-22, 12:49   #10
Brian Gladman
 
Brian Gladman's Avatar
 
May 2008
Worcester, United Kingdom

72×11 Posts
Default

Quote:
Originally Posted by jasonp View Post
Bsquared and I have been discussing the merits of combining our respective factoring codebases into a single package. Both of us have a lot to gain from the merger: Msieve has really good NFS code and highly parallel linear algebra, and YAFU has fantastic versions of everything else. The SIQS code there can expand to use three large primes using the filtering code in Msieve, and both packages can benefit from using GMP instead of the other libraries they grew up using. Maybe someday we could add an NFS lattice sieve too.

We think the best idea is to make another sourceforge project and switch everything over once the new codebase is stable enough. The problem is I tried to do this before, by merging Msieve's NFS postprocessing into GGNFS, but it became too much work to backport changes to the GGNFS version and I wound up giving up maintaining the two codebases. The same thing is going to happen here, because this code is extremely complex and both packages will require major changes to work together, which means that eventually development on YAFU and Msieve would stop.

Since several of you are involved in one or both of these projects, we could use a little consensus. Would you trade separate YAFU and Msieve packages for a single replacement that tries to do the best of both? And if so, what should we name it?
In principle I would support this since it would allow the multiple precision code to be rationalised. Up to date lattice sieve code from Bob would also be an advantage.

But I would like to see a clear commitment in any combined project to support both Linux and Windows (including the MSVC and Intel compilers) and not to support the addition of major features on only one of these host systems (as I recall happened with thread support in parts of YAFU).

Given such a commitment I would be willing to maaintain the native Windows x64 aspects of such a project (i.e those using the MSVC and Intel compilers for Windows x64).
Brian Gladman is offline   Reply With Quote
Old 2011-07-22, 16:18   #11
Jeff Gilchrist
 
Jeff Gilchrist's Avatar
 
Jun 2003
Ottawa, Canada

3×17×23 Posts
Default

It sounds like a plan to me, but I don't have any free time to contribute to coding right now. I would be happy to do testing though to help ensure a combined version is stable and as bug free as possible.
Jeff Gilchrist 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
Merging Computers OOPS petrw1 PrimeNet 2 2017-04-15 03:24
Merging old (retired) computers Gordon PrimeNet 7 2015-07-07 16:05
Volunteer needed for sieve merging MooooMoo Twin Prime Search 9 2007-01-01 21:13
Merging two accounts? edorajh Software 10 2003-11-17 00:49

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


Thu Oct 21 22:43:45 UTC 2021 up 90 days, 17:12, 1 user, load averages: 0.95, 1.21, 1.30

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.