项目简介
本项目是基于Python和MPI(Message Passing Interface)的分布式计算系统,提供高效、灵活的计算框架,用于处理大规模数据处理和计算任务。系统借助MPI实现多节点、多进程的并行计算,结合Python的易用性与高效性,实现任务分发、执行、监控和结果收集等核心功能。同时,支持自定义应用程序的加载和调度、链式任务处理以及多种后端资源管理策略。
项目的主要特性和功能
- MPI并行计算框架:采用MPI实现分布式计算,支持多节点、多进程的并行计算任务。
- 自定义应用程序支持:允许用户加载和调度自定义应用程序,实现任务的分发与执行。
- 链式任务处理:支持将任务按依赖关系组织成链式任务,实现任务有序执行。
- 多种后端资源管理策略:提供HTCondor、本地运行等多种后端资源管理策略,支持不同环境下的计算资源管理。
- 任务监控和日志记录:可监控任务执行情况,包括CPU使用率、内存使用情况等,并支持日志记录。
- 灵活的任务调度策略:支持自定义任务调度策略,满足不同计算需求。
安装使用步骤
环境准备
确保系统安装了Python、Boost.Python库以及MPI环境,设置必要的环境变量,如DistJETPATH
、JUNOTOP
和MPI相关环境变量。
下载项目源码
从项目提供的源码下载链接下载源码文件。
配置运行环境
运行setup
命令配置系统运行环境,指定$JUNOTOP
、$DistJETPATH
和$DistJET_TMP
等环境变量。
启动系统
使用start
命令启动系统,指定配置文件路径、服务器地址、应用程序模块、工作节点数量等参数。示例命令如下:
bash
start -c /path/to/config.ini --server localhost -m myapp --app-conf /path/to/app_config.ini -n 10 --backend condor
监控任务和调度情况
使用jobls
命令查询任务执行情况,显示运行中、成功、错误和总的任务数量;使用workerls
命令查询任务调度情况,显示工作节点的状态、运行任务号和最近一次心跳通信时间。
查看日志和结果
通过查看日志文件和结果文件,了解任务的执行情况和结果。
用户启动脚本
用户启动脚本需作为参数输入,系统调用脚本中的run()
方法来创建和载入作业流。以数据产生处理作业流(ProdApp)为例:
```python
from python.IScheduler import SimpleTaskScheduler
import ProdApp
def run(app_config_path): app = ProdApp.ProdApp("/junofs/users/zhaobq/DistJET_v0.3/Application/ProdApp/", "ProdApp", config_path=app_config_path) app.set_resdir("/junofs/users/zhaobq/DistJET_v0.3/ProdAppTest/res") app.set_scheduler(SimpleTaskScheduler) return [app] ```
定义/开发作业流
作业流需派生自IApplication
接口,并实现必要的split()
、merge()
、setup()
、uninstall()
方法。具体的作业流对象包含执行的指令、执行参数、输入数据、结果存放路径等,系统会依据这些信息判断作业流是否可执行,并进行拆分和执行。
下载地址
点击下载 【提取码: 4003】【解压密码: www.makuang.net】