mersenneforum.org  

Go Back   mersenneforum.org > Great Internet Mersenne Prime Search > Software

Reply
 
Thread Tools
Old 2003-07-21, 06:45   #1
MartinHvidberg
 
Jul 2003

2·5 Posts
Default Q: FATAL: length 840 K not available. Halting... ?

I have been instaling Mlucas 2.8x on my Alpha Server - The install, and the manual test goes okay. But the first time I try run from the worktodo.ini, it sayes:

FATAL: length 840 K not available. Halting...

The full output looks like this:
---8<---
[mhv@DmuAxel ver28x]$ ./Mlucas-2.8x-ev56emmh2

Mlucas 2.8x

http://hogranch.com//mayer/README.html#2

INFO: Using prefetch.
looking for worktodo.ini file...
worktodo.ini file found...checking next exponent in range...
p = 15898301
FATAL: length 840 K not available. Halting...
---8<---

To check that the system realy have 840 Kb free mem I rub the following:
---8<---
[mhv@DmuAxel ver28x]$ free -k
total used free shared buffers cached
Mem: 252152 132816 119336 792 10528 67480
-/+ buffers/cache: 54808 197344
Swap: 1044192 0 1044192
---8<---

As it shows, more than 100M should be free.

Anybody have a clue ???

:-) Martin@Hvidberg.net[code:1][/code:1]
MartinHvidberg is offline   Reply With Quote
Old 2003-07-21, 07:24   #2
Xyzzy
 
Xyzzy's Avatar
 
"Mike"
Aug 2002

2×23×179 Posts
Default

It isn't a free memory issue...

I bet you are using the wrong radix for the 840K FFT or maybe that FFT is not available on your platform...

Try running Mlucas in interactive mode, and paste that output here...

And try the next higher FFT, too... (Use the samples in the FAQ!)

(How can you begin to test a real exponent if you haven't run the test samples?)
Xyzzy is offline   Reply With Quote
Old 2003-07-21, 09:08   #3
MartinHvidberg
 
Jul 2003

2·5 Posts
Default

Thanks for your reply.

It looks like I have skipped somthing important, while being new in this game and wanting to get going right away... Could you please direct me to the FAQ, and maybe the section about the manual testing and radix???

:-) Martin@Hvidberg.net
MartinHvidberg is offline   Reply With Quote
Old 2003-07-21, 09:20   #4
Xyzzy
 
Xyzzy's Avatar
 
"Mike"
Aug 2002

100000001010102 Posts
Default Re: Q: FATAL: length 840 K not available. Halting... ?

Quote:
Originally Posted by MartinHvidberg
snip snip...

http://hogranch.com//mayer/README.html#2

snip snip...
Step 2? :)
Xyzzy is offline   Reply With Quote
Old 2003-07-21, 09:23   #5
Xyzzy
 
Xyzzy's Avatar
 
"Mike"
Aug 2002

2×23×179 Posts
Default

Please post your configuration file (mlucas.cfg)...
Xyzzy is offline   Reply With Quote
Old 2003-07-21, 18:50   #6
ewmayer
2ω=0
 
ewmayer's Avatar
 
Sep 2002
República de California

1164610 Posts
Default

Sounds like you're using a .cfg file from a really old version of Mlucas, back when I was still playing around with combinations of radixes like 3*5*7 = 105 (followed by 2^13 = 8K to get 840K) - Mlucas.c only allows a combination of radices starting with (5,6,7,8,9,10,11,12,13,14,15,16,32,36) and followed by a suitable combination of 8s, 16s and 32s.

BTW, if your system is unloaded (or has a constant load running on it), you can use the automated self-test feature of Mlucas.c to run through all available radix combos for each FFT length in a decently wide range and determine which is best at each length - just parse the timings for the various radix combos at each FFT length and modify your mlucas.cfg accordingly.

Mlucas -s {s|m|l|x} (pick one of the latter letters) run through lengths 128-512K, 576-2048K, 2304-4096K and 4608-8192K, respectively. 'Mlucas -s a' runs through all of these. Sorry, I neglected to mention that in my previous post about building and self-testing,

http://www.mersenneforum.org/viewtopic.php?t=863 .

Haven't had time to pull it all together in an updated readme file, unfortunately.
ewmayer is offline   Reply With Quote
Old 2003-07-22, 04:32   #7
MartinHvidberg
 
Jul 2003

A16 Posts
Default

Thanks for th replayes.

My mlucas.cfg look like this:

[code:1]
# mlucas.cfg - configuration file for Mlucas - Sample optimized for Alpha 21164
# Format: this file MUST have 3 # lines, one int, another # line and pairs of ints in order to be properly read.
# This line tells the code beyond which to turn off error checking, if no RO warnings issued:
200000
# Following lines: {FFT length(K) | Radix Set Index} # Possible radix set indices (see mers_mod_square.f90 for actual radix sets.)
1 0 # Available radix sets: 0,1
256 6 # 0-7
288 2 # 0-3
320 4 # 0-7
352 3 # 0-6
384 9 # 0-10
420 2 # 0,2,3
448 7 # 0-8
512 6 # 0-7
576 2 # 0-4
640 4 # 0-9
704 2 # 0-4
768 4 # 0-10
840 3 # 0-4
896 6 # 0-10
1024 3 # 0-9
1152 5 # 0-8
1280 3 # 0-10
1408 4 # 0-5
1536 6 # 0-9
1792 10 # 0-11
1920 3 # 0-4
2048 8 # 0-9
2304 6 # 0-11
2560 9 # 0-11
2816 6 # 0-7
3072 11 # 0-12
3584 7 # 0-8
4096 3 # 0-5
4608 3 # 0-3
[/code:1]

If I remember correctly, it's originally from the Mlucas 2.7b-ev5 binary

:-) Martin
MartinHvidberg is offline   Reply With Quote
Old 2003-07-22, 04:50   #8
garo
 
garo's Avatar
 
Aug 2002
Termonfeckin, IE

22×691 Posts
Default

Martin,
This is the old config file. The C version of mlucas uses slightly different FFTs from what are listed on the README page on hogranch.com. For instance, you should use 832K FFT for the exponent you are trying to test.
garo is offline   Reply With Quote
Old 2003-07-22, 05:10   #9
garo
 
garo's Avatar
 
Aug 2002
Termonfeckin, IE

276410 Posts
Default

OK,
I did a bit more investigation in mers_mod_square.c and Mlucas.c . Turns out that the program has different behaviour while doing the self-test versus actually working on an exponent in the worktodo.ini.

When doing the self-test the program correctly picks the FFT for the exponent Martin gave above as 832K. This is how it should be. However, the code in Mlucas.c follows a different path in the non-interactiove mode and reads the config file instead of selecting the default FFT as in the interactive mode. As a result, you get this error. the easiest way to solve this is to edit the mlucas.cfg and replace the 840 with 832.

Garo
garo is offline   Reply With Quote
Old 2003-07-22, 09:24   #10
MartinHvidberg
 
Jul 2003

10102 Posts
Default

Dear Forum

First a lot of thanks for your help, but you are going a bit fast for me, so just to make
sure that I'm still with you, allow me to sum up...

1) I need to edit the .cfg file

2) I can get the right values from the output from a seelftest

If I'm correct this far, please consider the folowing:

Running selftest:
time ./Mlucas-2.8x-ev56emmh2 -s s > Selftest-s
gives the output below (for FFT 128):

[code:1]

Mlucas 2.8x

http://hogranch.com//mayer/README.html#2


Mlucas selftest running.....

/****************************************************************************/

INFO: Using prefetch.
looking for worktodo.ini file...
no worktodo.ini file found...switching to interactive mode.
Enter exponent > 2550001
Enter FFT length in K (set K = 0 for default FFT length) > 128
Enter 0 to run a full LL test, any other integer for a self-test > 1
Enter number of iterations for timing test > 100
Enter index of radix set to be used for the FFT:
(See file fft_radix.txt for a list of available choices; enter -1 to get the default) >0
Enter 1 to enable per-iteration error checking, 0 for no error checking > 0
p is prime...proceeding with Lucas-Lehmer test...
M2550001: using FFT length 128K = 131072 8-byte floats.
this gives an average 19.454963684082031 bits per digit
INFO: Using real* 8 for FFT sincos and DWT weights tables inits.
Using complex FFT radices 8 8 8 8 16
100 iterations of M2550001 with FFT length 131072
Res64: CB6030D5790E2460. AvgMaxErr = 0.000000000. Program: E2.8x
Clocks = 00:00:05.131

INFO: Using prefetch.
looking for worktodo.ini file...
no worktodo.ini file found...switching to interactive mode.
Enter exponent > 2550001
Enter FFT length in K (set K = 0 for default FFT length) > 128
Enter 0 to run a full LL test, any other integer for a self-test > 1
Enter number of iterations for timing test > 100
Enter index of radix set to be used for the FFT:
(See file fft_radix.txt for a list of available choices; enter -1 to get the default) >
1
Enter 1 to enable per-iteration error checking, 0 for no error checking > 0
p is prime...proceeding with Lucas-Lehmer test...
M2550001: using FFT length 128K = 131072 8-byte floats.
this gives an average 19.454963684082031 bits per digit
INFO: Using real* 8 for FFT sincos and DWT weights tables inits.
Using complex FFT radices 16 16 16 16
100 iterations of M2550001 with FFT length 131072
Res64: CB6030D5790E2460. AvgMaxErr = 0.000000000. Program: E2.8x
Clocks = 00:00:04.818

INFO: Using prefetch.
looking for worktodo.ini file...
no worktodo.ini file found...switching to interactive mode.
Enter exponent > 2550001
Enter FFT length in K (set K = 0 for default FFT length) > 128
Enter 0 to run a full LL test, any other integer for a self-test > 1
Enter number of iterations for timing test > 100
Enter index of radix set to be used for the FFT:
(See file fft_radix.txt for a list of available choices; enter -1 to get the default) >
2
Enter 1 to enable per-iteration error checking, 0 for no error checking > 0
p is prime...proceeding with Lucas-Lehmer test...
M2550001: using FFT length 128K = 131072 8-byte floats.
this gives an average 19.454963684082031 bits per digit
INFO: Using real* 8 for FFT sincos and DWT weights tables inits.
Using complex FFT radices 8 16 16 32
100 iterations of M2550001 with FFT length 131072
Res64: CB6030D5790E2460. AvgMaxErr = 0.000000000. Program: E2.8x
Clocks = 00:00:05.418

INFO: Using prefetch.
looking for worktodo.ini file...
no worktodo.ini file found...switching to interactive mode.
Enter exponent > 2550001
Enter FFT length in K (set K = 0 for default FFT length) > 128
Enter 0 to run a full LL test, any other integer for a self-test > 1
Enter number of iterations for timing test > 100
Enter index of radix set to be used for the FFT:
(See file fft_radix.txt for a list of available choices; enter -1 to get the default) >
3
Enter 1 to enable per-iteration error checking, 0 for no error checking > 0
p is prime...proceeding with Lucas-Lehmer test...
M2550001: using FFT length 128K = 131072 8-byte floats.
this gives an average 19.454963684082031 bits per digit
INFO: Using real* 8 for FFT sincos and DWT weights tables inits.
Using complex FFT radices 8 16 32 16
100 iterations of M2550001 with FFT length 131072
Res64: CB6030D5790E2460. AvgMaxErr = 0.000000000. Program: E2.8x
Clocks = 00:00:04.831
...snip...
[/code:1]

This essentially can be boiled down to:

[code:1]
Exponent > 2550001
FFT length > 128

index of radix > 0
Clocks = 00:00:05.131

index of radix > 1
Clocks = 00:00:04.818

index of radix > 2
Clocks = 00:00:05.418

index of radix > 3
Clocks = 00:00:04.831
[/code:1]

From this I can conclude that for FFT 128, radix should be set to 1 in the .cfg file. This leading to an entry line in the .cfg fil, something like this.

[code:1]
128 1 # 0-3
[/code:1]

Now I "just" do that for all FFT mentioned in the output from the selftest

:-? Martin
MartinHvidberg is offline   Reply With Quote
Old 2003-07-22, 17:22   #11
garo
 
garo's Avatar
 
Aug 2002
Termonfeckin, IE

22×691 Posts
Default

Not really! There are two uses for the self-test.

1) Figure out that there is no hardware problem by verifying the residues with the self test residues listed on the README page of Mlucas.

2) Figure out which is the best radix_set to use by running tests on all radices and choosing the one that performs best

What you infer about the 128K FFT, i.e. choose radix set 1 is correct!! You don't really need to do this for all the FFTs. Just do it for the FFTs for which you will be testing. With your 15M exponent, you only need to choose the fastest radix_set for the 832K FFT. Some time later as you do a 16.5M test you will find you need to find the optimum for 896K FFT as well. So find the optimum radix_set for the FFTs as you need them. Or if you want do it all in the beginning. The new Mlucas version with the self-test options makes it much easier to do that now.

But before you do all of that you have another problem. You are using the old cfg file (and as far as I know there is no new cfg file :) ) which has an 840K FFT instead of the 832K FFT that the new Mlucas requires. So you need to edit your mlucas.cfg and replace the 840 with 832 to start with. Then run the self-test as Ernst mentioned to figure out the optimum radix_set.

Hope this helps.
garo is offline   Reply With Quote
Reply

Thread Tools


Similar Threads
Thread Thread Starter Forum Replies Last Post
Help with FFT length Gradient Software 3 2013-12-16 01:53
Unfixing FFT length for LL test tichy Software 2 2011-01-12 21:18
FFT Length Samoflan Information & Answers 8 2010-02-16 22:05
FFt length mack Information & Answers 1 2009-09-06 03:24
llr: FFT-length not monotone in n? hhh Software 4 2008-12-20 09:49

All times are UTC. The time now is 16:39.


Sun Aug 1 16:39:23 UTC 2021 up 9 days, 11:08, 0 users, load averages: 1.27, 1.34, 1.50

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.