




个人介绍
您好!,我是华北电力大学学生。
技术能力:
熟练掌握Python/Java/C++等开发语言,熟悉[Web全栈/移动端/数据分析/机器学习等]领域开发,擅长使用[React/Spring Boot/Django/TensorFlow等框架],具备独立完成项目架构设计及核心模块开发的能力。
项目经验:
主导过如:智能校园管理系统、AI图像识别工具、电商数据分析平台等),负责需求分析、技术选型与代码实现。
团队协作:
熟悉敏捷开发流程,能高效协调前后端、UI设计等成员协作,注重代码规范与文档管理,确保项目按时交付。过往项目均通过Git进行版本控制,代码可维护性强。
服务承诺:
以解决需求为核心,提供清晰的技术方案沟通,支持需求迭代与后期维护。如果您有[Web/App/算法/系统开发等]需求,欢迎随时联系,期待用我们的技术为您的创意赋能!
工作经历
2024-08-30 -至今华北电力大学大创主程
作为主程序员,我会全程跟进项目需求,定期同步开发进度,确保每个环节透明可控。技术难点由我牵头攻关,遇到问题绝不推诿,优先保障项目交付质量。代码开发后我会进行单元测试和压力测试。针对项目中涉及的陌生技术栈(如新算法、API接口),提前搭建Demo验证可行性。
教育经历
2024-08-30 - 华北电力大学电气工程及其自动化本科
资质认证
技能

面向的行业和业务场景 该软件主要面向对高性能计算和任务处理有较高要求的行业,具体业务场景及相关行业如下: 网络数据处理:在通信、互联网行业,用于处理高速网络数据包,例如网络设备(如路由器、交换机)中的数据包转发、过滤和分析等操作。 数据存储与处理:在云计算、大数据行业,对持久内存(PMEM)数据进行高效处理,比如数据的读写、更新和持久化操作。 金融交易处理:在金融行业,处理大量的实时交易数据,保证交易的快速响应和高吞吐量。 功能模块划分 1. 初始化模块 DPDK 初始化:通过 init_dpdk 函数完成 DPDK(Data Plane Development Kit)的初始化,配置系统资源和参数,为后续的网络数据包处理做好准备。 内存池初始化:init_mempools 函数为每个 NUMA 节点创建 PMEM 内存池和 MBUF 内存池,用于任务对象和数据包的内存分配。 2. 任务管理模块 任务提交:submit 函数提供了任务提交接口,用户可以将自定义的处理函数、数据指针和相关参数封装成任务,并提交到指定的分片队列中。 任务队列管理:使用 QueueShard 结构体管理多个任务队列,每个队列使用无锁队列 boost::lockfree::queue 实现,提高并发性能。 3. 任务处理模块 工作线程:worker_loop 函数作为工作线程的主循环,从队列中批量取出任务进行处理,并记录性能数据。 任务批量处理:process_batch 函数对批量任务进行处理,根据数据大小和支持的 SIMD 指令集,选择合适的处理方式。 4. 动态负载均衡模块 负载检查:check_rebalance 函数定期检查队列负载,判断是否需要进行负载均衡。 负载均衡算法:rebalance 函数实现了负载均衡算法,将任务从负载高的分片迁移到负载低的分片。 5. 性能监控模块 性能记录:PerfMonitor 类用于记录每个核心的处理任务数和消耗的时钟周期。 性能统计:print 函数打印性能统计信息,包括每个核心的处理任务数、消耗的时钟周期和总吞吐量。 6. DPDK 数据包处理模块 DPDK 轮询线程:dpdk_poller 函数作为 DPDK 轮询线程,从网络端口接收数据包,并将其封装成任务提交到任务队列中。 对使用者来说具体实现的功能 高性能任务处理:通过多线程、无锁队列和 SIMD 指令集等技术,实现了高效的任务处理,提高了系统的吞吐量和响应速度。 动态负载均衡:根据队列负载情况,自动调整任务分配,避免某些核心负载过高,提高了系统的整体性能和稳定性。 网络数据包处理:支持 DPDK 网络数据包的接收和处理,方便用户进行网络数据处理相关的开发。 性能监控:提供了性能监控功能,用户可以实时了解系统的运行状态和性能指标。 技术选型和架构特点 技术选型 DPDK:用于高速网络数据包的处理,提供了高效的网络 I/O 操作和数据平面处理能力。 SIMD 指令集:利用 A*512 或 A*2 指令集对数据进行向量化处理,提高了数据处理的并行度和效率。 无锁队列:使用 boost::lockfree::queue 实现任务队列,避免了传统锁机制带来的性能开销,提高了并发性能。 多线程编程:使用 std::jthread 创建多个工作线程和轮询线程,实现任务的并行处理。 架构特点 分片架构:将任务队列划分为多个分片,减少了线程间的竞争,提高了并发性能。 线程局部缓存:每个核心使用线程局部缓存(ThreadLocalCache),减少了内存分配和释放的开销。 动态负载均衡:通过定期检查队列负载,实现任务的动态迁移,保证了系统的负载均衡。 模块化设计:将不同的功能模块进行分离,提高了代码的可维护性和可扩展性。
