##はじめに
PARI/GPについては
https://pari.math.u-bordeaux.fr/pub/pari/manuals/2.3.5/users.pdf
の1.1 Introduction
が参考になります。
ここではDockerでPARI/GPを利用する方法について書きます。
##Dockerコンテナを起動
オプション-itでコンテナに入ることができます。
以下のようにgp
をつけることで、コンテナ起動直後にPARI/GPを起動します。
docker run -it pascalmolin/parigp-small gp
またpascalmolin/parigp-full
もありますが、今回はsmall
です。
以下のようにPARI/GPが起動します。
試しに1 + 1を計算しています。
GP/PARI CALCULATOR Version 2.11.4 (released)
amd64 running linux (x86-64/GMP-6.2.0 kernel) 64-bit version
compiled: Jul 8 2020, gcc version 9.3.0 (Alpine 9.3.0)
threading engine: single
(readline v8.0 enabled, extended help not enabled)
Copyright (C) 2000-2018 The PARI Group
PARI/GP is free software, covered by the GNU General Public License, and comes
WITHOUT ANY WARRANTY WHATSOEVER.
Type ? for help, \q to quit.
Type ?17 for how to get moral (and possibly technical) support.
parisize = 8000000, primelimit = 500000
? 1 + 1
%1 = 2
停止したいときは\q
コマンドを入力します。
? 1 + 1
%1 = 2
? \q
Goodbye!
再度コンテナに入るには、まず起動したいCONTAINER IDを見つけます。
docker ps -a
は停止しているコンテナも含めて、一覧を表示します。
docker ps -a
以下のように一覧が表示されます。
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
1831fe3cb55f pascalmolin/parigp-small "gp" 3 minutes ago Exited (0) About a minute ago
コンテナを再起動します。
docker restart 1831fe3cb55f
コンテナに入ります。
docker exec -it 1831fe3cb55f sh
##ファイル読み込み、書き込み
tmpディレクトリに移動し、そこにファイルを作ってみます。
/ # cd tmp
以下のようなtest.gp
を作成しました。
/tmp # cat test.gp
forprime(p = 1, 20, write("output.txt", p))
以下のようにgp
コマンドでPARI/GPを起動します。
/tmp # gp
ファイルを実行します。
? \r test.gp
PARI/GPを停止し、作成されたoutput.txt
を見てみます。
/tmp # cat output.txt
2
3
5
7
11
13
17
19
##参考記事
- Git hub
https://github.com/mastermic/pari-docker - PARI/GP user's guide
https://pari.math.u-bordeaux.fr/pub/pari/manuals/2.3.5/users.pdf