本发明涉及服务器技术领域。本发明进一步涉及一种linpack性能测试优化的方法及装置。
背景技术:
linpack测试是评估服务器计算性能最常用的工具之一,并且被业界所公认,目前linpack测试结果已经为各服务器厂商及终端用户评估服务器性能的重要依据。
linpack测试包括三类,linpack100、linpack1000和hpl。在上述三种测试中,linpack100对数组的求解规模为100阶的稠密线性代数方程组,它只允许采用编译优化选项进行优化,不得更改代码,甚至代码中的注释也不得修改。linpack1000的求解规模为1000阶的线性代数方程组,为了达到指定的精度要求,可以在不改变计算量的前提下做算法和代码上做优化。而hpl即highperformancelinpack,也叫高度并行计算基准测试,它对阶次n没有限制,即求解规模可以改变,除基本算法(计算量)不可改变外,可以采用其它任何优化方法。前两种测试运行规模较小,已不是很适合现代计算机的发展,因此现在使用较多的测试标准为hpl,而且阶次n也是linpack测试必须指明的参数。
目前linpack测试中,hpl配置文件中n的取值往往会根据测试者的经验,根据内存容量的80%左右相应地取值。但由于各类服务器的实际配置和应用场景的不同,对应的最佳性能往往会存在一定偏差,使得测试结果不能达到最优。
因此,需要提出一种linpack测试的优化方法,通过相应的算法在测试中选出最优的阶次n从而得到最优的测试结果。
技术实现要素:
一方面,本发明基于上述目的提出了一种linpack性能测试优化的方法,其中方法包括以下步骤:
在阶次的当前取值区间内划分多个子区间并确定当前取值个数;
在多个子区间内根据当前取值个数分别设置阶次的多个取值;
分别以所有阶次的取值进行测试并得出相应的子区间的测试分数;
将测试分数最优的子区间作为新的当前取值区间,循环执行前述步骤直至得出阶次的最优取值。
根据本发明的linpack性能测试优化的方法的实施例,其中该方法进一步包括:在循环开始前根据内存容量及内存容量的测试使用率预设阶次的初始的当前取值区间。
根据本发明的linpack性能测试优化的方法的实施例,其中在多个子区间内根据当前取值个数分别设置阶次的多个取值进一步包括:根据当前取值个数在多个子区间内等间距设置阶次的非零自然数取值。
根据本发明的linpack性能测试优化的方法的实施例,其中分别以阶次的所有取值进行测试并得出相应的子区间的测试分数进一步包括:将取值导入linpack的高度并行计算基准测试的配置文件中以进行测试得到相应取值的测试分数。
根据本发明的linpack性能测试优化的方法的实施例,其中分别以阶次的所有取值进行测试并得出相应的子区间的测试分数进一步包括:将子区间内的所有取值的测试分数取平均值作为该子区间的测试分数。
根据本发明的linpack性能测试优化的方法的实施例,其中将测试分数最优的子区间作为新的当前取值区间,循环执行前述步骤直至得出所述阶次的最优取值进一步包括:在当前取值区间内的所有非零自然数均设置为阶次的取值的情况下,将测试分数最优的取值作为阶次的最优取值。
另一方面,本发明还提出了一种linpack性能测试优化的装置,该装置包括:
至少一个处理器;和
存储器,该存储器存储有处理器可运行的程序代码,该程序代码在被处理器运行时执行以下步骤:
在阶次的当前取值区间内划分多个子区间并确定当前取值个数;
在多个子区间内根据当前取值个数分别设置阶次的多个取值;
分别以阶次的所有取值进行测试并得出相应的子区间的测试分数;
将测试分数最优的子区间作为新的当前取值区间,循环执行前述步骤直至得出阶次的最优取值。
根据本发明的linpack性能测试优化的装置的实施例,其中该程序代码在被处理器运行时进一步执行以下步骤:在循环开始前根据内存容量及内存容量的测试使用率预设阶次的初始的当前取值区间。
根据本发明的linpack性能测试优化的装置的实施例,其中在多个子区间内根据当前取值个数分别设置阶次的多个取值进一步包括:根据当前取值个数在多个子区间内等间距设置阶次的非零自然数取值。
根据本发明的linpack性能测试优化的装置的实施例,其中将测试分数最优的子区间作为新的当前取值区间,循环执行前述步骤直至得出所述阶次的最优取值进一步包括:在当前取值区间内的所有非零自然数均设置为阶次的取值的情况下,将测试分数最优的取值作为阶次的最优取值。
采用上述技术方案,本发明至少具有如下有益效果:根据本发明的方法及装置,通过多次迭代可以在linpack测试中逐步缩小阶次的取值区间,从而选出阶次的最优取值,进而可以得出linpack测试的最佳测试结果。利用本发明的方法能够更加准确地测出服务器的性能分数,而不必依赖于测试者本身的经验以及各类服务器的实际配置和应用场景,提高了服务器性能测试的测试效果。
本发明提供了实施例的各方面,不应当用于限制本发明的保护范围。根据在此描述的技术可设想到其它实施方式,这对于本领域普通技术人员来说在研究以下附图和具体实施方式后将是显而易见的,并且这些实施方式意图被包含在本申请的范围内。
下面参考附图更详细地解释和描述了本发明的实施例,但它们不应理解为对于本发明的限制。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对现有技术和实施例描述中所需要使用的附图作简单地介绍,附图中的部件不一定按比例绘制,并且可以省略相关的元件,或者在一些情况下比例可能已经被放大,以便强调和清楚地示出本文描述的新颖特征。另外,如本领域中已知的,结构顺序可以被不同地布置。
图1示出了根据本发明的linpack性能测试优化的方法的实施例的示意性框图。
具体实施方式
虽然本发明可以以各种形式实施,但是在附图中示出并且在下文中将描述一些示例性和非限制性实施例,但应该理解的是,本公开将被认为是本发明的示例并不意图将本发明限制于所说明的具体实施例。
图1示出了根据本发明的linpack性能测试优化的方法的实施例的示意性框图。如图所示,该方法在所示实施例中至少包括:
s1:在阶次的当前取值区间内划分多个子区间并确定当前取值个数;
s2:在多个子区间内根据当前取值个数分别设置阶次的多个取值;
s3:分别以阶次的所有取值进行测试并得出相应的子区间的测试分数;
s4:将测试分数最优的子区间作为新的当前取值区间,循环执行前述步骤直至得出阶次的最优取值。
在本发明所提出的构思中,阶次n的最优取值是通过以迭代的方式不断缩小阶次n的取值区间[nmin,nmax]来选取的,因此在图1所示的实施例中,通常可以首先为阶次n预设一个比较大的取值区间作为当前取值区间。那么步骤s1在阶次n的当前取值区间[nmin_i,nmax_i]内划分多个子区间[n1,n2]、[n2,n3]...[nj,nj+1]并确定当前取值个数m_i。其中,i为根据本发明的构思的迭代次数,即划分子区间的次数。随后在步骤s2中在上述多个子区间[n1,n2]、[n2,n3]...[nj,nj+1]内根据当前取值个数m分别设置阶次的多个取值,例如nj_m_1、nj_m_2...nj_m_m等,其中j为在当次迭代中所划分的第j个子区间。这些取值会优选地导出在一个指定的txt格式的配置文件中。确定好阶次的取值后,从该txt配置文件中读取出取值,在步骤s3中分别以阶次的所有取值nj_m_1、nj_m_2...nj_m_m进行测试并得出相应的子区间[nj,nj+1]的测试分数rj。得到所有子区间的测试分数rj后将所有子区间的测试分数进行排序,在步骤s4中将测试分数最优max[rj]的子区间作为新的当前取值区间[nmin_i+1,nmax_i+1],重复执行根据本发明方法的步骤s1至s4直至得出阶次n的最优取值n_opt。由此,利用本发明的方法的上述实施例可以选出阶次的最优取值,得出linpack测试的最佳测试结果,从而更加准确地测出服务器的性能分数。
下文将说明本发明的进一步实施例,需要注意的是,其中提到的步骤的编号在没有特殊说明的情况下,仅用于便捷明确地指示该步骤,并不限定所述步骤的顺序。
在本发明的linpack性能测试优化的方法的一些实施例中,该方法进一步包括:
在循环开始前根据内存容量及内存容量的测试使用率预设阶次的初始的当前取值区间。
在本发明所提出的构思中,阶次n的最优取值是通过以迭代的方式不断缩小阶次n的取值区间[nmin,nmax]来选取的,因此在图1所示的实施例中,通常首先为阶次n预设一个比较大的取值区间作为当前取值区间。在一些实施例中,根据内存容量s(byte)和内存容量的测试使用率p(%)预设阶次n的初始的当前取值区间[nmin_0,nmax_0]。由于阶次n与内存容量s存在以下关系,即
n2·8=s·p
(公式1),因此内存容量s和内存容量的测试使用率p均会影响阶次n的取值。特别地,以内存容量的测试使用率p的最小值和最大值决定初始的当前取值区间[nmin_0,nmax_0]的区间端值。例如,取内存容量的测试使用率p的最小值为40%、最大值为90%,然后根据上述公式1的关系计算得出阶次n的当前取值区间的两端值。需要注意的是,在一些实施例中在进行n的开根号计算后对计算结果取整以作为阶次n的值。
在本发明的linpack性能测试优化的方法的若干实施例中,步骤s2在多个子区间内根据当前取值个数分别设置阶次的多个取值进一步包括:根据当前取值个数在多个子区间内等间距设置阶次的非零自然数取值。也就是说,在这些实施例中,根据在步骤s1所划分的多个子区间如[n1,n2]、[n2,n3]...[nj,nj+1]中等间距地设置阶次的当前取值个数m_i个取值,这些取值必须是非零的自然数,以便进行测试数组的高阶测试。
在本发明的linpack性能测试优化的方法的一些实施例中,步骤s3分别以阶次的所有取值进行测试并得出相应的子区间的测试分数进一步包括:将取值导入linpack的高度并行计算基准测试的配置文件中以进行测试得到相应取值的测试分数。在这些实施例中,步骤s2所设置的取值导出到特定的配置文件中后,将这些取值例如nj_m_1、nj_m_2...nj_m_m(j=1、2、3...)等逐一导入linpack的hpl高度并行计算基准测试的配置文件中以进行测试分别得到相应取值例如nj_m_1、nj_m_2...nj_m_m(j=1、2、3...)的测试分数rj_m。
在本发明的linpack性能测试优化的方法的若干实施例中,步骤s3分别以阶次的所有取值进行测试并得出相应的子区间的测试分数进一步包括:将子区间内的所有取值的测试分数取平均值作为该子区间的测试分数。也就是说,在某一子区间[nj,nj+1]内,将属于该子区间的所有取值nj_m_1、nj_m_2...nj_m_m(j=1、2、3...)的各测试分数rj_m求和取平均值rj,以该平均值rj作为该子区间的测试分数。
在本发明的linpack性能测试优化的方法的一个或多个实施例中,步骤s4将测试分数最优的子区间作为新的当前取值区间,循环执行前述步骤直至得出所述阶次的最优取值进一步包括:在当前取值区间内的所有非零自然数均设置为阶次的取值的情况下,将测试分数最优的取值作为阶次的最优取值。步骤s4将测试分数最优max[rj]的子区间作为新的当前取值区间[nmin_i+1,nmax_i+1],重复执行根据本发明方法的步骤s1至s4直至得出阶次n的最优取值n_opt。而当在当前取值区间[nmin_i,nmax_i]内的所有非零自然数均设置为阶次n的取值nj_m_1、nj_m_2...nj_m_m(j=1、2、3...)时,换句话说,在当前取值区间[nmin_i,nmax_i]小到按照确定当前取值个数m_i设置取值刚好覆盖了该区间内的所有非零自然数的情况下,对这些取值进行测试后已经足以根据测试分数选出最优的唯一取值,因此将测试分数最优max[rj_m]的取值nj_m_m作为阶次n的最优取值。随后,可以以所选出的最优取值进行服务器的性能测试。
另一方面,本发明还提出了一种linpack性能测试优化的装置,该装置包括:至少一个处理器;和存储器,该存储器存储有处理器可运行的程序代码,该程序代码在被处理器运行时执行以下步骤:
s1:在阶次的当前取值区间内划分多个子区间并确定当前取值个数;
s2:在多个子区间内根据当前取值个数分别设置阶次的多个取值;
s3:分别以阶次的所有取值进行测试并得出相应的子区间的测试分数;
s4:将测试分数最优的子区间作为新的当前取值区间,循环执行前述步骤直至得出阶次的最优取值。
在本发明的linpack性能测试优化的装置的一些实施例中,该程序代码在被处理器运行时进一步执行以下步骤:
在循环开始前根据内存容量及内存容量的测试使用率预设阶次的初始的当前取值区间。
在本发明的linpack性能测试优化的装置的若干实施例中,步骤s2在多个子区间内根据当前取值个数分别设置阶次的多个取值进一步包括:根据当前取值个数在多个子区间内等间距设置阶次的非零自然数取值。
在本发明的linpack性能测试优化的装置的一些实施例中,步骤s4将测试分数最优的子区间作为新的当前取值区间,循环执行前述步骤直至得出所述阶次的最优取值进一步包括:在当前取值区间内的所有非零自然数均设置为阶次的取值的情况下,将测试分数最优的取值作为阶次的最优取值。
本发明实施例公开所述的装置、设备等可为各种电子终端设备,例如手机、个人数字助理(pda)、平板电脑(pad)、智能电视等,也可以是大型终端设备,如服务器等,因此本发明实施例公开的保护范围不应限定为某种特定类型的装置、设备。本发明实施例公开所述的客户端可以是以电子硬件、计算机软件或两者的组合形式应用于上述任意一种电子终端设备中。
本文所述的计算机可读存储介质(例如存储器)可以是易失性存储器或非易失性存储器,或者可以包括易失性存储器和非易失性存储器两者。作为例子而非限制性的,非易失性存储器可以包括只读存储器(rom)、可编程rom(prom)、电可编程rom(eprom)、电可擦写可编程rom(eeprom)或快闪存储器。易失性存储器可以包括随机存取存储器(ram),该ram可以充当外部高速缓存存储器。作为例子而非限制性的,ram可以以多种形式获得,比如同步ram(dram)、动态ram(dram)、同步dram(sdram)、双数据速率sdram(ddrsdram)、增强sdram(esdram)、同步链路dram(sldram)、以及直接rambusram(drram)。所公开的方面的存储设备意在包括但不限于这些和其它合适类型的存储器。
采用上述技术方案,本发明至少具有如下有益效果:根据本发明的方法及装置,通过多次迭代可以在linpack测试中逐步缩小阶次的取值区间,从而选出阶次的最优取值,进而可以得出linpack测试的最佳测试结果。利用本发明的方法能够更加准确地测出服务器的性能分数,而不必依赖于测试者本身的经验以及各类服务器的实际配置和应用场景,提高了服务器性能测试的测试效果。
应当理解的是,在技术上可行的情况下,以上针对不同实施例所列举的技术特征可以相互组合,从而形成本发明范围内的另外实施例。此外,本文所述的特定示例和实施例是非限制性的,并且可以对以上所阐述的结构、步骤及顺序做出相应修改而不脱离本发明的保护范围。
在本申请中,反意连接词的使用旨在包括连接词。定或不定冠词的使用并不旨在指示基数。具体而言,对“该”对象或“一”和“一个”对象的引用旨在表示多个这样对象中可能的一个。然而,尽管本发明实施例公开的元素可以以个体形式描述或要求,但除非明确限制为单数,也可以理解为多个。此外,可以使用连接词“或”来传达同时存在的特征,而不是互斥方案。换句话说,连接词“或”应理解为包括“和/或”。术语“包括”是包容性的并且具有与“包含”相同的范围。
上述实施例,特别是任何“优选”实施例是实施方式的可能示例,并且仅仅为了清楚理解本发明的原理而提出。在基本上不脱离本文描述的技术的精神和原理的情况下,可以对上述实施例做出许多变化和修改。所有修改旨在被包括在本公开的范围内。