Beta Testers Desired

Hello All,

It’s been quite a while since I last posted anything in this forum, but I do remember that you guys were always so very patient and helpful when it came to explaining the various and sundry intricacies of NVidia CUDA programming to me.

Well, the fact is, I took all that wonderful guidance and wisdom that you gave me from all those aforementioned previous posts, and together with two decades of programming experience, managed to patch together an exiting new NVidia CUDA-based application, which I’ve very recently finished.

The application is called “The CEMPLLA System”, and it’s aim is to use NVidia CUDA to make computational history.

And, oh yeah, it’s freely distributable.

Well, that is, it will be once the beta-testing is complete. In the interim, I’d actually have to ask anyone who downloads it not to distribute it to the general public. You understand, I’m sure…

Anyway, although it’s finished in the sense that both the programming and the debugging have been done as far as humanly possible with what hardware I have available, there remains the task of “beta-testing” it to see if it will actually work on a system that has multiple NVidia GPUs - preferably five or more.

So I need your collective help and wisdom again.

The application runs as a Windows 64-bit executable (Windows 7 or later), so if your system is Linux or Apple, you won’t be able to beta-test this app (obviously)…

The app can be installed on any 64-bit Windows system, but for beta-testing purposes, I could really use the input from someone who has access to a system with at least five (5) NVidia GPUs…

Ironically enough, I’d also like to get input from someone who has no NVidia GPUs on their system, but that’s of far lesser concern right now…

Questions? Comments? Takers?

If I get any positive feedback from this post, I’ll be more than happy to supply a link to the app in my reply. For now though, I just want to get a feel for how you all feel about it…

BTW, the app itself took me a little over four years to develop, so this is fairly important to me…

It might help to mention what this application does, and whether it is delivered in source form.

We have no idea of what this application does, but if it truly will make “computational history” then describe the functionality.

We don’t know exactly what it does, but surely the answer is 42.

Of course you want to know what it does - that would be obvious to anyone - anyone but the guy who spent the last four years trying to achieve it, that is :)

The CEMPLLA System is a freely distributed software solution that is designed to facilitate a coordinated worldwide effort to discover:

  • The first one billion decimal digit prime number, and
  • The first one hundred million decimal digit prime number.

The source code is not included in the distribution, but will be released to the general public for full peer review when both of the above prime numbers have been discovered.

Extensive documentation about how CEMPLLA works, its goals, methodologies, and of course, how to participate in the effort, is immediately available when the CEMPLLA Install program is run. The CEMPLLA Install program will not change, alter, or install anything on your computer without your express informed consent to do so.

Participation in the CEMPLLA effort is completely voluntary, and it is hoped that once enough people are made aware of how easy and effortless it is to participate in the effort, many people will enjoy the opportunity to make history - the specifics of which are completely explained in detail in the documentation…

CEMPLLA is an acronym for “CUDA-Enabled Mersenne Prime Lucas-Lehmer Assessment” - every term of which is fully explained in detail in the documentation available in the CEMPLLA System Install program.

The download itself is a .zip file that contains only two files, which are:

  • ReadMe.txt - a text file that, it is hoped, most people will read first, and
  • CInstall.exe - the CEMPLLA System Install program.

Of the things mentioned in the text file is the statement “you should always check any and all programs that you run on your machine with a reliable virus checking program”. Obvious to everyone, I’m sure, but is still worth mentioning as often as possible, because security is an important issue for everyone these days…

Last but not least, CEMPLLA is not affiliated in any way, shape, or form with “GIMPS”, which is an organization that is involved in, among other things, achieving the same goals as CEMPLLA. They are using software that is twenty (20) years old, and their software, unlike CEMPLLA, does not employ GPU technology, and is not hardware-extensible - i.e. adding more GPUs will not make their software run any faster. CEMPLLA, on the other hand, does employ GPU technology (albeit, NVidia only), and is hardware-extensible (i.e. the more NVidia GPU devices you add, the faster it will run).

I hope this post answers most (if not all) of the concerns you’ve expressed thus far, and I’m happy to answer any further questions or concerns that any of you may have.

TTFN

So how do I know it’s not secretly a cryptocoin miner in disguise? ;)
Or North Korea’s distributed computing effort to improve their atomic bombs…

Now about the beta testing.

I have a rig with 6 GTX 760 cores (three Asus MARS cards), with 2 Gigabytes of RAM per Core. That is a Compute 3.0 device. Guzzles around 800 Watts in full operation. This is a leftover from my cryptocoin days and hasn’t been in operation since February. I could put it back into operation temporarily by end of this month.

What CUDA Compute architecture was the code optimized for, specifically? Going from Kepler to Maxwell can make quite a difference. Also what’s the minimum requirement in terms of RAM?

My own experiments with prime numbers are limited to numbers with 1024 bits (about 308 decimal digits). I’ve implemented a sieve to discover prime tuplets, also using Fermat testing to weed out false positives. The maths required for computing a big integer modulus was … interesting.

What is your estimate for finding the numbers you’re looking for using e.g. a single higher end nVidia card? (say, a GTX 980 Ti) Did you make a rough computation how many compute hours are expected to hit the jackpot?

Christian

BTW Is setting temporary records really considered making history, these days? Some may consider it just a nifty hobby. ;)

BTW #2. Consider making it a BOINC project. That’s going to get you a lot of people donating cycles pretty quickly, I think.

BTW #3. As of August 2015, the largest known prime number is 257,885,161−1, a number with 17,425,170 digits. I think you’re really pushing it there with 100 million decimal digits.

Extraordinary claims require extraordinary evidence.

Christian,

Thanks very much for the reply.

Your system sounds like a good starting point for beta-testing. Fact is though, I didn’t make it quite clear (my bad) that anyone running Windows 64-bit can participate, regardless of whether or not they have any NVidia GPUs at all. If the CEMPLLA Install program detects that you have five or more NVidia cards in your system, it will install “CEMPLLA”, the program that executes the primality test on a selected prime candidate. Otherwise, it will install “MPCG”, which is another program that ensures that the CEMPLLA System’s ‘prime candidate list’ is as viable as possible…

The details are all explained in the documentation, which is quite extensive (yet easy to read), so I’d rather not have to re-type it in here.

Speaking of which, the documentation answers a lot of your questions, so at this point maybe it’s best to just supply the link:

https://www.dropbox.com/s/pmv871zcw860nfo/The%20Latest%20CEMPLLA.zip?dl=0

The first thing you’ll see is a sign-up pop-up for Dropbox, but you can just click on the ‘X’ in the corner to get rid of it. Then click on the [Download] button. Then you’ll get another nag pop-up, but you can make that disappear too…

When you run the Install program, the documentation is the first thing you’ll see after the welcome screen.

Anyway, to answer your question about the CUDA Compute architecture, all of the CEMPLLA GPU kernels are written and compiled in ISA PTX, so theoretically they should be optimized for the target architecture by the ISA PTX compiler at runtime.

And the minimum “Compute Capability” required is 2.0, which was designed to be modest to support the greatest number of participants…

As for computing how long it will take to “hit the jackpot”, that depends entirely on how many people participate, how many NVidia GPU boards each of them have, how often they run it, how fast the various and sundry NVidia GPU boards really are, how many participants own or have access to a CUDA ‘supercomputer’, etc., etc… I’ve run lots of numbers, but it’s still impossible to predict exactly when either of the primes will be discovered, or how long it might take. For all I know, someone with a fast CUDA supercomputer might discover both primes in as many weeks. That’s entirely possible.

All installed programs in the CEMPLLA System (there’s actually only two, only one of which is actually installed) allow the participant to pause, resume, and/or exit the program without consequence, and without losing data. So it’s not a one-shot deal. You don’t start the program and hope it finishes before you need to do something else on your computer. It just doesn’t work that way. You start it, then minimize it to the System Tray, then forget about it while you do other things on your computer. If you need to do something on your computer that you know is processor-intensive, you can pause the CEMPLLA component, and resume it when you’re finished.

Suffice it to say that the CEMPLLA System was designed from the ground up to be as polite, unobtrusive, and easy to use as possible, while at the same time, as exploitive as possible of any and all processing power in the system.

So anyway, until you get your rig up and running, feel free to run the CEMPLLA Install program, and maybe install the “MPCG” component - it doesn’t actually require any NVidia GPUs.

I look forward to your feedback.

It strikes me that the number of folks worldwide who have a windows system with 5 or more GPUs in it is probably quite small. I’d guess less than 1% of the installed base of GPUs that are used for compute.

txbob:

Right now, you’re probably more right than wrong. But that’s not the end of the story.

There’s more than a few things to say about that observation.

First of all, being aware that the number of people and/or organizations that either own or have access to what amounts to a “CUDA supercomputer” could be, as you say, rather small, I included in the CEMPLLA documentation instructions on how to build a CUDA supercomputer.

The CEMPLLA documentation details how to build, in understandable English, a CUDA supercomputer with as many as 12 high-end NVidia cards, just by connecting hardware that can be purchased over the internet. It’s actually surprisingly easy to do.

Of course, not everyone has the money to spend on a CUDA supercomputer. But with a total price tag starting in the $25,000 range, the total cost is not nearly as prohibitive as one might think.

In fact, I could see some well-off people doing it as an interesting hobby, once they’ve been made aware of the fact that they can own a “supercomputer” for little more than the price of a set of high-end golf clubs, and can immediately put it to work to make history.

In that sense, the CEMPLLA System is actually a great marketing tool for NVidia. In fact, it would actually be in NVidia’s best interest to run the CEMPLLA System on their own in-house supercomputers, because once either (or both) of the primes are discovered, they can proudly announce to the world that NVidia tech has once again expanded the horizons of high-end (aka: GPGPU) computing (which they’re actually very fond of doing, judging by the emails I keep getting).

Additionally, the price of NVidia GPU tech is (slowing) coming down, and the capabilities are skyrocketing (as evidenced by the newest Maxwell line), so building a supercomputer is only going to become more pervasive, as more and more people (and organizations) catch on to the fact that, for the price of an inexpensive car, they can own what 15 years ago would have cost them hundreds of millions of dollars (i.e. a Cray).

Additionally, even if, as you say, “1% of the installed base of GPUs” has what it takes to run the CEMPLLA component, that’s still a fairly big number. And once CEMPLLA gets around (which, after all, is the plan), that number can only increase.

There are additional points I could make here, but I guess the bottom line is that CEMPLLA was designed to facilitate a community effort. As such, it was designed to be fun and engaging for all participants involved. And I think I’ve largely succeeded in that.

But a big part of that design goal is that I have to know that it works - that’s why I need beta testers right now.

Does your program communicate/interact with other instances?

And if it doesn’t, how do the results depend on the number of running instance?

Not sure I can run it on company computers if it’s interacting with outside machines.

Sorry for the tardy response robosmith - I was fighting fires in another forum…

No, the program does not communicate with other instances, it communicates with a single “cloud-based” central database (existing at a single URL location). But because every other instance also communicates with the very same database, the end result is that no two machines can work on the same candidate at the same time.

The theory is quite simple - the program, whether it’s CEMPLLA, or MPCG, will select a “suitable” candidate for you to work on (based on criteria that’s explained in the documentation - more or less), and then proceed to “lock” that candidate, so that it can’t be selected by any other participant (or “running instance”, as you so accurately called it). Of course, when you exit the program, the lock is released, and the candidate is then free to be selected by another participant.

In this way, no two participants can work on the same candidate at the same time, which would be an entirely counterproductive thing to allow (obviously)…

So I’m not sure if this qualifies as “interacting with outside machines”, especially given that you’re using the plural, but essentially, both of the CEMPLLA System programs do interact with a single “outside machine”, out of sheer necessity.

But then, if you think about it, so does every “company computer” in your office, whenever they visit a web site, or download a software update… So the fact that CEMPLLA requires a connection to the Internet isn’t really the big issue - the big issue (I would guess) is whether or not the CEMPLLA System does what it claims to do, and no more. And at this current moment in time, that’s the CEMPLLA System’s biggest problem right now… I think I may have to bite the bullet and shell out about $400 just to get a “code signing certificate” for the CEMPLLA System, just so that Windows will stop referring to it as a “program with an unknown publisher” - what a world we live in…

That other forum is the mersenneforum.org and it appears you’ve jumped into a shark tank there.

Christian

No, they just don’t like silly fancy talk there. (Like “you must answer in the affirmative”, “you must disable your antivirus or the program will not install correctly” and “no, you cannot know what the program does but you will know once you start it”. The latter is perfectly true for a program that will start mass emailing from your IP once you start it, or a program that will low-level format your drive).

Is there an excess of gullible users here? I don’t think so. Some of the responses way above are apparently also from “sharks” (in your words) or rather, normal, sensible people (in my book).

Free advice: search for anything you can google about a BOINC project called Mersenne@Home; very active in 2011, and popular with users, too! Tons of GHz hours burnt, hundreds of users! But entrez-nous, doing absolute horsesh!t – and awarding a lot of BOINC “credits”. That’s the ticket to get a lot of users to join! Way to go!

Here is one thread about it on mersenneforum:

http://mersenneforum.org/showthread.php?t=20489

(To make it easier to find, later.) A user also posted the aforementioned readme.txt file there, if anyone is interested:

http://mersenneforum.org/attachment.php?attachmentid=13094&d=1442389305

I shall post the text here for reference:

Hints, Tips, and Additional thoughts on participating in the CEMPLLA Effort:


* This text file is best viewed in Windows Notepad with "Format->Word Wrap" turned on.

* It is strongly advisable to read as much of this file as you can *before* running the CEMPLLA System Install Program.

* To run the CEMPLLA System Install Program, you must be logged on to Windows with administrator privileges.

* The CEMPLLA System is a freely distributed software solution that is designed to accomplish a single goal: to facilitate (and encourage) individual participation in a coordinated worldwide effort to discover two of the largest prime numbers ever recorded in history: the first *one billion* decimal digit prime number, and the first *one hundred million* decimal digit prime number.

* The CEMPLLA System Install Program contains most, if not all, of the CEMPLLA System's documentation. So if you require clarification about any aspect of the CEMPLLA System at any time, even while an installed program is running, feel free to run the CEMPLLA System Install Program again - just for access to the documentation. Doing so won't change anything on your system, as long as you exit the program using any one of its many [Exit] buttons.

* When reading the documentation contained in the CEMPLLA System Install Program, you can quickly and easily scroll through the text with your mouse wheel (if your mouse has one)..

* Virus Checkers:
  ~~~~~~~~~~~~~~

* Obviously, nothing in the CEMPLLA System contains anything even close to a virus. However, you should always check any and all programs that you run on your machine with a reliable virus checking program, such as Comodo Anti-Virus, *before* you run them on your machine.

  Having said that, most virus checkers have an optional "feature" that can run in the background, that essentially "warns" you when a running program is doing something "suspicious". You may have such a "feature" turned on. Unfortunately most, if not all, of these "monitoring" type of programs consider many completely normal activities, such as writing to a file, to be "suspicious".

  So the long and the short of it is that when the CEMPLLA System Install program is installing what you want it to install on your machine, many virus checking programs will report that it is "attempting to access a protected" whatever.

  So don't be surprised if you get one or more of these "warnings" when running the CEMPLLA System Install program. The CEMPLLA System Install program *is* an install program, so it *will* write to the registry, it *will* create folders, and it *will* write out files. There is nothing "suspicious" about it.

  So if or when your virus checking software reports that any CEMPLLA program is doing something "suspicous", don't freak out - it's just that these virus checking programs can be more than a little, shall we say, overzealous.

  Case in point: I myself routinely get these kinds of "warnings" when compiling programs using Microsoft's own Visual Studio Express..

* Windows WDDM TDR (this is IMPORTANT)
  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

* All versions of Windows that CEMPLLA can run on have something called, "Windows Display Driver Model Timeout Detection and Recovery", or "WDDM TDR" for short.

  The CEMPLLA System Install program will *DISABLE* this "feature" of Windows when installing the CEMPLLA software, if one or more NVidia GPUs are detected on the machine.

  That's because this particular "feature" of Windows is completely incompatible with CEMPLLA, and in fact, any application that uses a GPU (Graphics Pricessing Unit) for anything other than graphics.

  The reason that this is necessary is because the WDDM TDR "feature" will "reset" (aka: kill) any task running inside a GPU that takes longer than an arbitrarily short amount of time to complete. It is premised on the idea that whatever task the GPU is doing:

    1) is solely concerned with graphics, and
    2) is therefore unimportant, and
    3) should take a very short amount of time, and
    4) can be killed without consequence.

  Since none of these assumptions apply to the CEMPLLA System's use of the GPU, WDDM TDR is turned *OFF* when the CEMPLLA software is installed.

  As a minor consequence of this, any video games that you play on your computer will probably run much, much BETTER. Specifically, they will lock up your machine far less often, if at all.

  However, should you feel that this particular requirement of the CEMPLLA System is unacceptable, for whatever reason, then you are more than welcome, and in fact encouraged, to choose *not* to participate in the CEMPLLA effort.

  For what it's worth, I've had this "WDDM TDR" "feature" (thingy) turned *off* on my system for about two years now, and it's *never* caused any problems - with anything - ever..

* Windows "User Account Control" (UAC):
  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

* All versions of Windows that CEMPLLA can run on have something called, "User Account Control", which is a mandatory "feature" of Windows that allegedly gives you, the end-user, more control over what programs are allowed to do on your computer.

  The Microsoft documentation on this relatively new "feature" can be found at:

  http://windows.microsoft.com/en-us/windows/what-are-user-account-control-settings#1TC=windows-7

  However, to make a long story short, what "User Account Control" will do is to "ask" you, in the form of a pop-up dialog box, whether or not the program you just invoked should be "allowed" to "make changes to your computer".

  Again, to make a long story short, if you see this particular dialog box pop up when you invoke the CEMPLLA System Install program, you must answer in the affirmative, or the CEMPLLA System Install program will fail to install the software properly.

  Of course, if you're logged on to Windows with administrator privileges, you can just turn this particular "feature" off, and you won't get the pop-up dialog box.  Then again, if you turn it off, then log on to Windows *without* administrator privileges, *all* Install programs will fail without warning (great "feature" huh?)..

As written, the second part of the quoted paragraph of the readme.txt is not correct.

Watchdog timers to prevent prolonged unresponsiveness of the GUI are in fact implemented by all operating systems supported by CUDA for those GPUs that service a GUI in some capacity. Conversely even on Windows it is possible to run some GPUs as a 3D controller rather than a graphical device, and such GPUs are not under control of the watchdog timer as they do not serve the GUI. This applies in particular to all Tesla GPUs running with the TCC driver.

This watchdog timeout typically triggers after a couple of seconds. It limits the run time of compute kernels, as the watchdog event will kill the kernel in progress, usually rendering the affected application unusable. However, a lot of work can be accomplished on the GPU in that amount of time, so the vast majority of compute (non-graphics) software never runs into the time-out limit, even during development. I am not aware of any production software based on CUDA that requires extending the watchdog timeout period or disabling the watchdog timer.

I would think that any prime-number computation could be broken up into kernels with less than 2 second run time. Existing GPU-enabled prime number searchers such as mfaktc seem to be able to do so [Disclosure: I have never used mfaktc, but have followed discussions about it on the Mersenne Forum for a number of years]

I agree. In my opinion, if you want to be “considerate” and “unobtrusive” of the host, you should not be disabling the WDDM TDR mechanism. For development purposes, its fine. It’s not a sensible technique for production code. Microsoft are not idiots, and they did not create that mechanism for no reason. The correct approach is to intentionally limit kernel runtime (or, even better, as njuffa points out, use GPUs that are in TCC mode.) (This has other benefits as well, for example in terms of GUI responsiveness.) There are a number of other “criticisms” I could mention, but it seems like this individual is already weathering a storm of such, and I see no need to pile on. Most folks on this forum are smarter than me anyway.

This is not question of “piling on” (and in fact I haven’t read the relevant thread on the Mersenne Forum yet). However, I am interested in keeping the amount of erroneous information posted in the CUDA developer forums to a minimum to avoid confusion. Other items in the readme are certainly worthy of scrutiny, such as the claim that games will run “much better” with the TDR disabled, which seems dubious to me based on my knowledge of the TDR functionality, but then I am not a gamer and have not actually tried this.

I could imagine that people in general are apprehensive about installing an app whose source code is not available and that also disables the watchdog timer, thus potentially eliminating user control by effectively disabling the GUI. A less intrusive, open source, application would presumably attract many more potential users.

Very false statement, as you have helped me directly hundreds of times with tricky problems.
Txbob and Njuffa are two of Nvidia’s greatest assets in relation to CUDA, and I hope they appreciate your constant assistance of those on this (and other) forums.