JupyterLab ?
Jupyter Notebook より インターフェースが洗練されたものが出ていたようです。よく分かりません。
WSL 側にインストールした anaconda で動かしたものを、windows10 側のブラウザにアドレス・トークンをコピペして 実行しています。
JupyterLab Documentation — JupyterLab 0.18.4 documentation
Coarray Fortran Kernel で module の分離コンパイル
cell に module のみを置いて、コンパイル・オプションに -c を与えてオブジェクト生成のみとして shift-enter します。すると、その時に無理に実行しようとして失敗して出るエラーメッセージに、/tmp 以下に生成されたオブジェクトファイル名が出るので、次の cell のコンパイル・オプションにそのファイル名をコピペすれば、分離コンパイルが出来ます。
Jupyter の仕組みが分かれば、分離・分割コンパイルの仕組みを作れそうですが、幼女には難しそうw
エラトステネスの篩で、100 以下の素数を求めています。
%num_images: 1 %fcflags: -c module m_test implicit none contains function eratos(n) result(ires) integer, intent(in) :: n integer, allocatable :: ires(:) integer :: i, m(n) m = [0, (i, i = 2, n)] do i = 1, int(sqrt(real(n))) if (m(i) /= 0) m(i**2::i) = 0 end do ires = pack(m, m /= 0) end function eratos end module m_test
[proxy:0:0@HP8] HYDU_create_process (utils/launch/launch.c:75): execvp error on file /tmp/tmpc1vroea8.out (Permission denied)
Error: Command:
`/usr/bin/mpiexec -np 1 --disable-auto-cleanup /tmp/tmpc1vroea8.out`
failed to run.
[Coarray Fortran kernel] Executable exited with code 255
%num_images: 1 %fcflags: /tmp/tmpc1vroea8.out program test use m_test print '(10i4)', eratos(100) end program test
2 3 5 7 11 13 17 19 23 29 31 37 41 43 47 53 59 61 67 71 73 79 83 89 97
コマンドライン引数
- To control the number of images we have implemented a jupyter notebook "magic" for the form:
%num_images:
whereshould be replaced by a suitable (read small) positive integer.
top
- Controlling compilation
Additional "magics" have been implemented to control the compilation of the program. These are as follows:
%fcflags:
[ [ ... [ ]]]
Use this magic to pass flags to the fortran compiler, GFortran, via the caf compiler wrapper script. The caf script ensures propper compilation linking against OpenCoarrays.
%ldflags:[ [ ... [ ]]]
Specify flags to pass to the linker. This should rarely be necessary.
top
- Controlling arguments passed to compiled programs
The %args:
[ [ ... [ ]]] "magic" may be used to pass command line arguments to your program. In addition, quoting is respected, so you can pass arguments with spaces as well.
Coarray Fortran Kernel / OpenCoarray Install
Open coarray2.2.0 を install 後、Jupyter への coarray の統合は以下のページに従いました。
github.com
その他
Open coarray2.2.0 に team 機能のお試し版を統合しようと頑張りましたがうまくいきませんでした。gfortran のコンパイラとして働くところまでは行きましたが、cafrun で MPI 実行するところでうまくいきませんでした。
Binder というものもやってみたいのですが、わけわかめで意味不明です。