在特定情况下我不能
open
大文件。
我怀疑使用 ifort 的编译阶段可能有问题。
有什么解决办法吗?
open
读取fortran未格式化文件!rur/readr.f90
module readr
...
subroutine read_part(...)
...
icpu = cpu_list(i)
part_n = 30
npart_c = cursors(i)
open(unit=part_n, file=part_filename(repo, iout, icpu, mode), status='old', form='unformatted')
! Skip headers
call skip_read(part_n, 2)
read(part_n) npart
call skip_read(part_n, 5)
! Read position(3), velocity(3), mass
do idim = 1, 2*ndim+1
read(part_n) real_table(idim, npart_c:npart_c+npart-1)
end do
f2py
为 gfortran
和 ifort
#!/bin/bash
F2PY=f2py
f='readr.f90'
bn=$(basename "$f" .f90)
# (gfortran case)
FORT=gfortran
$F2PY -c -lgomp --f90exec=$FORT --f77exec=$FORT $f -m $bn --opt='-O3 -x f95-cpp-input'
# (ifort case)
FORT=ifort
$F2PY -m $bn -liomp5 --f90exec=$FORT --f77exec=$FORT --opt='-O3 -fpp -m64 -free' -c $f
#test.ipynb
...
from rur.readr import readr
readr.read_part(...)
我检查了这些:
gfortran
案例每次都很好,但是ifort
是个问题
如果我运行 python,而不是 jupyter,那么它运行良好
打开小文件就可以了
设置
ulimit -s unlimited
我在setting.json中增加了max_buffer_size: “jupyter.jupyterCommandLineArguments”:[
"--NotebookApp.iopub_msg_rate_limit=1000000000",
"--NotebookApp.max_buffer_size=10240000000"
]