Spaces:
Paused
Paused
| import subprocess | |
| import time | |
| import os | |
| def launch(shell_path, cuda_id, output): | |
| os.makedirs(output, exist_ok=True) | |
| print(os.path.join(output, 'output.txt')) | |
| print(shell_path, cuda_id, output) | |
| with open(os.path.join(output, 'output.txt'), 'w') as f: | |
| process = subprocess.Popen( | |
| ["zsh", shell_path, cuda_id, output], stdout=f, stderr=f | |
| ) | |
| return process | |
| def check_alive(process, tolerant=100): | |
| i = 0 | |
| while i < tolerant: | |
| return_code = process.poll() | |
| if return_code is not None: | |
| print(f"The AD algorithm completed with return code {return_code}.") | |
| process.kill() | |
| return | |
| elif i % 5 == 0: | |
| print(f"The AD algorithm is still running, remaining tolerant {tolerant - i}.") | |
| time.sleep(1) | |
| i += 1 | |
| process.kill() | |
| print("The AD algorithm process is killed.") |