![]() |
:w00t:
|
Feature request:[list][*]Prime95 should check not only if "other worker threads are using lots of memory now", but also whether the amount of memory left is enough to do something useful in. For example, right now I have 3072MB allocated to Prime95, and thread #2 is using (only) 1340MB for ECM-stage-2 (presumably it doesn't need any more than that for the work it's doing). Thread #1 isn't letting itself do any stage2 work because "other worker threads are using lots of memory now". But it should be able to do some of the Stage2 work it has queued up that wouldn't use more than the still-available 1700MB of memory anyways.
edit1: Times when lots of memory is available should be considered precious and if two (or more) "high-memory" tasks can co-exist, they probably should. For example, the next ECM-stage-2 work that Thread #2 has just moved on to is using only 279MB, leaving ~2793MB available to thread #1, but it still won't consider that it can try doing any Stage2 work. edit2: Perhaps it would be best to prioritize queued lots-of-memory work in descending order of RAM requirements, such that when a lot of memory is available the worker thread would look at the available memory and work first on the queued exponent that requires the most memory, and move on to lower-memory tasks if the requisite amount of RAM isn't available. This would extend naturally into doing "no-memory" tasks last (such as P-1/ECM stage 1, TF, LL, etc) if there are no P-1/ECM Stage2 tasks queued that can fit in the available memory.[/list] |
[QUOTE=James Heinrich;116813]Times when lots of memory is available should be considered precious and if two (or more) "high-memory" tasks can co-exist, they probably should.[/QUOTE]
What you ask for is difficult to program and will not be useful to the vast majority of users - though I cannot deny that it is the technically correct thing to do. Most users will either be using rather less than 3GB or P-1ing large exponents where stage 2 will use up as much memory as you can throw at it. Consequently, the default is that only half of the worker threads are allowed to execute stage 2 of ECM or P-1. Since you have enough memory for all worker threads to execute stage 2, try setting DelayStage2ThreadCount=2 in prime.txt. |
[QUOTE=Prime95;116818]Most users will either be using rather less than 3GB or P-1ing large exponents where stage 2 will use up as much memory as you can throw at it.[/QUOTE]As will I. I simply have 3GB allocated experimentally right now. Most of the time I would be either P-1'ing larger exponents, and/or have far less memory available. It just kind of bugged me to see that threads could be waiting to use 250MB of RAM when 2500MB is available.
I still don't think it should be that technically difficult to program -- when a worker checks to see if it can do Stage2, perform the how-much-RAM-to-use calculation on max(<dayRAM>, <nightRAM>), also whether it can run on <nowRAM>, and then cache those value somewhere with the exponent. Presumably this calculation would take place at the time the Stage2 is about to be started the first time. Once all the queued Stage2 has known ideal and minimum RAM, just walk down the list of idealRAM values until one is found that can fit into current available RAM. If none are found then maybe either walk down the minimumRAM values to see if any queued work can fit in available RAM. If not, then fall back to no-memory work like Stage1,TF,LL,etc. My point is that times when a machine has a lot of memory available should be considered precious and taken as much advantage of as possible. I would suspect that most machines have <50% of their time available with "lots of memory". This could be partially fixed with my #1 wishlist feature: more flexible high/low memory scheduling (multiple times and RAM levels per day), and/or a [i]LowMemoryWhileRunning=[/i] setting which would allow me to leave high memory all the time, but have Prime95 automatically suspend Stage2 when I'm actually using something that needs a non-trivial amount of RAM. |
Prime 95 on a bootable memory stick
I have access to a Dell Quad Core PC with a Q6600 CPU with 2G RAM. It's used Monday to Friday 9 to 5 as a CAD PC and is off the rest of the time.
Is there a bootable Linux or FreeBSD based version of Prime95 for a USB 1G memory stick that will load & run a copy of prime95 on each core? It would have to be turnkey as I'm no expert on Un!x. Cheers! |
[QUOTE=dmcdonnell;116827]I have access to a Dell Quad Core PC with a Q6600 CPU with 2G RAM. It's used Monday to Friday 9 to 5 as a CAD PC and is off the rest of the time.
Is there a bootable Linux or FreeBSD based version of Prime95 for a USB 1G memory stick that will load & run a copy of prime95 on each core? It would have to be turnkey as I'm no expert on Un!x. Cheers![/QUOTE] Drat, you won't let anyone send you email or PMs. Anyway, I was wondering if you would be willing to trade ecm curves for the Odd Perfect Number search, in exchange for me taking the time to figure out how to make a Prime95 Linux distro? |
[QUOTE=dmcdonnell;116827]I have access to a Dell Quad Core PC with a Q6600 CPU with 2G RAM. It's used Monday to Friday 9 to 5 as a CAD PC and is off the rest of the time.
Is there a bootable Linux or FreeBSD based version of Prime95 for a USB 1G memory stick that will load & run a copy of prime95 on each core? It would have to be turnkey as I'm no expert on Un!x. Cheers![/QUOTE] What could be easier than downloading Debian Net-install CD image, burning it out, booting it and installing to the USB stick? Do not use "swap space" and maybe partition the disk, one for a back-up space, which is written to by a "cron" job, in case of corruption of the partition that contains mprime data. Alternatively, a DHCP-default mimimal linux with the latest mprime, with a script to install GRUB to the boot sector of the USB, all might be a cool thing for someone to host :wink: <move off topic subject to linux section of this forum?> |
Prime95 on a bootable memory stick for quad core
[quote=jasong;116854]Drat, you won't let anyone send you email or PMs.
:wink: Anyway, I was wondering if you would be willing to trade ecm curves for the Odd Perfect Number search, in exchange for me taking the time to figure out how to make a Prime95 Linux distro?[/quote] Would be happy to trade but dont know how to run ecm curves. My thinking was that there are lots of Quad cores out there now and Prime95 should be available "off the shelf" for a 1G memory stick that just requires the user to know how to boot it and leave it run when the PC is now required for "work". Cheers, Dermot. |
Small interface improvement request:[list][*]When you have a lot of work queued up in more than 1 worker thread, it will take up almost all of the vertical space in the "Status..." dialog showing you the work queued for Thread #1 like this:[code]
<worktodo1>, <eta1> <worktodo2>, <eta2> <worktodo3>, <eta3> <worktodo4>, <eta4> .etc. <worktodoN>, <etaN> More... [Worker thread #2] More... [/code]that is, it lists as much of Worker #1's work as it can, but then just shows that Worker #2 has something to do, but you can't even see the first line. It would (I think) be more useful to allocate 1/<workers> of the available lines to each worker thread, such that I can see the next 16 assignments for each of my 2 worker threads, rather than the next 32 assignments for Thread#1 and 0 for Thread#2.[/list] |
[QUOTE=dmcdonnell;116877]Would be happy to trade but dont know how to run ecm curves. My thinking was that there are lots of Quad cores out there now and Prime95 should be available "off the shelf" for a 1G memory stick that just requires the user to know how to boot it and leave it run when the PC is now required for "work".
Cheers, Dermot.[/QUOTE] That's okay, I'm thinking I might try to make a Prime95 version just for the challenge. At the very least, I'll probably write some instructions on how to do what you ask using Damn Small Linux. |
I just got some "Server sent bad exponent" errors when trying to request DCs on the v5 server. I had been requesting some other work of varying types, and when I requested DC work this is what it gave: (relevant part of prime.log)
[code]Getting assignment from server URL: http://v5.mersenne.org/v5server/?v=0.95&px=GIMPS&t=ga&g=327b6f6f842df65c787b422c11df7f86&c=0&ss=18467&sh=8A14006D982C96F1A10353D1ECA4B6CB RESPONSE: pnErrorResult=0 pnErrorDetail=Server assigned Lucas Lehmer primality double-check work g=327b6f6f842df65c787b422c11df7f86 k=A840E23F7452FE609A9E5A1E6DD8C623 A=1 b=2 n=120041 c=-1 w=101 sf=58 p1=1 ==END== PrimeNet success code with additional info: Server assigned Lucas Lehmer primality double-check work Got assignment A840E23F7452FE609A9E5A1E6DD8C623: Double check M120041 Server sent bad exponent: 120041. Getting assignment from server URL: http://v5.mersenne.org/v5server/?v=0.95&px=GIMPS&t=ga&g=327b6f6f842df65c787b422c11df7f86&c=0&ss=41&sh=39E3D67EAFB3700C869E41559FFA5FD7 RESPONSE: pnErrorResult=0 pnErrorDetail=Server assigned Lucas Lehmer primality double-check work g=327b6f6f842df65c787b422c11df7f86 k=D8676215A1308103C5EDDA8930D2C6B8 A=1 b=2 n=120067 c=-1 w=101 sf=58 p1=1 ==END== PrimeNet success code with additional info: Server assigned Lucas Lehmer primality double-check work Got assignment D8676215A1308103C5EDDA8930D2C6B8: Double check M120067 Server sent bad exponent: 120067. [/code]When I go into my account on the web, it sees the exponents there, and seems to not know of any problems with it. The exponents are prime, so I don't know why my client thinks they're bad exponents, other than that they're smaller than I'd expect DCs to be (just over 120K, instead of in the 20M range). On the Assignment Details page of PrimeNet, what is the check box to the left of "Unreserve checked exponents" for? And, I think there should be a box to select all exponents. (I realize accidents with a select all box on something like this could cause problems, so you could put plenty of warnings.) |
| All times are UTC. The time now is 10:00. |
Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2021, Jelsoft Enterprises Ltd.