GIMPSの始め方

[GIMPS](https://www.mersenne.org/) は、メルセンヌ素数の探索を行っているグリッドコンピューティングプロジェクトです。20年以上の歴史を持ち、いくつもの未知のメルセンヌ素数を発見するという大きな成果を上げているプロジェクトです。このGIMPSに参加する手順は以下の通りです。なお、当然のことですがインストール、実行するのは自分が管理しているコンピュータに限ってください。会社のPCで実行することは就業規則などに抵触する可能性があります。

## アカウントの取得と設定

アカウントを取得せず匿名で参加することもできます。その場合はこの項目は飛ばしてください。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/86075/b4bcc695-ece6-1e51-37ba-f043429b93a0.png)

GIMPS のトップページにアクセスし、***Create Account*** をクリックします。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/86075/8d8787da-a77c-474f-84b6-8a3f3371f2be.png)

必要項目を入力します。必須なのは ***Login*** と ***Password*** だけです。これらは GIMPS のサイトにログインする際と、クライアントの設定に使用します。***Public Name*** はランキング等で表示されるときに使用されます。未設定だと ***ANONYMOUS*** と表示されます。

利用規約を確認し、同意したらチェックをいれいます。最後に reCAPTCHA にチェックを入れ、***Create Account*** をクリックしてアカウント作成完了です。

## クライアントのダウンロードと実行

クライアントは https://www.mersenne.org/download/ からダウンロードします。Windows、macOS、Linux、FreeBSD用の各クライアントが提供されています。ここでは Windows-64bit クライアントをダウンロードします。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/86075/546f23c0-be6d-fd90-541e-605533d9636d.png)

ダウンロードした p95v298b6.win64.zip を展開します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/86075/e8dbf63c-5105-e801-3c93-2692febdb248.png)

***prime95.exe*** を実行します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/86075/44d1e37c-ee8d-359e-2acb-bae9a123a174.png)

***Just Stress Testing*** は GIMPS には参加せずストレステストのためのモードです。GIMPS に参加しますので、***Join GIMPS!*** をクリックします。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/86075/9148696e-f51e-9cf1-8490-c3e845099c14.png)

***Use PrimeNet to get work and report results*** にチェックを入れ、***Optional User ID*** に、取得したアカウント名を入力します。匿名で参加する場合は ***Optional User ID*** の入力は不要です。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/86075/f9aa16ab-0447-8293-f535-baa03af740c3.png)

CPU 設定になりますが、ひとまずそのままで問題ありません。***OK*** をクリックします。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/86075/d8a34808-d067-db6f-f561-9a3d3a8aa4f8.png)

Worker 設定になりますが、こちらもひとまずそのままで問題ありません。***OK*** をクリックします。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/86075/2059ec5c-7532-0a8a-e38d-e83d141e190c.png)

PrimeNet よりワークデータを取得し、計算が始まります。

## リザルトの確認

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/86075/6fbd7f17-e504-282b-5321-d2b622db5d25.png)

GIMPS のサイトにログインすると、***Create Account*** だったところが ***Account/Team Info*** に変わります。***My Account*** には以下のサブメニューがあります。

***MyTeam*** はチーム参加している場合のメニューです。ここでは説明を省略します。

### Account Setting

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/86075/0a6e3b82-e52f-7725-47c4-53565454842c.png)

アカウントの各種設定を変更できます。

### Summary

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/86075/e37d36bc-e8ee-4ca1-7200-0d13136a8e94.png)

これまでの活動内容が表示されます。***Show detailed stats for my account*** をクリックすると、ワークタイプ別の計算量とランキングが表示されます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/86075/fc21480c-14e8-6efe-67de-bce89cd4b638.png)

ランクは他の参加者との比較順位です。ワークデータ/ワークタイプごとに計算量が違うため、比較するために GHz-days に換算して比較されます。

### CPUs

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/86075/8d4853c1-1333-eae8-9ebf-05d2c5003303.png)

コンピュータ別の活動状況が表示されます。

クライアントの設定時に、コンピュータの識別名を設定すると、その名前で表示されます。

### Assignments

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/86075/6aac10c9-0d2b-6431-d162-4ed8ef554fa1.png)

現在割り当てられているワークデータと進行状況が表示されます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/86075/f87b1596-4d43-3683-7d2b-ea05e3b6ae9c.png)

exponent のリンクをクリックすると、ワークデータの詳細な履歴が表示されます。

### Results

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/86075/4304fb98-2bf9-ce2f-0a6d-6b054e3969f8.png)

計算が完了したワークデータの一覧が表示されます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/86075/4bb62122-d030-b87e-2d3d-d93758343a87.png)

Assignments と同様に exponent のリンクをクリックすると、ワークデータごとの詳細な履歴が表示されます。

## ワークタイプ

GIMPS ではメルセンヌ数を素数判定するのにリュカ・レーマー法を用います。一般に巨大な整数を素因数分解するのは困難ですが、リュカ・レーマー法は非常に高速に行うことができます。しかし、巨大なメルセンヌ数が相手となるとリュカ・レーマー法を用いても膨大な計算時間がかかります。そこで GIMPS ではあらかじめ前処理を行うことで、明らかにメルセンヌ素数とならない候補を振るい落としています。また、計算の信頼性のために同じワークデータを別のコンピュータにも割り当てることでダブルチェックも行っています。どのような種類のワークタイプがあるかは [PrimeNet Assignment Work Types](https://www.mersenne.org/worktypes/) にまとまっています。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/86075/095e709a-a5d4-8030-5547-1d1df3c0c3bc.png)


このようにワークデータにはいくつもの種類があり、ワークタイプによって計算時間が大きく変わってきます。計算量の少ないワークデータですと数時間で完了するものもありますし、巨大なワークデータでは何十日もかかることもあります。ワークデータの割り当ては PrimeNet が自動で行うのですが、遅いコンピュータに巨大なワークデータが割り当たるといつまでたっても計算が終わらないことになります。そこで、クライアント側でどのワークタイプを計算したいかを設定することもできます。メニューの ***Test*** - ***Worker Windows*** - ***Type of work to get:*** です。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/86075/d2efebb3-9ee2-4d8b-7808-a28440f8ca31.png)

デフォルトでは ***Whatever makes the most sense*** となっていて、クライアントがCPUの種類に応じて自動的に適切なワークタイプを選択してくれるようになっています。通常はこのままにしておいて問題ありません。