2

ノートブック内のジュピターノートブックのCPU優先度を低く設定する方法はありますか?例えば。コンピューティングサーバ上で長時間のパラメータ検索を実行しているときに、他の人がリアルタイムで作業しているノートブックの中でそのノートブック内で優先順位を設定します。jupyter/ipythonノートブック内の優先度/ nicenessを設定する

答えて

1

私はあなたが特定のノートブックを抹消する方法には気づいていない)サーバー全体を改ざんすることができると思います。

--------------------------------------------------------------- 
    !for pid in `pgrep -f jupyter`; do { renice -20 $pid; }; done 
--------------------------------------------------------------- 

9721 (process ID) old priority 19, new priority -20 
12449 (process ID) old priority 19, new priority -20 
25502 (process ID) old priority 19, new priority -20 

それとも、あなたはPythonでそれをしたい場合は、最初のサーバーを実行しているのリストを取得:

>>> from notebook import notebookapp 
>>> servers = list(notebookapp.list_running_servers()) 
>>> servers 
[{'url': 'http://localhost:8888/', 
    'base_url': '/', 
    'token': '5ea29b3...7e1fba5331ae', 
    'secure': False, 
    'pid': 9721, 
    'hostname': 'localhost', 
    'password': False, 
    'port': 8888, 
    'notebook_dir': '/home/paulos/work' 
}] 
他のノートブックは、個別のノートブックサーバプロセス上で実行している場合は、サブシェルからそれを行うことができます

必要に応じて、必要なもののリストをフィルタリングします。

pids = [_['pid'] for _ in servers if meets_condition(_)] 

次に呼び出すのsetpriority:

>>> from ctypes import cdll 
>>> libc = cdll.LoadLibrary("libc.so.6") 
>>> pids = [_['pid'] for _ in servers] 
>>> for pid in pids: 
     print("old priority for PID", pid, "is", libc.getpriority(0, pid)) 
     libc.setpriority(0, pid, 20) 
     print("new priority for PID", pid, "is", libc.getpriority(0, pid)) 

old priority for PID 9721 is 0 
new priority for PID 9721 is 19 
関連する問題