Open MPI logo

MTT Devel Mailing List Archives

  |   Home   |   Support   |   FAQ   |   all MTT Devel mailing list

Subject: Re: [MTT devel] [MTT svn] svn:mtt-svn r1273 (Analyze/Performance plug-ins)
From: Josh Hursey (jjhursey_at_[hidden])
Date: 2009-03-20 10:33:19


A while back we designed what needed to happen on the database side
to support arbitrary performance data (we were thinking about Skampi
at the time, I believe). The only documentation that I could find of
this discussion is in the DB schema diagram:
   https://svn.open-mpi.org/trac/mtt/browser/trunk/docs/sql-schema-
v3.pdf

On the right-hand side, we currently implement the
'latency_bandwidth' table. We would like to move to the
'performance_data' table which would encode any performance data that
can be represented in a 3 dimensional space

If someone wanted to go down the path of converting the performance
representation, I can probably dig out some more notes on what we
were thinking at the time of this design.

Best,
Josh

On Mar 20, 2009, at 9:49 AM, Ethan Mallove wrote:

> On Thu, Mar/19/2009 09:17:29PM, Mike Dubman wrote:
>> Hello Eithan,
>> Thanks for info, will refactor it.
>>
>> from http://www.netlib.org/benchmark/hpl/
>>
>> ...
>> HPL is a software package that solves a (random) dense linear
>> system in double precision (64 bits) arithmetic on
>> distributed-memory computers. It can thus be regarded as a
>> portable as well as freely available implementation of the High
>> Performance Computing Linpack Benchmark.
>>
>> The HPL package provides a testing and timing program to quantify
>> the accuracy of the obtained solution as well as the time it took
>> to compute it
>> ...
>>
>> Where do you think is a good place to keep parsers for other then
>> lat/bw based mpi benchmarks? I think we can have a collection of
>> such parsers in the mtt and at some point we can enhance mtt
>> reports with other metrics.
>>
>> What do you think?
>
> Sounds like a nice enhancement. I think just assigning this parser
> its own "test_type" will be helpful for now (and I have no thoughts on
> what to call it). When the server-side submit PHP script is ready to
> handle non-latency/bandwidth test data, we can split out the
> client-side Analyze/Performance directory.
>
> -Ethan
>
>
>>
>> On Thu, Mar 19, 2009 at 8:22 PM, Ethan Mallove
>> <ethan.mallove_at_[hidden]>
>> wrote:
>>
>> Hi Mike,
>>
>> Is HPL a latency and/or bandwidth performance test? *All the
>> Analyze
>> plug-ins in lib/MTT/Test/Analyze/Performance are for latency/
>> bandwidth
>> tests, which means they can then be rendered as graphs in the
>> MTT
>> Reporter. *All of these plug-ins are required to output at
>> least one
>> of the following:
>>
>> *latency_avg
>> *latency_min
>> *latency_max
>> *bandwidth_avg
>> *bandwidth_min
>> *bandwidth_max
>>
>> They all contain this:
>>
>> *$report->{test_type} = 'latency_bandwidth';
>>
>> HPL.pm should have a line like this somewhere:
>>
>> *$report->{test_type} = 'tv_gflops';
>>
>> Maybe HPL.pm could go into a different directory or have a
>> comment
>> somewhere to clear up this confusion.
>>
>> Regards,
>> Ethan
>>
>> On Thu, Mar/19/2009 02:11:05AM, miked_at_[hidden] wrote:
>>> Author: miked
>>> Date: 2009-03-19 02:11:04 EDT (Thu, 19 Mar 2009)
>>> New Revision: 1273
>>> URL: https://svn.open-mpi.org/trac/mtt/changeset/1273
>>>
>>> Log:
>>> HPL analyzer added
>>>
>>> Added:
>>> * *trunk/lib/MTT/Test/Analyze/Performance/HPL.pm
>>>
>>> Added: trunk/lib/MTT/Test/Analyze/Performance/HPL.pm
>>>
>>
>> =====================================================================
>> =========
>>> --- (empty file)
>>> +++ trunk/lib/MTT/Test/Analyze/Performance/HPL.pm * * 2009-03-19
>> 02:11:04 EDT (Thu, 19 Mar 2009)
>>> @@ -0,0 +1,63 @@
>>> +#!/usr/bin/env perl
>>> +#
>>> +# Copyright (c) 2006-2007 Sun Microsystems, Inc. *All rights
>> reserved.
>>> +# Copyright (c) 2007 * * *Voltaire *All rights reserved.
>>> +# $COPYRIGHT$
>>> +#
>>> +# Additional copyrights may follow
>>> +#
>>> +# $HEADER$
>>> +#
>>> +
>>> +package MTT::Test::Analyze::Performance::HPL;
>>> +use strict;
>>> +use Data::Dumper;
>>> +#use MTT::Messages;
>>> +
>>> +# Process the result_stdout emitted from one of hpl tests
>>> +sub Analyze {
>>> +
>>> + * *my($result_stdout) = @_;
>>> + * *my $report;
>>> + * *my(@t_v,
>>> + * * * @time,
>>> + * * * @gflops);
>>> +
>>> +$report->{test_name}="HPL";
>>> + * *my @lines = split(/\n|\r/, $result_stdout);
>>> + * *# Sample result_stdout:
>>> +#- The matrix A is randomly generated for each test.
>>> +#- The following scaled residual check will be computed:
>>> +# * * *||Ax-b||_oo / ( eps * ( || x ||_oo * || A ||_oo + || b ||
>>> _oo )
>> * N )
>>> +#- The relative machine precision (eps) is taken to be * * * * *
>>> * *
>> 1.110223e-16
>>> +#- Computational tests pass if scaled residuals are less than *
>>> * * *
>> * * * *16.0
>>>
>>
>> +#===================================================================
>> =============
>>> +#T/V * * * * * * * *N * *NB * * P * * Q * * * * * * * Time * * *
>>> * *
>> * * * Gflops
>>>
>>
>> +#-------------------------------------------------------------------
>> -------------
>>> +#WR00L2L2 * * * 29184 * 128 * * 2 * * 4 * * * * * 15596.86 * * *
>>> * *
>> * *1.063e+00
>>>
>>
>> +#-------------------------------------------------------------------
>> -------------
>>> +#||Ax-b||_oo/(eps*(||A||_oo*||x||_oo+||b||_oo)*N)= * * * *0.0008986
>> ...... PASSED
>>>
>>
>> +#===================================================================
>> =============
>>> +#T/V * * * * * * * *N * *NB * * P * * Q * * * * * * * Time * * *
>>> * *
>> * * * Gflops
>>>
>>
>> +#-------------------------------------------------------------------
>> -------------
>>> +#WR00L2L4 * * * 29184 * 128 * * 2 * * 4 * * * * * 15251.81 * * *
>>> * *
>> * *1.087e+00
>>> + * *my $line;
>>> + * *while (defined($line = shift(@lines))) {
>>> + * * * *#WR00L2L2 * * * 29184 * 128 * * 2 * * 4 * * * * *
>>> 15596.86 *
>> * * * * * *1.063e+00
>>> + * * * *if ($line =~
>> m/^(\S+)\s+\d+\s+\d+\s+\d+\s+\d+\s+(\d+[\.\d]+)\s+(\S+)/) {
>>> + * * * * * *push(@t_v, $1);
>>> + * * * * * *push(@time, $2);
>>> + * * * * * *push(@gflops, $3);
>>> + * * * *}
>>> + * *}
>>> +
>>> + * * *# Postgres uses brackets for array insertion
>>> + * *# (see postgresql.org/docs/7.4/interactive/arrays.html)
>>> + * *$report->{tv} * = "{" . join(",", @t_v) . "}";
>>> + * *$report->{time} * = "{" . join(",", @time) . "}";
>>> + * *$report->{gflops} * = "{" . join(",", @gflops) . "}";
>>> + * *return $report;
>>> +}
>>> +
>>> +1;
>>> +
>>> _______________________________________________
>>> mtt-svn mailing list
>>> mtt-svn_at_[hidden]
>>> http://www.open-mpi.org/mailman/listinfo.cgi/mtt-svn
>>
>> References
>>
>> Visible links
>> . http://www.netlib.org/benchmark/hpl/
>> . mailto:ethan.mallove_at_[hidden]
>> . mailto:miked_at_[hidden]
>> . https://svn.open-mpi.org/trac/mtt/changeset/1273
>> . http://postgresql.org/docs/7.4/interactive/arrays.html
>> . mailto:mtt-svn_at_[hidden]
>> . http://www.open-mpi.org/mailman/listinfo.cgi/mtt-svn
>
>> _______________________________________________
>> mtt-devel mailing list
>> mtt-devel_at_[hidden]
>> http://www.open-mpi.org/mailman/listinfo.cgi/mtt-devel
>
> _______________________________________________
> mtt-devel mailing list
> mtt-devel_at_[hidden]
> http://www.open-mpi.org/mailman/listinfo.cgi/mtt-devel