Bus errorとSegmentation faultに困ったら見るブログ

物理の研究者による日々の研究生活のメモ書きです ( python/emacs/html/Japascript/シェルスクリプト/TeX/Mac/C言語/Linux/git/tmux/R/ポケモンGO)

【Rocky linux】chronyを使った時刻の設定方法

Rocky Linux 8 : NTP : サーバーの設定 : Server World

【Rocky Linux 9】06.chrony設定 #RockyLinux - Qiita

Rocky Linux 8 NTP時刻同期( Chrony )クライント / サーバー 設定 - インフラエンジニアのメモ帳


このあたりを見ながら設定すればOK

特に一番上のserver-worldさんは、いろんなことがまとめられてるので便利

やることは、

  • dnfでchronyというパッケージをインストールする
  • 適切に設定する
  • サービスを起動する

でOK

設定の部分は場合によりけりなので省略・・・

【html】moinmoin wikiの文法メモ

hpcportal.imc.tut.ac.jp

このページが見やすくまとめられている

{{{#!highlight python
def hello():
    print "Hello World!"
}}}

特に便利なのはこれ

このwikiのページの中に、pythonとかshellとかtexのコードを書きたい時に使う
右上のpythonをその言語に置き換えると、予約語を適当に色をつけてくれる

左端にページ番号も出してくれるので便利

特に言語がなければ空白でもOKだったと思う

{{{#!highlight
def hello():
    print "Hello World!"
}}}

【HTCondor】使用するcpuを投入時の状態に応じて動的に変更する

3~8個のcpuのうち空いているものを使いたい時は以下のように書けばいいらしい

  executable = foo.exe
  # Only interested in slots with 3 to 8 CPUs if they
  # are static or dynamic.  If a slot is partitionable,
  # make sure it has at least 3 cpus.
  requirements = Cpus >= 3 && (PartitionableSlot || Cpus <= 8)
  # Request up to 8 cpus out of a partitionable slot.
  request_cpus = Cpus > 8 ? 8 : Cpus
  queue

(HTCondor v8.4+ では動くと書いてあるけど、テストはしてないっす)

【Rocky linux】dnfでパッケージをインストールする方法

自分が使ったことがあるlinuxDebianとかUbuntuくらい
Rocky linuxは初めて

パッケージのインストール方法も上記のものとは違って少し面食らった

以下のページを参考にした
dnf コマンドの使い方メモ #Linux - Qiita

dnf install tmux

使ってないけどメモ

# インストール済みのパッケージで更新可能なアップデートがあるか確認
dnf check-update

# パッケージの更新
dnf upgrade tmux

# インストールされたパッケージ一覧を見たい
dnf list --installed

【HTCondor】ジョブがHOLDになったときに詳細な理由を調べたい時、ジョブの現状を知りたい時

一番簡単なの

condor_q

ただ、これだけだと全容が掴めないし、他のユーザーのジョブも見れないことがある(HTCondorのversionによって変わる)ので

もっと詳しくみたい時

condor_q -all -nobatch

が便利

表示される項目の説明

  • ID ジョブのID、condor_rmでジョブを止めるときとかに使用する
  • OWNER 誰が投げたか
  • SUBMITTED 投稿時間
  • RUN_TIME どれくらい走ってるか
  • ST 今の状態 Iはidleでまだ走っていない、Rはrunで走ってる、Hはholdで走ってたけどなんかで止まった
    • Hになったときの理由を調べるのが割と難しい、1つの方法はlogファイルを見てそのジョブに何が起こったか把握する方法
  • PRI priority? 自分は設定してないのでわからない
  • SIZE メモリーの使用量だと思う
  • CMD コマンド、どういうコマンドを投稿したか
    • CMDが長い場合切れて表示される、全部見たい時は condor_q -all -nobatch -w とする (wide)

ジョブがholdになったときの理由を調べる方法

1つの方法はlogファイルを見てそのジョブに何が起こったか把握する方法

もう1つは、better-analyzeオプションを使ってジョブをみる

condor_q -better-analyze 590819

590819 にはcondor_qで調べたジョブIDを入れる

これで、ジョブが投げられた時の設定や今の状態の詳細が見れる
投げた時に設定されたcpu数やメモリー数が見れる
それに対応する計算ノードがあったかどうかもわかる、もしcpuの数が載ってるcpuよりも多い場合はずっとidleで止まると思うけどそれがここでわかる

あとはholdになったときもここでエラーが見れる

【HTCondor】投稿するサブミットファイルの書き方例

サブミットファイルの例はHTcondorの公式ページに載ってる

Submitting a Job — HTCondor Manual 24.2.1 documentation

# Example 1
# Simple HTCondor submit description file
# Everything with a leading # is a comment

executable   = myexe
arguments    = SomeArgument

output       = outputfile
error        = errorfile
log          = myexe.log

request_cpus   = 1
request_memory = 1024M
request_disk   = 10240K

should_transfer_files = yes
when_to_transfer_output = on_exit

queue
  • executable に実行ファイルを書く、相対パスでも絶対パスでも大丈夫なはず
  • arguments は実行ファイルにオプションとか引数がある場合は、こっちに書く
  • outputは実行したときの標準出力がここにまとめられる
  • errorは実行したときの標準エラーがここにまとめられる
  • logは実行時のログが残る、いつからいつまで走っていたか、どのnodeで走っていたか、どういうエラーがholdになったか、メモリやディスクの使用率など
  • request_cpus request_memory request_disk は使用するcpuやメモリーサイズなどが選べる、その条件に見合ったnodeがなければジョブは走らない
    • 自分はcpuとmemoryはよく指定するけど、diskは指定したことない
  • should_transfer_files when_to_transfer_output は、計算ノードのホームディレクトリが共有されてないときとかに、計算結果や入力ファイルをマスターノードから転送して走らせる設定
    • 自分でもこれを使おうとしたことはあるけどうまくできなかった
  • queue はジョブを投げるコマンド、これが2つあると2回投げる
    • 少し設定を変えて投げたい時は
arguments = setting1
queue
arguments = setting2
queue

みたいにする

これ以外に便利なものとしては

Universe = vanilla
他にlocalとかあるけど、とりあえずvanillaで良いと思う
それぞれの違いは
Choosing an HTCondor Universe — HTCondor Manual 24.2.1 documentation


他に複数のジョブを投げる場合に、outputとerrorを分離したいときは以下のようにすると良い

Executable      = hello.py
Output          = OUTPUT/hello.out.$(Cluster).$(Process).txt
Error           = OUTPUT/hello.error.$(Cluster).$(Process).txt
Log             = OUTPUT/hello.log.$(Cluster).$(Process).txt
Arguments = 
Queue
getenv=True

としておくと、実行しているターミナルの環境変数などがジョブに渡されるので便利
とりあえず書いておくと良い
ただ、新しいHTCondorでこの設定は使えなくなったとどこかでみた・・・ デバッグするときに問題の切り分けがしにくくなるとか
condor_submit — HTCondor Manual 24.2.1 documentation

【iPhone】zoomに接続した時にマイクをミュートしたい

iPhoneを新しくしたので、zoomに接続時に毎回

  • マイクのミュートが解除されて接続される
  • 音声を繋ぐかどうか確認される

ということが起こっていて、かなり煩わしいです・・・

前はできていたのになんでできなくなったのかわからなかったんですが以下の記事を見てみてわかりました

zoom-support.vcube.com

やるべきことはzoomにログインすることです
その上でzoomアプリの詳細設定で

  • ミーティング → 「オーディオを自動で接続」と「マイクをミュート」

の2つをチェックすればいいっぽいです