用于操纵大量计算实验结果的工具

时间:2013-05-28 01:13:11

标签: pivot-table

我是一名研究员,我的主要兴趣是改进用于高性能计算的稀疏内核。我在许多稀疏矩阵上研究了大量参数。我想知道是否有工具来管理这些结果。我遇到的问题是:

  1. 结合每个矩阵的几个实验结果
  2. 版本化结果
  3. 取平均值,找出结果的最小/最大/标准差
  4. 有数百个指标可用于描述性能改进。我想轻松选择几个指标,并尝试找出与性能改进相关的指标。
  5. 这里我给出了一个我的巨大问题的一个小例子。每个参数有三种类型的参数和两个值:行/列,循环/块,启发式A /启发式B.因此,这些参数的组合必须有8个文件。其中两个的内容:

    档案RowCyclicHeuristicA.txt

    的内容
    a.mtx#3#5.1#10#2%#row#cyclic#heuristicA#1
    a.mtx#7#4.1#10#4%#row#cyclic#heuristicA#2
    b.mtx#4#6.1#10#3%#row#cyclic#heuristicA#1
    b.mtx#12#5.7#10#7%#row#cyclic#heuristicA#2
    b.mtx#9#3.1#10#10%#row#cyclic#heuristicA#3
    

    档案ColumnCyclicHeuristicA.txt

    的内容
    a.mtx#3#5.1#10#5%#column#cyclic#heuristicA#1
    a.mtx#1#5.3#10#6%#column#cyclic#heuristicA#2
    b.mtx#4#7.1#10#5%#column#cyclic#heuristicA#1
    b.mtx#3#5.7#10#9%#column#cyclic#heuristicA#2
    b.mtx#5#4.1#10#3%#column#cyclic#heuristicA#3
    

    我有一个方案文件来描述这些文件的内容。此文件有一行描述结果文件中每列的类型和含义:

    str MatrixName
    int Speedup
    double Time
    int RepetationCount
    double Imbalance
    str Parameter1
    str Parameter2
    str Parameter3
    int ExperimentId
    

    我需要显示平均值 Time和两种类型的参数,如下所示:(下表中的数字是随机的)

                Parameter1    Parameter2
    Matrix      row    col    cyclic   block
     a.mtx      4.3    5.2    4.2      5.4
     b.mtx      2.1    6.3    8.4      3.3
    

    是否有一个先进而复杂的工具可以获取上表的方案并自动生成此表?目前我有一个用Java编写的工具来处理原始文件和Latex代码,以便使用pgfplotstable来操作和显示表格。但是,我需要一种更专业的工具。我不想要MS Excel的数据透视表。

    类似的问题是here

1 个答案:

答案 0 :(得分:1)

以未知格式处理大量数据对于通用程序来说是一项挑战。你最好的选择可能与你已经做的相似。使用自定义程序将结果重新格式化为更易于处理的内容(后端),以及您选择的可视化程序,以便您查看和播放数据(前端 )。

<强>后端

对于您的问题,我建议使用关系数据库(例如Mysql)。设置时间比其他选项长,但如果这是一个持续存在的问题,那么它应该是值得的,因为它可以让您轻松拉出感兴趣的字段。 例如SELECT AVG(Speedup) FROM results WHERE Parameter1="column" AND Parameter2="cyclic"。然后,您仍然需要一个简单的脚本来首先插入数据,然后以有用的格式提取感兴趣的结果,您可以将其放入查看器中。或者,如果您愿意,可以直接针对数据库运行查询。

或者,我通常使用的只是Python或Perl。读入您的数据文件,删除您不想要的数据,重新排列到所需的结构中,并写出您的前端和使用的标准格式。用您选择的语言替换Python / Perl。

<强>前端

就个人而言,我几乎总是使用Excel。后端完成了大部分繁重的工作,所以我得到了一个csv文件,结果我关心所有已经很好的订购。 Excel然后让我玩数据,做平均值,绘图,重新排序等等等。

我用来显示可能对你没用的东西的其他工具,但为了完整性而包括:

Weka - 主要针对机器学习,但提供搜索趋势或相关性的工具。用于搜索感兴趣的数据。

Python / IDL / etc - 当我需要无法用电子表格表示的数据时。除了执行后端的提取和批量操作之外,这些程序还可以生成不同的图像,复杂的图形或我需要的任何其他内容。