我是一名研究员,我的主要兴趣是改进用于高性能计算的稀疏内核。我在许多稀疏矩阵上研究了大量参数。我想知道是否有工具来管理这些结果。我遇到的问题是:
这里我给出了一个我的巨大问题的一个小例子。每个参数有三种类型的参数和两个值:行/列,循环/块,启发式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。
答案 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 - 当我需要无法用电子表格表示的数据时。除了执行后端的提取和批量操作之外,这些程序还可以生成不同的图像,复杂的图形或我需要的任何其他内容。