littlebot
Published on 2025-04-03 / 1 Visits
0

【源码】基于C++和gRPC的任务分发和报告系统

项目简介

本项目是基于C++和gRPC的任务分发和报告系统。包含任务管理器、设备管理器、工作进程和报告进程等组件,用于分布式环境中的任务管理与调度。系统借助gRPC通信,支持任务动态分发、状态监控和结果报告,适用于对任务管理和调度效率有要求的场景。

项目的主要特性和功能

  1. 任务管理:通过gRPC和任务管理器通信,获取任务的目标模型信息、数据集路径和预处理/后处理插件。
  2. 任务分发:利用gRPC和服务端通信,接收并将任务分发给各个工作进程。
  3. 任务报告:工作进程定期向设备管理器发送包含任务状态、进度和结果的报告。
  4. 模型加载与推理:工作进程加载模型、处理输入数据、执行模型推理并获取输出结果。
  5. 预处理和后处理:运用自定义预处理和后处理模块处理图像数据,以适配不同模型的输入要求。
  6. 插件管理:通过动态链接库(DLL)加载和处理图像数据的预处理和后处理插件。

安装使用步骤

环境准备

  • 安装gRPC、C++编译器和所需依赖库(如OpenCV、MXNet等)。
  • 确保系统安装了build-essentialgitninja-buildccachelibopenblas-devcmake等工具。

编译插件

使用以下命令编译自定义的预处理和后处理插件: shell g++ -fPIC -shared custom.cpp -o libplugin.so $(pkg-config --cflags --libs opencv)

编译MXNet

  • 下载MXNet源代码: shell cd mxnet git checkout -b v1.6.x origin/v1.6.x git submodule update --init
  • 修改CMakeLists.txt文件,确保USE_CUDA设置为OFFUSE_CPP_PACKAGE设置为ON
  • 编译MXNet: shell mkdir build cd build cmake .. make

编译项目

编译项目源代码,生成可执行文件。

运行程序

运行生成的可执行文件,通过命令行参数或配置文件配置gRPC服务器地址、设备ID等。

注意:项目代码依赖多个文件和配置,实际使用时可能需参考具体项目文档或代码注释。

下载地址

点击下载 【提取码: 4003】【解压密码: www.makuang.net】