![]() |
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[b][/b][code:1][/code:1] |
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?) |
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 |
Re: Q: FATAL: length 840 K not available. Halting... ?
[quote="MartinHvidberg"]snip snip...
http://hogranch.com//mayer/README.html#2 snip snip...[/quote] Step 2? :) |
Please post your configuration file (mlucas.cfg)...
|
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. |
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 |
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. |
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 |
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 |
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. |
| All times are UTC. The time now is 16:38. |
Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2021, Jelsoft Enterprises Ltd.