一种并行计算方法和装置的制造方法_2

文档序号:8339360阅读:来源:国知局
8台云计算服务器同时对所分配到的计算数据进行计算,得到计算结果后,将计算结果返回独立的存储空间中。
[0058]以对浮点数进行三角计算Σ sinx为例,对本实施例所提供的并行计算方法做进一步描述。
[0059]步骤1.将待计算浮点数x0、xl、x2、…xn按照浮点型的组织形式,依次读入到已分割为独立互不干扰的η个空间且分别地址独立的内存中;
[0060]步骤2.计算CPU当前的核心数,并取得CPU数量;
[0061]步骤3.根据CPU数量,创建相同数量的线程;
[0062]步骤4.将待计算浮点数平均分配到各个线程中的栈空间中;
[0063]步骤5.将线程与指定的CPU对应,各CPU独立进行sin运算,并将计算结果返回到预先指定的内存空间中;
[0064]步骤6.将计算结果分别从指定的内存空间中取出,执行加法运算,完成加法运算后返回最终计算结果。
[0065]按照如上处理,充分利用了多核CPU的并行计算能力,采用指定计算,利用CPU各核的独立高速缓存与独立运算计算指令,最终达到了高速计算的目的。
[0066]通过以下实施例对并行计算方法做进一步描述。
[0067]并行计算方法的又一实施例的组成如图2所示,以核心CPU为并行计算的执行主体为例。用多线程来把任务代码并行化,从而利用多个CPU核的计算能力来完成任务。因此,在系统中设计了一个线程池,用于把一个任务拆分成多个线程,从而可以使用多个CPU同时处理这一个任务。
[0068]具体地,并行计算方法的又一实施例的执行过程如图3所示,操作系统调度主程序a.0ut开始运行,a.0ut加载必要的系统资源和用户资源开始执行加载的任务。以4核心CPU为例,a.0ut在线程池中将加载的任务分成可以被并行执行的任务线程T1、T2、T3和Τ4。在初始阶段CPUO和CPUl两个核心先分别加载任务线程Tl和Τ2进行处理,然后CPU2和CPU3再分别加载Τ3和Τ4进行处理,直到完成该任务的所有任务线程。
[0069]进一步地,每个任务线程都有自己的数据,但在4核心CPU执行任务线程的过程中,各任务线程都共享整个a.0ut所加载的系统资源和用户资源。这样就节省了拷贝系统资源给每个任务线程的开销。这样同一任务的任务线程之间可以并行执行子程序。而且,任务线程之间通过全局内存进行通信,这个需要同步构造来确保多个任务线程不会同时更新同一块全局内存。任务线程执行完了就自动销毁,但是主程序a.0ut在应用程序完成之前一直存在,维护必要的共享资源。
[0070]基于上述描述,本实施例提供的并行计算方法,通过将计算的数据分配到与计算模块数量相同数目的线程中,使得所有计算模块都会在并行计算时处理计算数据,避免了现有的当有多个计算模块进行并行计算时,实际只有部分计算模块参与并行计算而导致计算效率低下的缺陷;而且只处理对应线程中的数据,在处理完后就等待下一步的指令,从而在并行计算的过程中不会在多个线程间切换,很好的控制了并行计算过程中的系统开销;再者,通过本方法描述的过程进行并行计算时可以大大提高计算效率,从而相对于单核CPU而言,发挥出多核心CPU的核心数量多的优势。
[0071]并行计算装置的结构示意图如图4所示,所述装置包括:
[0072]第一获取模块10,用于获取进行并行计算的计算模块的数量;
[0073]创建模块20,用于创建与所述计算模块数量相同数目的线程;
[0074]第一处理模块30,用于将预先存储的待计算的数据平均分配到各线程中;
[0075]第二处理模块40,用于各计算模块同时计算各对应线程中的数据。
[0076]进一步地,所述装置还包括:
[0077]第二获取模块,用于获取所述待计算的数据;
[0078]存储模块,用于将所述待计算的数据分别存储在独立的存储空间中。
[0079]可选地,所述存储模块还用于:
[0080]各计算模块将计算结果返回到预先指定的独立存储空间中。
[0081]所述计算模块是多核心CPU。
[0082]所述计算模块是云计算服务器。
[0083]本实施例中提供的并行计算装置的功能和处理流程,可以参见上面提供的并行计算方法的实施例的流程,此处不再赘述。
[0084]基于上述描述,本实施例提供的并行计算装置,通过将计算的数据分配到与计算模块数量相同数目的线程中,使得所有计算模块都会在并行计算时处理计算数据,避免了现有的当有多个计算模块进行并行计算时,实际只有部分计算模块参与并行计算而导致计算效率低下的缺陷;而且只处理对应线程中的数据,在处理完后就等待下一步的指令,从而在并行计算的过程中不会在多个线程间切换,很好的控制了并行计算过程中的系统开销;再者,通过本方法描述的过程进行并行计算时可以大大提高计算效率,从而相对于单核CPU而言,发挥出多核心CPU的核心数量多的优势。
[0085]本领域普通技术人员可以理解:实现上述方法各实施例的全部或部分步骤可以通过程序指令相关的硬件来完成。前述的程序可以存储于一计算机可读取存储介质中。该程序在执行时,执行包括上述各方法实施例的步骤;而前述的存储介质包括:R0M、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
[0086]最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。
【主权项】
1.一种并行计算方法,其特征在于,所述方法包括如下步骤:获取进行并行计算的计算模块的数量;创建与所述计算模块数量相同数目的线程;将预先存储的待计算的数据平均分配到各线程中;各计算模块同时计算各对应线程中的数据。
2.根据权利要求1所述的并行计算方法,其特征在于,所述方法还包括:获取所述待计算的数据;将所述待计算的数据分别存储在独立的存储空间中。
3.根据权利要求1所述的并行计算方法,其特征在于,所述方法还包括:各计算模块将计算结果返回到预先指定的独立存储空间中。
4.根据权利要求1-3任一项所述的并行计算方法,其特征在于,所述计算模块是多核心CPU。
5.根据权利要求1-3任一项所述的并行计算方法,其特征在于,所述计算模块是云计算服务器。
6.一种并行计算装置,其特征在于,所述装置包括:第一获取模块,用于获取进行并行计算的计算模块的数量;创建模块,用于创建与所述计算模块数量相同数目的线程;第一处理模块,用于将预先存储的待计算的数据平均分配到各线程中;第二处理模块,用于各计算模块同时计算各对应线程中的数据。
7.根据权利要求6所述的并行计算装置,其特征在于,所述装置还包括:第二获取模块,用于获取所述待计算的数据;存储模块,用于将所述待计算的数据分别存储在独立的存储空间中。
8.根据权利要求7所述的并行计算装置,其特征在于,所述存储模块还用于:各计算模块将计算结果返回到预先指定的独立存储空间中。
9.根据权利要求6-8任一项所述的并行计算装置,其特征在于,所述计算模块是多核心CPU。
10.根据权利要求6-8任一项所述的并行计算装置,其特征在于,所述计算模块是云计算服务器。
【专利摘要】本发明提供一种并行计算方法和装置,所述方法包括:获取进行并行计算的计算模块的数量;创建与所述计算模块数量相同数目的线程;将预先存储的待计算的数据平均分配到各线程中;各计算模块同时计算各对应线程中的数据。本发明提供的并行计算方法和装置,通过将计算的数据分配到与计算模块数量相同数目的线程中,使得所有计算模块都会在并行计算时处理计算数据,避免了现有的当有多个计算模块进行并行计算时,实际只有部分计算模块参与并行计算而导致计算效率低下的缺陷。
【IPC分类】G06F9-38
【公开号】CN104657111
【申请号】CN201310589149
【发明人】车万毅
【申请人】方正信息产业控股有限公司, 方正移动传媒技术(北京)有限公司
【公开日】2015年5月27日
【申请日】2013年11月20日
当前第2页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1