Hey everyone,
When I said that I’d update this blog once a week, I didn’t realize that I’d have to post five times as many updates as I did last year. Fortunately, I don’t see this as something I can’t do so I decided to make it my new year’s resolution. Today I’ve decided to write about the Great Internet Mersenne Prime Search (GIMPS)- an online distributed computing project that aims to find Mersenne Primes. Distributed computing means that several computers on a network work together on a certain task. In the case of the Great Mersenne Prime Search, these computers come from university computer labs, homes, and even video game consoles all across the world. Other distributed computing projects involve protein folding (perhaps the most famous), finding extraterrestrial life, searching for gravitational waves, and so on and so forth. These projects work by utilizing spare processing power from participating computers. All this processing power put together makes for a very powerful network, and these projects have already made important discoveries, such as a protein structure related to HIV. Anyway, after I set up my Linux server, which runs throughout the day, I decided that letting it run idly would waste a lot of processing power, so I decided to install a program from a distributed computing project. I chose GIMPS because I spent some time studying the Mersenne primes in school, so as a math major this project would come naturally to me. I couldn’t find a suitable setup guide for Ubuntu 11.10, however, so I decided to write one here.
About Mersenne Primes
We call numbers of the form $latex M_p = 2^p-1$ Mersenne Numbers. However, only a few of these Mersenne Numbers belong to the set of prime numbers, and as of 2009 we know of only 47 Mersenne Primes. The nature of Mersenne Primes makes them some of the largest known prime numbers out there, and indeed, the largest known prime, $latex 2^{43112609}-1$, is a Mersenne Prime. The Great Internet Mersenne Prime Search aims to find additional Mersenne Primes through distributed computing using the Lucas-Lehmer test for Mersenne Primes.
Downloading GIMPS
Go to the GIMPS homepage, and click on the link “Getting Started.” Go to the link called “Register a new user account login” and create your user account. After you create your account, go to the Download Software page and select the package appropriate for your operating system. Since I use 64-bit Ubuntu, I downloaded the 64-bit Linux package. Place the package into the desired directory. For my computer, I created a folder called “GIMPS” in my home folder, and put the package there.
Next, click open the package with Archive Manager and then extract the files. Archive Manager will extract the files into the GIMPS folder.
Next, open up the terminal (CTRL+ALT+T) and change the directory to the GIMPS folder (do this simply by typing “cd GIMPS”). Now, open the mprime folder by typing in the command “./mprime -m”. Remember the space! The program “mprime” is the main program that will do the primality testing.
mprime will now ask you if you want to join GIMPS. Select yes. Then, mprime will ask you to create an optional user ID and computer name. Fill these out – for example I entered my name as “gene” and my computer name as “Archimedes.” You can leave the proxy host name blank, just press enter. Then, type “Y” when mprime asks you to accept the above answers.
mprime will then ask you the number of hours per day the program will run, how much memory to let it use, and the number of workers (number of CPUs) that will run. The default answers to these questions are in parentheses (). I selected the defaults for all of them. You do have the option to use more memory to speed up the program, however. mprime will then ask you to set the work priorities for your computer. Go ahead and select all the defaults, this will allow mprime to automatically allocate work to your processors. After accepting the answers, you will see your terminal window fill up with a bunch of text. This text describes which Mersenne Numbers your CPUs are testing, how much progress they’ve made, and the estimated completion dates. Depending on how you set it up, you may have missed the main menu. On my first install I saw the menu right away, but on the second install the program seemed to have skipped over the menu.
Here is a screenshot of the menu:
Go ahead and select option 3. This will give you a summary of the progress.
You can see here that my version of mprime is currently testing Mersenne numbers M55085531, M55091137, M55093139, and M55093327 using the Lucas-Lehmer test. The number after the M is the p in $latex M_p = 2^p-1$. So as you can see, these are very large numbers. The odds of me finding a Mersenne prime are 1 in 113533 for this current batch of tests!
And that’s it! Press any key to continue, and select option 5 to exit.
Things to do
You can see from the last picture that mprime will cause your computer to constantly use 100% of its processing power, 24 hours a day. This somewhat concerns me when it comes to temperatures, as I don’t want things to overheat while I’m away from the computer or at work. So, I plan on writing a script to have the server save the temperature readings into a text file so I can check on it periodically from a phone or another computer, and in the case of an emergency I can shut it down remotely.
If you think there’s anything missing in this guide, or if you think you have anything useful to add, or if you find any errors, let me know! I’m always open to input from others.