前提
Docker上に構築されたJupyterLab環境を使用しています。
実現したいこと
JupyterLab環境上でipynbを実行し、
入力CSVその1→計算結果CSVその1
入力CSVその2→計算結果CSVその2
...
と多数のCSVファイル(数万ファイル程度)を逐次計算するプログラムを実行しています。
計算に使用しているライブラリに既知のバグが存在し、使用しない変数をdelしてgc.collect()等を実行してもメモリが解放されません。
開発者からはメモリのリークが起きた際には適宜カーネルの再起動をするしかなく、すぐに対応するのは難しいとのことでした。
しかし、メモリリークしたタイミングで都度手動でカーネルを再起動するのはファイルの数が多いため現実的ではありません。
そこでプログラムの実行中にカーネルの再起動を何らかの方法で自動化することができないか検討しています。
試したこと
「jupyter カーネル 再起動 自動化」等で検索しましたが、目的の情報を得ることができませんでした。
pyautogui等でクリック操作を自動化することも検討していますが、可能であればプログラム上で完結させることができればと考えております。
おそらくかなり特殊なケースであると思いますが、知恵を貸していただけますと幸いです。
補足情報(FW/ツールのバージョンなど)
Windows11 Home
Docker Desktop 4.7.0
Ubuntu 20.04 (WSL2)
JupyterLab 3.1.14
解決方法
TakaiY様の提案を参考に、以下のようなシェルスクリプトを作成してpythonファイルを繰り返し実行することで解決いたしました。
bash
1#!/bin/bash 2 3for i in {1..9} 4do 5 python main.py ${i} 6done
python
1import sys 2 3i = sys.argv[1] 4filename = "inputcsv-"+i+".csv" 5計算に用いた関数(filename) 6
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
退会済みユーザー
2022/04/17 09:33