{"repo":"Dramwig/FlowLine","free":true,"listed":false,"github":"https://github.com/Dramwig/FlowLine","clone":"git clone https://github.com/Dramwig/FlowLine.git","description":"Automated tool for running Python programs in a streamlined manner","language":"JavaScript","stars":393,"topics":["python","automation","experiment-management","gpu-monitoring","machine-learning"],"license":"Apache-2.0","category":"machine-learning","readme_excerpt":"中文 English FlowLine 是一个用于 GPU资源管理 和 并发指令流调度 的自动化系统，支持 命令行界面（CLI） 和 Web 图形界面（GUI） 两种交互方式，适用于多任务实验、深度学习训练或高并发计算环境。 📘 API 使用说明 ：详见 API文档 🧩 系统概要设计 ：详见 概要设计 🏗️ 系统架构详解 ：详见 架构说明 本系统的设计初衷在于替代传统的手动 GPU 监控与命令执行流程，从而提升实验效率。在传统方式下，用户需持续关注 GPU 的显存占用与利用率，并可能因 CUDA 内存不足（CUDA Out of Memory）而中断任务，需要手动启动或终止 Python 脚本。这种操作在多任务实验场景中尤为繁琐。本项目通过自动化管理机制，提升了实验效率与资源利用率。 核心特性 实时 GPU 状态监控：自动检测可用 GPU 数量、显存占用、进程信息等、并根据自定义优先函数排序； 报错自动处理：错误中断后自动重新入队而解决 CUDA Out of Memory 等非程序BUG； 命令调度与资源控制：支持配置每条命令所需 GPU 数量、显存下限、最大并行数等条件； 动态调控机制：可手动终止或重启进程，实现任务队列灵活管理； 多任务并发执行：支持任务优先级队列、失败重试等策略，适用于批量实验运行； 双重交互入口：命令行接口适合在 Linux 服务器上进行脚本化控制与批量部署，Web 界面适合进行任务的可视化查看、状态监控与实时干预。 Updates 2025.09.09: 新增用户自定义 GPU 优先级排序功能，通过 user cmp 参数传入自定义排序函数，详见 example1 cli.py 示例。 🚀 快速使用指南 更精炼的， example.sh 给出了所有示例。 🖥️ 使用命令行接口（CLI 模式） 1. 安装方式 你可以将 flowline 文件夹拷贝到项目的根目录下直接引用，也可以通过以下方式将其安装到你的 Python 环境中： 从pip安装 或者从源代码安装 注：请确保你已安装 pandas 、 psutil 、 openpyxl 等 requirements.txt 内的基本依赖。如果只用 CLI 方式可以不用安装 flash 相关包。 2. 编写任务控制表 系统通过一个列表文件（ .xlsx 、 .csv 或 .json 格式）来定义任务参数， 这是所有任务的唯一输入方式 。文件中的每一行代表一个独立任务，每一列对应一个参数项，将自动映射为命令行中的 --key value 格式。 示例和说明 示例文件： test/example1 todo.xlsx 、 test/example1 todo.csv 、 test/example1 todo.json ， 可以通过运行 test/task builder.py 示例构造程序构造。 name lr batch\\ size run\\ num need\\ run\\ num cmd --------- ----- ----------- -------- -------------- ----------- baseline1 0.01 64 0 1 train\\ main baseline2 0.001 128 0 2 train\\ alt 字段说明： run num ：当前任务已执行次数，由系统自动维护（默认值为 0 ）。 need run num ：期望执行的总次数，系统将根据此值自动控制重复运行（默认值为 1 ）。 name ：任务名称，用于标识任务记录","default_branch":null,"files":null,"tree":[],"storefront":"/r/Dramwig","claimed":false,"request_supported":{"post":"https://gitbuyer.com/r/Dramwig/FlowLine/request-supported","requests":0},"note":"indexed from public GitHub; nothing is for sale on this page. Clone it from GitHub. Paid listings live at /search."}