我注意到以下站点提供了各种计算的性能图(包括数组,FFT,并行运算等,等等)
Chapel Performance Graphs for chapcs
例如,“ 2D数组分配”的图形给出以下内容:
我想知道这是否主要供内部使用(由Chapel开发人员使用)还是测试代码也对用户公开(尝试在本地计算机上运行)。另外,我认为学习一些好的成语对于在某些任务上获得更高的性能可能会非常好...
谢谢!
答案 0 :(得分:3)
所有Chapel性能测试的源代码都是公开的(通常来说,几乎所有Chapel开发和代码都是公开的。)您可以在github存储库中找到这些测试:https://github.com/chapel-lang/chapel/tree/master/test
将图形名称匹配到测试并不总是那么容易。通常,我要做的就是克隆仓库并执行[IN]>countIncreace(df, 'A'):
[OUT]> 2
[IN]>countIncreace(df, 'B'):
[OUT]> 0
[IN]>countIncreace(df, 'C'):
[OUT]> 3
。这将告诉您与此测试关联的.graph文件为db.collection.aggregate([
{ $match: ... },
{
$project: {
createdDate: '$dateCreated',
diffYears: {
$add: [
{ $year: '$dateCreated' },
{
$subtract: [
{ $year: { $add: new Date() } },
{ $year: '$dateCreated' },
],
},
],
},
year: { $year: "$dateCreated" },
month: { $month: "$dateCreated" },
day: { $dayOfMonth: "$dateCreated" },
hour: { $hour: "$dateCreated" },
minutes: { $minute: "$dateCreated" },
seconds: { $second: "$dateCreated" },
milliseconds: { $millisecond: "$dateCreated" },
},
},
{
$project: {
anniversary: { $add: new Date('$diffYears', '$month', '$day', '$hour', '$minutes', '$seconds', '$milliseconds') },
},
},
]);
,并且通常(尽管并非总是)该测试名称具有相似的基本名称。在这种情况下,测试为git grep "2D Array Assignment" -- test
。
您可以通过执行test/performance/sungeun/assign.1024.graph
之类的操作来使用start_test运行性能测试,结果将显示在test/performance/sungeun/assign.chpl
中,并且图形位于html子目录中
尽管图形和测试基础结构是公开的,但它们面向开发人员,并且测试系统的许多方面对于“最终用户”而言并不总是非常直观或完善。 https://github.com/chapel-lang/chapel/tree/master/doc/rst/developer/bestPractices/TestSystem.rst是一个相当庞大的文档,其中包含有关测试基础架构的更多信息