基于压缩算法的tile64多核处理器性能研究 马斯 朱科军 章红宇 中国科学院高能物理研究所 2011.07.01
Outline 研究计划要点及执行情况概述 研究工作主要进展和阶段性成果 下一阶段工作计划
研究计划要点 研究新型的粒子物理实验DAQ系统架构,建立基于高性能64核处理器芯片TILE64的处理平台,并进行软、硬件开发。软件部分主要内容是研究系统在多核处理器上的任务分配,以达到最高的效率。 预期目标:建立基于多核处理器的DAQ平台,实现3Gbps 以上的数据传输及处理,实现多核处理的优化配置。 具体的核心指标有: 单片处理器接收 > 3Gbps的数据输入 在3Gbps数据率条件下进行实时数据处理
研究计划执行情况 任务书研究计划: 目前计划完成情况: 2008.9-2009.8 ~2009.7 购买设备,并进行搭建平台的准备工作 2009.9-2010.8 实现TILE64 为核心的测试系统,进行系统性能的初步测试,编写软件进行CPU 间的任务平衡,实现两核运行 2010.9-2011.8 数据获取和处理程序编程,根据算法实现并行处理,具备系统级并行处理能力 2011.9-2012.8 编写软件,实现在3Gbps 的数据吞吐处理能力下进行数据的算法处理,并给出其它测试指标 目前计划完成情况: ~2009.7 完成设备购买和实验平台搭建 按计划完成 ~2010.8 完成多核开发培训、软件升级、技术文档阅读,多核系统并行程序开发的学习 2010.9-2011.4 基于多核处理器开发板,编写测试软件,实现了多核运行 开展了各项系统性能测试,进行了压缩算法、数据传输效率的研究; 基本按计划完成
基于嵌入式多核处理器的 数据传输和处理平台 硬件设备 Tilera Tile64 多核处理器开发板(The TILExpress card) integrate the Tile Processor, multiple I/O interfaces, expandable memory DELL 服务器(DELL PowerEdge SC440 Server) 英特尔奔腾双核处理器 E2180, 2GHz/1MB二级缓存/800MHz前端总线 Tile64处理器开发板插在DELL服务器主板PCIe插槽上 软件开发环境 Tile64 Linux version 2.6.26.7 多核系统集成开发环境(MDE):MDE-2.1.0.98943 DELL CentOS release 5.2 (Final) ;Linux version 2.6.18-92.el5
TILExpress Card Tilera Tile64 Multi-core Processor I/O Interfaces 2 XAUI, 2 PCIe, 2 GbE DDR2 Memory Speed 800MHz Processor Frequency 700MHz Number of Tiles 64 TILExpress Card
Tile64多核处理器简介 64 identical processor cores (tiles) interconnected with Tilera's iMesh™ on-chip network. Each tile is a complete full featured processor including integrated L1 & L2 cache and a non-blocking switch that connects the tile into the mesh. Each tile can independently run a full operating system, or multiple tiles taken together can run a multi-processing OS like SMP Linux. The TILE64 Processor is programmable in ANSI standard C and C++ Tilera's Multicore Development Environment (MDE)
研究工作主要进展和阶段性成果 系统性能测试 I/O性能测试 GbE性能测试 PCIe通道性能测试 基于压缩算法的tile64处理性能测试
I/O性能测试 - GbE 单独测试多核处理器板千兆网络性能 数据传输方式: 带宽测试结果如下: DELL服务器千兆网口,经过千兆交换机,连接到多核开发板千兆网口; 发送64Kbyte大小的数据包; TCP/IP协议 带宽测试结果如下: 发包速度:55MB/s 收包速度:36MB/s
I/O性能测试 – PCIe通道 服务器通过PCIe通道向板卡中传入数据 Tilera MDE API:Zero-Copy Command Queues 主要功能:允许高带宽的PCIe用于发送或接收缓冲区数据而不需要任何内存拷贝开销。 测试结果: 发包速度:110MB/s 收包速度:245MB/s
I/O性能测试 – PCIe通道 zero copy command queue 的带宽随着队列缓冲区的增大而增大。 由于Tile Linux页大小为64KB,因此测试中,buffer size 最大不能超过64KB。 当buffer size为64KB 时,单队列带宽达到最大,host->tile64为2000Mbps,tile64 ->host为900 Mbps。
I/O性能测试 – PCIe通道 在buffer size为64KB时,zero-copy command queue 个数增加到一定值时,总带宽不再增加。 当队列数为4的时候,host-tile64总带宽达到最大为3000Mbps,tile64-host为1100 Mbps。
数据文件压缩效率测试 测试方法1 从DELL服务器硬盘读取大小为2Gbyte的数据文件到多核开发板内存,采用不同数目的Tile处理器单元做压缩,压缩后的数据文件写入服务器硬盘。 读入线程 写出线程 压缩线程 程序开始执行时,申请(压缩线程数x2)个buffer,1顺序队列,(压缩线程数x2)个输出队列。线程间通过查询buffer的状态互相通信。 读入线程将数据从主机硬盘读到板卡的内存buffer中(fread); 每个压缩线程负责压缩两个确定buffer中的数据,将压缩后的数据放入输出队列; 写出线程顺序写出输出队列中的数据—从板卡内存fwrite到主机硬盘。 压缩算法:移植到tile6上的smp-mgzip 当压缩线程数为8的时候,压缩带宽达到最大,但仅为15MB/s
数据文件压缩效率测试 测试方法2 利用多核开发板千兆网口输入/输出数据文件 从开发板千兆网口输入2Gbyte的数据文件到多核开发板内存,采用不同数目的Tile处理器单元做压缩,压缩后的数据文件从千兆网口送出。 读入线程 写出线程 压缩线程 程序开始执行时,申请(压缩线程数x2)个buffer,1顺序队列,(压缩线程数x2)个输出队列。线程间通过查询buffer的状态互相通信。 读入线程采用C/S模式与服务器通信,由服务器向板卡buffer中读入数据; 每个压缩线程负责压缩两个确定buffer中的数据,将压缩后的数据放入输出队列; 写出线程将板卡内存中的数据通过网络写出到服务器 压缩算法:移植到tile6上的smp-mgzip 当压缩线程数为14的时候,压缩带宽达到最大,为26MB/s
瓶颈 Tile计算能力? 多CPU并行处理时开销太大? …… 优化算法? 优化Tile任务分配?
下一阶段工作计划 2011.5 – 2012.8 优化数据传输方案,提高千兆网口和PCIe通道数据吞吐能力; 将多核处理器上XAUI接口连接万兆口交换机,实现3Gbps 以上数据吞吐能力,满足考核指标; 基于64核处理器,进行在线数据处理能力的性能测试; 进行不同在线数据处理算法的研究。 波形数据积分 寻峰 ……
附录:基于本课题研究发表的论文 会议论文(投稿) 基于压缩算法的tile64多核处理器性能研究 马斯1,2,朱科军1,2,章红宇1,2 会议论文(投稿) 基于压缩算法的tile64多核处理器性能研究 马斯1,2,朱科军1,2,章红宇1,2 (1.中国科学院高能物理研究所,北京,100049; 2.中国科学院核探测技术与核电子学重点实验室,北京,100049)
The End Thank you!