diff --git a/demo/demo.py b/demo/demo.py index aa3c582..3663b92 100644 --- a/demo/demo.py +++ b/demo/demo.py @@ -3,24 +3,24 @@ from gpu_queue import JobSubmitter job_array = [ - 'python -c \'import os, time;print("GPU num utilized",os.environ["CUDA_VISIBLE_DEVICES"]);time.sleep(3.1)\'', - 'python -c \'import os, time;print("GPU num utilized",os.environ["CUDA_VISIBLE_DEVICES"]);time.sleep(2.3)\'', - 'python -c \'import os, time;print("GPU num utilized",os.environ["CUDA_VISIBLE_DEVICES"]);time.sleep(1.5)\'', - 'python -c \'import os, time;print("GPU num utilized",os.environ["CUDA_VISIBLE_DEVICES"]);time.sleep(0.5)\'', - 'python -c \'import os, time;print("GPU num utilized",os.environ["CUDA_VISIBLE_DEVICES"]);time.sleep(3.6)\'', - 'python -c \'import os, time;print("GPU num utilized",os.environ["CUDA_VISIBLE_DEVICES"]);time.sleep(1.1)\'', - 'python -c \'import os, time;print("GPU num utilized",os.environ["CUDA_VISIBLE_DEVICES"]);time.sleep(1.5)\'', - 'python -c \'import os, time;print("GPU num utilized",os.environ["CUDA_VISIBLE_DEVICES"]);time.sleep(3.123)\'', - 'python -c \'import os, time;print("GPU num utilized",os.environ["CUDA_VISIBLE_DEVICES"]);time.sleep(2.23)\'', - 'python -c \'import os, time;print("GPU num utilized",os.environ["CUDA_VISIBLE_DEVICES"]);time.sleep(0.15)\'', - 'python -c \'import os, time;print("GPU num utilized",os.environ["CUDA_VISIBLE_DEVICES"]);time.sleep(0.325)\'', - 'python -c \'import os, time;print("GPU num utilized",os.environ["CUDA_VISIBLE_DEVICES"]);time.sleep(3.12123)\'', - 'python -c \'import os, time;print("GPU num utilized",os.environ["CUDA_VISIBLE_DEVICES"]);time.sleep(1.123)\'', - 'python -c \'import os, time;print("GPU num utilized",os.environ["CUDA_VISIBLE_DEVICES"]);time.sleep(3.1123232)\'', + 'python3 -c \'import os, time;print("GPU num utilized",os.environ["CUDA_VISIBLE_DEVICES"]);time.sleep(3.1)\'', + 'python3 -c \'import os, time;print("GPU num utilized",os.environ["CUDA_VISIBLE_DEVICES"]);time.sleep(2.3)\'', + 'python3 -c \'import os, time;print("GPU num utilized",os.environ["CUDA_VISIBLE_DEVICES"]);time.sleep(1.5)\'', + 'python3 -c \'import os, time;print("GPU num utilized",os.environ["CUDA_VISIBLE_DEVICES"]);time.sleep(0.5)\'', + 'python3 -c \'import os, time;print("GPU num utilized",os.environ["CUDA_VISIBLE_DEVICES"]);time.sleep(3.6)\'', + 'python3 -c \'import os, time;print("GPU num utilized",os.environ["CUDA_VISIBLE_DEVICES"]);time.sleep(1.1)\'', + 'python3 -c \'import os, time;print("GPU num utilized",os.environ["CUDA_VISIBLE_DEVICES"]);time.sleep(1.5)\'', + 'python3 -c \'import os, time;print("GPU num utilized",os.environ["CUDA_VISIBLE_DEVICES"]);time.sleep(3.123)\'', + 'python3 -c \'import os, time;print("GPU num utilized",os.environ["CUDA_VISIBLE_DEVICES"]);time.sleep(2.23)\'', + 'python3 -c \'import os, time;print("GPU num utilized",os.environ["CUDA_VISIBLE_DEVICES"]);time.sleep(0.15)\'', + 'python3 -c \'import os, time;print("GPU num utilized",os.environ["CUDA_VISIBLE_DEVICES"]);time.sleep(0.325)\'', + 'python3 -c \'import os, time;print("GPU num utilized",os.environ["CUDA_VISIBLE_DEVICES"]);time.sleep(3.12123)\'', + 'python3 -c \'import os, time;print("GPU num utilized",os.environ["CUDA_VISIBLE_DEVICES"]);time.sleep(1.123)\'', + 'python3 -c \'import os, time;print("GPU num utilized",os.environ["CUDA_VISIBLE_DEVICES"]);time.sleep(3.1123232)\'', ] * 20 -J = JobSubmitter(job_array, [0, 1, 2], wait_second=0, first_time_wait_second=0) +J = JobSubmitter(job_array, [0], wait_second=0, first_time_wait_second=0) worker = J.submit(block=False) time.sleep(10) -# launch_server(8080) +J.app.launch_server(8080) worker.join() diff --git a/gpu_queue/main.py b/gpu_queue/main.py index 673e64e..87e9f1b 100644 --- a/gpu_queue/main.py +++ b/gpu_queue/main.py @@ -6,17 +6,14 @@ from queue import Queue, Empty from subprocess import run from threading import Lock, Thread - -import uvicorn from loguru import logger - from gpu_queue.utils import wait_thread, threaded, _SingletonMeta try: from stdout_writer import log_writer except ModuleNotFoundError: from .stdout_writer import log_writer -from gpu_queue.web import app +from gpu_queue.web import App locker = Lock() @@ -83,7 +80,7 @@ def __init__( self.first_job_wait_second = first_time_wait_second or wait_second self.cur_job = 0 - app.submitter = self + self.app = App(self) def __submit_jobs(self): @@ -177,7 +174,3 @@ def _print(result_dict): k = " ".join(re.split(" +|\n+", k)).strip() print(f"Job:\n{k}") print("result_code", v) - - -def launch_server(port: int = 8080): - uvicorn.run(app, host="0.0.0.0", port=int(port)) diff --git a/gpu_queue/static/index.html b/gpu_queue/static/index.html new file mode 100644 index 0000000..cf7b15c --- /dev/null +++ b/gpu_queue/static/index.html @@ -0,0 +1,74 @@ + + +
+