import socketserver
def find_vacant_port(port_base, trial_count):
"""find vacant port for forwarding,
starts with port_base and test at most trial_count ports.
if it cannot find, it raise OSError"""
for i in range(trial_count):
try:
ss = socketserver.TCPServer(('127.0.0.1', port_base + i), None)
# found one
ss.server_close()
return port_base + i
except OSError:
pass
raise OSError("cannot find vacant port")
2021年1月4日月曜日
python で空きポートを探す
localhostで接続待ちできる空いているポートを探す。
要するに、serverportを作ってみて成功したらクローズして返すだけ。
2020年12月14日月曜日
古いトラックパッドを新しいmacbookでつかう
最近のmacのドラッグ操作はデフォルトで押し込んでドラッグになっているが、古いトラックパッドではこれが使えない。3本指ドラッグの操作が、設定パネルのトラックパッドの部分にはなぜかない。
調べてみたらアクセシビリティのところにあった。。トラックパッドのところにも出してほしかった。。
2020年7月27日月曜日
emacs epg 設定
何が悪いのかわからないが、emacs のepgがうまく動かなくなっていた。minibufferでpassphraseを入力する部分がおかしくなるといういつもの症状。いろいろ調べて何故かコメントアウトされていた
(setf epa-pinentry-mode 'loopback)
を有効にしたら動いた。っていうかなぜこれまでこれがなくて動いていたのだ。何もわからん。
2020年7月25日土曜日
emacs build
なんか、space-emmacsがおかしくなったので、emacsをバージョンアップしてみた。26.3。
https://mac-ra.com/mac-emacs-2020/
の手順。自己署名もしてみた。スクリプト通りにやるだけ。ありがたい。
ちがった。こちらの手順だ
brew caskとかも試してみたけど、mini-bufferに入ったときに英語モードに戻る関数がつかえない。
2020年6月30日火曜日
Julia でデータフレームにCSV (というかTSV)を読み込む
なんかいろいろ二転三転してるらしく検索してでてくる方法がつかえなかったりしてこまる。
バージョンが1.0に到達していないからと言って、もうすこしなんとかしてほしいものだ。
import DataFrames
import CSV
df = DataFrame(CSV.File("MPIJL", delim=' ', header=["target", "type", "size", "time"]))
条件で行を絞り込み
t1 = df[df.target .== target, :] v8 = t1[t1.type .== "UInt8", :]なんかもっといい方法あるんじゃないのかなあ。
2020年6月22日月曜日
julia でオブジェクトの文字列表現を文字列として得る
JavaならtoString() 一発なのだが、Juliaの場合通常のデータ型が実装することを期待されているメソッドはprint()というやつで、基本的に出力してしまうようだ。なので、文字列を得るには、一度バッファに書き出させてそこから文字列を作る必要がある。
たぶん。
io = IOBuffer() print(io, ip) String(take!(io))もっといい方法がありそうだし、あってほしい。
2020年5月18日月曜日
abci でjulia mpi
JuliaのMPIバインドをABCIで動かせるか確認。
Juliaにはマルチノード対応があるが、それとは全く別の枠組みで、ただのメッセージパッシングライブラリが動くだけ。
.bashrcに以下を追記。
module load julia module load openmpi/3.1.6でjuliaを起動して、
import Pkg
Pkg.add("MPI")
ENV["JULIA_MPI_BINARY"]="system"
Pkg.build("MPI")
Pkt.add するとどうもMPIを独自にダウンロードしているようなので、システムのMPIを使わせるために
下の2行が必要らしい。
こんなふうにバッチファイルを書いて、
#!/bin/bash #$ -l rt_F=2 #$ -cwd source /etc/profile.d/modules.sh module load julia module load openmpi/3.1.6 mpiexec -n 2 -N 1 julia hello.jl
qsub -g XXXX test.shとかで起動。 ちなみにABCIではノード専有の rt_F以外の構成ではマルチノードジョブが動かない。なんでやねん。
登録:
投稿 (Atom)