mersenneforum.org

mersenneforum.org (https://www.mersenneforum.org/index.php)
-   Data (https://www.mersenneforum.org/forumdisplay.php?f=21)
-   -   M(10^9) to M(2^32) range factored to 2^64 (https://www.mersenneforum.org/showthread.php?t=20210)

James Heinrich 2015-04-30 14:38

M(10^9) to M(2^32) range factored to 2^64
 
After 962 days of effort, the entire range of [url=http://www.mersenne.ca/tf1G.php?available_assignments=1]1000M to 4294M[/url] (more accurately M(10[sup]9[/sup]) to M(2[sup]32[/sup]-1), or [URL="http://www.mersenne.ca/M1000000007"]M1000000007[/URL] to [URL="http://www.mersenne.ca/M4294967291"]M4294967291[/URL]) has been trial-factored to (at least) 2[sup]64[/sup].[list][*]Exponents in range: 152,432,687[*]Factored exponents: 75,537,088[*]Factors found: 81,394,233[*]Estimated effort expended: 124,652 GHz-days[/list][url]http://www.mersenne.ca/graphs/factor_bits/[/url]

Thanks to those who helped the effort.

retina 2015-04-30 14:56

[QUOTE=James Heinrich;401333]... more accurately M(10[sup]9[/sup]) to M([b][color=red]10[/color][/b][sup]32[/sup]-1) ...[/QUOTE]Ermm, that is one very large range. :shock:

:razz:

NBtarheel_33 2015-04-30 15:03

Now that we have a more robust server, perhaps we should extend the GIMPS database to include these exponents, if only to provide a unified repository for data on Mersenne numbers. (LL tests on such numbers, of course, are likely decades - probably centuries - in the future.)

James Heinrich 2015-04-30 15:16

[QUOTE=retina;401337]Ermm, that is one very large range. :shock:[/QUOTE]Oops... fixed.

[QUOTE=NBtarheel_33;401339]Now that we have a more robust server, perhaps we should extend the GIMPS database to include these exponents[/QUOTE]My data is freely available should George decide to do so. Currently it would be ~5GB of data, but of course hundreds of millions of new rows. I wouldn't be surprised if it would take a fair bit of rewriting code that expects no exponent can ever be >= 1000M. There's also the possibility that something in the code might freak out with exponents > 2[sup]31[/sup] (signed int).

TheMawn 2015-04-30 15:23

Congratulations.

I think it would be neat to incorporate these results into the new-and-improved GIMPS server also.

petrw1 2015-04-30 15:29

So.......now what?
As is where are your resources heading for now?

I suspect GPU72 may very welcome them. :wink:

James Heinrich 2015-04-30 15:32

Don't worry, Chris already staked a claim on them for GPU72 :smile:

Mark Rose 2015-04-30 16:22

[QUOTE=James Heinrich;401340]There's also the possibility that something in the code might freak out with exponents > 2[sup]31[/sup] (signed int).[/QUOTE]

If it's the 32 bit version of PHP, ints are limited to [-2^31,2^31-1]. That's usually easily fixed by using the 64 bit version, but there may also be limitations on the database fields, etc.

James Heinrich 2015-04-30 16:31

[QUOTE=Mark Rose;401347]If it's the 32 bit version of PHP, ints are limited to [-2^31,2^31-1]. That's usually easily fixed by using the 64 bit version[/QUOTE]Remembering, of course, that the "64-bit" version of PHP on Windows still uses 32-bit ints... :cmd:
(Rumored to maybe potentially might be fixed in PHP v6, but not before then.)

Madpoo 2015-05-01 05:13

[QUOTE=James Heinrich;401340]My data is freely available should George decide to do so. Currently it would be ~5GB of data, but of course hundreds of millions of new rows. I wouldn't be surprised if it would take a fair bit of rewriting code that expects no exponent can ever be >= 1000M. There's also the possibility that something in the code might freak out with exponents > 2[sup]31[/sup] (signed int).[/QUOTE]

A good start would be to set it up as a new table at first to avoid issues with existing code.

Factors themselves are stored as text... no worries there (as long as it's not more than 200 digits).

Exponents are stored as int which in SQL will be fine up to 2,147,483,647 (2^31-1), but beyond that we'd have to change it to bigint (2^63-1). As far as SQL goes, for the most part SQL will cast from int to bigint automagically. Problem is, the exponent shows up all over the DB and just one place where it gets missed would break things.

I hadn't thought about the PHP side of things. it's 64-bit, but James raises a good point. If PHP can't handle larger int, then workarounds would be needed. I'd imagine it'd have to accept it as text with some data validation, then every time it interfaces with SQL it can still insert the PHP variable with the "text" value of the exponent, but that's kind of a pain. Especially if it meant reworking old code and verifying a bunch of things.

You could cheat it by using negative ints but it's definitely a cheat and still complicated. If you're doing that you might as well do something that lets you get above 2^32 anyway.

What a horrible PHP mess... that ints are different based on the underlying OS. Yuck.

Mark Rose 2015-05-01 06:06

[QUOTE=Madpoo;401393]What a horrible PHP mess... that ints are different based on the underlying OS. Yuck.[/QUOTE]

I think it's because:

1. PHP uses longs for its ints
2. Most operating systems use the processor native size for longs, thus a long is 64 bits on a 64 bit architecture, but Microsoft did its own thing, and kept a long as 32 bits


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

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