mersenneforum.org  

Go Back   mersenneforum.org > Factoring Projects > YAFU

Reply
 
Thread Tools
Old 2013-03-08, 07:51   #45
Batalov
 
Batalov's Avatar
 
"Serge"
Mar 2008
Phi(4,2^7658614+1)/2

2×11×421 Posts
Default

One does not simply factor a c173 on an Athlon!
Batalov is offline   Reply With Quote
Old 2013-03-08, 08:39   #46
bsquared
 
bsquared's Avatar
 
"Ben"
Feb 2007

1101001000012 Posts
Default

I'm going through a nightmare of library problems. OpenMP, some kind of faulty mingw64 toolchain (I can't build gmp-ecm or mpir anymore with it, for some reason), and new versions for everything. Plus, I'm traveling now. It may be a few days till I can look into that segfault.

Oh, and someone else reported a bug with factoring huge inputs (5000+ digits).

It hasn't been my day.
bsquared is offline   Reply With Quote
Old 2013-03-08, 09:09   #47
Brian Gladman
 
Brian Gladman's Avatar
 
May 2008
Worcester, United Kingdom

10000010112 Posts
Default

Quote:
Originally Posted by WraithX View Post
Ben, can you disable OpenMP in your builds of GMP-ECM? Perhaps with --disable-openmp? I personally wouldn't want to install any OpenMP redistributables to use yafu. However, this is just my personal opinion/preference. I can probably find another way to use yafu if you do decide to stick with the default build options.
Hi WraithX

You are suggesting a configure option but these only apply to Unix/Linux style builds, not the Visual Studio build that I think Ben is using. Ben could turn OpenMP off but he might then have to distribute two versions so that those who want the speed improvements that OpenMP can offer are also satisfied.

I am not sure whether the concern about OpenMP is simply that of the need for a few people having to manually install a DLL or something more.

If YAFU was packaged as a Windows installer rather than an unadorned executable, this DLL (and others) would be automatically installled (if not already present) and you wouldn't even be aware of this issue.

This will also apply to any installer based Windows application using OpenMP so unless you never use such applications or check to ensure that they don't use OpenMP, this DLL is quite likely to end up on your system anyway.

I personally prefer to have an unadorned executable file rather than an installer with all the 'crud' that some poorly designed installers leave on my system. Compared with the cost of clearing up the mess created by poor installers, the need to install a redistributable package once every few years is not a big deal for me.

So I would like to better understand why you don't want the advantages that OpenMP can offer.

Since Ben uses my GMP-ECM build, he will either have to convince me to turn OpenMP off, convince me of the benefits of taking on the maintenance costs of two versions, or fork the GMP-ECM build files himself (more work for Ben equals less progress on YAFU).

And since I am already maintaining two versions of GMP-ECM (with and without GPU support), he is going to have _very_ good reasons for suggesting the need for four versions if he is to stand even a remote chance of success!
Brian Gladman is offline   Reply With Quote
Old 2013-03-08, 12:26   #48
yoyo
 
yoyo's Avatar
 
Oct 2006
Berlin, Germany

593 Posts
Default

Hello,
I distribute yafu to hundreds of users in a Boinc project. There I can't assume, that the dll's are already on the system. For that reason I wouild like to get a static linked yafu which has everything in it what is needed. In Boinc yafu is just downloaded and started. Thre is no installation.
Additionaly I can't place anything in any system directory. So having yafu as static linked binary would simplify it.

In Boinc I use yafu with configured external ecm binaries. So no need for openMP.

yoyo
yoyo is offline   Reply With Quote
Old 2013-03-08, 12:40   #49
jasonp
Tribal Bullet
 
jasonp's Avatar
 
Oct 2004

2×3×19×31 Posts
Default

Note that if YAFU uses the latest Msieve you will also need a windows pthreads library, and if you use Msieve with GPU stuff compiled in then you will need lots of external files. The CPU code doesn't use pthreads now, but the next version very well might.
jasonp is offline   Reply With Quote
Old 2013-03-08, 16:46   #50
EdH
 
EdH's Avatar
 
"Ed Hall"
Dec 2009
Adirondack Mtns

3·1,181 Posts
Default

Quote:
Originally Posted by Batalov View Post
One does not simply factor a c173 on an Athlon!
It actually failed on a c96 as well, but I thought the c173 was more impressive (and it's the current hold up for the 4788 sub-project).

Here's a c85 from the db:
Code:
03/08/13 11:12:49 v1.34.5 @ Comp, System/Build Info: 
Using GMP-ECM, Powered by GMP
detected AMD Athlon(tm) 64 X2 Dual Core Processor 6000+
detected L1 = 65536 bytes, L2 = 1048576 bytes, CL = 64 bytes
measured cpu frequency ~= 3013.689850
using 20 random witnesses for Rabin-Miller PRP checks
...
cached 78498 primes. pmax = 999983

>> nfs(2156681979259296777516336288299079092187295186104090221283176058059788691580002612119)

nfs: commencing nfs on c85: 2156681979259296777516336288299079092187295186104090221283176058059788691580002612119
nfs: searching for brent special forms...
nfs: searching for homogeneous cunningham special forms...
nfs: searching for XYYXF special forms...
nfs: couldn't find special form
Segmentation fault
Thanks for all the help...

Last fiddled with by EdH on 2013-03-08 at 16:47 Reason: because I wanted to...
EdH is offline   Reply With Quote
Old 2013-03-08, 20:03   #51
bsquared
 
bsquared's Avatar
 
"Ben"
Feb 2007

336110 Posts
Default

EdH, I haven't been able to reproduce your issue... all three versions (linux64, win64, win32) seemed to work just fine for me on your test c85. i.e., they didn't find a special form, and proceeded to gnfs.

I see that it isn't picking up the GMP or GMP-ECM build version for you... is this a executable you compiled from source or is it one of the pre-packaged ones?
bsquared is offline   Reply With Quote
Old 2013-03-08, 23:27   #52
WraithX
 
WraithX's Avatar
 
Mar 2006

1D816 Posts
Default

Quote:
Originally Posted by Brian Gladman View Post
I am not sure whether the concern about OpenMP is simply that of the need for a few people having to manually install a DLL or something more.

I personally prefer to have an unadorned executable file rather than an installer with all the 'crud' that some poorly designed installers leave on my system. Compared with the cost of clearing up the mess created by poor installers, the need to install a redistributable package once every few years is not a big deal for me.

So I would like to better understand why you don't want the advantages that OpenMP can offer.
Hello Brian,

I too would prefer an unadorned executable. There are definitely installers out there that install junk on systems and sometimes won't remove all of it when uninstalled. I don't think this is my issue with this, though. I'm not sure what OpenMP package to install. Should it be one from Microsoft, or one from Intel, or one from someone else? If you have the wrong package installed, would this executable not work? If the version of OpenMP used during compile is updated, will the user base have to update their version of OpenMP too?

Do you think there would be a licensing issue with distributing the dll that Yafu/GMP-ECM was compiled with? Then the required dll would just be in the same directory as yafu. I would be happy with this option. And it looks like it would help yoyo if it could be distributed this way too. If there are problems with this method, then I could install the dll's on my system.

Also, what benefit is there to using OpenMP with GMP-ECM? Are we getting multi-threaded ecm? Will many cores be working on one curve at a time? Or does this somehow help when many cores are each working on their own curve? Or something else, perhaps?
WraithX is offline   Reply With Quote
Old 2013-03-08, 23:36   #53
jcrombie
 
jcrombie's Avatar
 
"Jonathan"
Jul 2010
In a tangled web...

2·107 Posts
Default

Quote:
Originally Posted by bsquared View Post
EdH, I haven't been able to reproduce your issue... all three versions (linux64, win64, win32) seemed to work just fine for me on your test c85. i.e., they didn't find a special form, and proceeded to gnfs.

I see that it isn't picking up the GMP or GMP-ECM build version for you... is this a executable you compiled from source or is it one of the pre-packaged ones?
It's consistently reproducing for me.

Code:
./yafu


03/08/13 16:26:33 v1.34.4 @ Octacore, System/Build Info: 
Using GMP-ECM, Powered by GMP
detected AMD FX(tm)-8150 Eight-Core Processor           
detected L1 = 16384 bytes, L2 = 8388608 bytes, CL = 64 bytes
measured cpu frequency ~= 3612.043910
using 20 random witnesses for Rabin-Miller PRP checks

===============================================================
======= Welcome to YAFU (Yet Another Factoring Utility) =======
=======             bbuhrow@gmail.com                   =======
=======     Type help at any time, or quit to quit      =======
===============================================================
cached 78498 primes. pmax = 999983


>> nfs(2156681979259296777516336288299079092187295186104090221283176058059788691580002612119)

nfs: commencing nfs on c85: 2156681979259296777516336288299079092187295186104090221283176058059788691580002612119
nfs: searching for brent special forms...
nfs: searching for homogeneous cunningham special forms...
nfs: searching for XYYXF special forms...
nfs: couldn't find special form
Segmentation fault (core dumped)
I've attached a gdb session from the core file. Looks like "t->obj->nfs_args" is uninitialized/corrupted somehow?

Let me know if you have any questions. I might be able to look at it more this weekend.

Cheers
Attached Files
File Type: gz gdb.txt.gz (4.0 KB, 83 views)

Last fiddled with by jcrombie on 2013-03-08 at 23:38
jcrombie is offline   Reply With Quote
Old 2013-03-09, 01:09   #54
jcrombie
 
jcrombie's Avatar
 
"Jonathan"
Jul 2010
In a tangled web...

D616 Posts
Default Thinking I got it figured out....

Did some more digging. Bottom line, you need to link with the latest msieve library.

The msieve_obj_new() function used to take 17 args, now takes 14 args. The linker happily links with the old function.

EdH, you need to find where the libmsieve.a is that yafu is linking with and replace it with the latest version.

Cheers
jcrombie is offline   Reply With Quote
Old 2013-03-09, 01:29   #55
jasonp
Tribal Bullet
 
jasonp's Avatar
 
Oct 2004

2×3×19×31 Posts
Default

Yes, this is going to be a problem until the respective codebases are combined. Before the latest round of changes to YAFU, everybody had to use an old Msieve install Now it's flipped :(

Last fiddled with by jasonp on 2013-03-09 at 01:30
jasonp is offline   Reply With Quote
Reply

Thread Tools


Similar Threads
Thread Thread Starter Forum Replies Last Post
Yafu bsquared YAFU 1276 2019-01-12 04:46
Running YAFU via Aliqueit doesn't find yafu.ini EdH YAFU 8 2018-03-14 17:22
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 13:23.

Fri Jan 22 13:23:07 UTC 2021 up 50 days, 9:34, 0 users, load averages: 3.33, 2.57, 2.19

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.