【技术实现步骤摘要】
本专利技术涉及计算机应用
,具体地说是一种基于多线程编程及消息队列的多线程并行处理方法。
技术介绍
硬件系统在新技术的推动下进行着快速演进,表现出更好的性能、更低的价格,如传统CPU从单核向多核直至众核发展。但随着计算设备体系结构的多样化,多核化,软件系统仅仅依靠硬件的更新从而获得性能提升的方式已经不符合现有硬件的发展趋势,例如传统的单线程串行程序在多核计算设备下不能表现出更好的性能。硬件发展的最终目的是推动应用软件的表现,进而推进整个计算系统的性能。因此软件系统不能仅仅依靠硬件性能的发展,而应该同时针对硬件系统的发展进行软件系统的再次开发和更新。这也是目前计 算架构下我们遇到的最大挑战,而软件系统的再次开发和改造则显得极为必要。目前国内外针对CPU多核体系结构的应用开发在CPU多核发展之初就如火如荼地展开了,并陆续开发或改造出相当数量的应用。随着多核体系结构处理器的普及,应用软件多线程并行处理方式将逐渐成为主流。
技术实现思路
本专利技术的目的是提供一种基于多线程编程及消息队列的多线程并行处理方法。本专利技术的目的是按以下方式实现的,在单节点内,创建三类pthrea ...
【技术保护点】
一种基于多线程编程及消息队列的多线程并行处理方法,其特征在于在单节点内,创建三类pthread线程,分别为读、计算、写线程,并且各类线程数目灵活可配置,开辟多缓存,创建四个队列,用于线程间通信,调配计算任务及管理缓存空间资源,具体步骤如下:基于多缓冲和消息队列建立任务分发机制,包括:1)计算任务的划分:任务划分的基本单位总的计算任务数是TOTAL_JOB,它可以被划分成多个子任务,定义每个子任务大小为JOB_SIZE,定义灵活的任务划分策略,软件有自动配置模式和用户手动配置模式;2)任务分发、执行策略,包括:(1)子任务实际由读线程来生成;读线程定义每个子任务的信息tmp_ ...
【技术特征摘要】
1.一种基于多线程编程及消息队列的多线程并行处理方法,其特征在于在单节点内,创建三类Pthread线程,分别为读、计算、写线程,并且各类线程数目灵活可配置,开辟多缓存,创建四个队列,用于线程间通信,调配计算任务及管理缓存空间资源,具体步骤如下基于多缓冲和消息队列建立任务分发机制,包括 O计算任务的划分任务划分的基本单位总的计算任务数是TOTAL_JOB,它可以被划分成多个子任务,定义每个子任务大小为JOB_SIZE,定义灵活的任务划分策略,软件有自动配置模式和用户手动配置模式; 2)任务分发、执行策略,包括 (O子任务实际由读线程来生成;读线程定义每个子任务的信息tmp_msg,包括job_begin, job_size, buf_id ; 其中job_begin是该任务计数编号,通过它可以确定该任务的起始LINE号和CMP号; job_size定义了该任务的大小,其上限是预先已经定义好的JOB_SIZE ; buf_id指明了该任务所在的BUF编号; (2)任务信息tmp_msg的类型实际上就是消息队列成员的类型,被加入到各个队列中; 3)子任务执行所需资源的竞争策略完成一个子任务,需要如下几个步骤 读线程根据当前读取进度⑶RRENT_READ_STEP及总作业大TOTAL_STEP,确定当前任务的起始job_begin,任务大小job_size,并且从空SR_BUF队列SR_BUF_EMPTY_QUEUE中获取一个空的 SR_BUF_ID,将数据读入 SR_BUF_ID 对应的 SR_BUF 中,即 SR_BUF[SR_BUF_ID],然后将新生成的任务信息保存至tmp_msg中,并将tmp_msg加入新计算任务队列SR_BUF_FULL_QUEUE 中; 计算线程需先从...
【专利技术属性】
技术研发人员:吴庆,张清,赵开勇,
申请(专利权)人:浪潮电子信息产业股份有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。