# *****************************************************************
# *                                                               *
# Copyright (C) 2003-2008 Intel Corporation
# 
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation; either version 2
# of the License, or (at your option) any later version.
# 
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# GNU General Public License for more details.
# 
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
# 

##
## SPEC CPU2006 benchmark configuration, version 1.0
##

package CPU2006_data;

use strict;

our %isFP = (
    '400.perlbench' => 0,
    '401.bzip2' => 0,
    '403.gcc' => 0,
    '410.bwaves' => 1,
    '416.gamess' => 1,
    '429.mcf' => 0,
    '433.milc' => 1,
    '434.zeusmp' => 1,
    '435.gromacs' => 1,
    '436.cactusADM' => 1,
    '437.leslie3d' => 1,
    '444.namd' => 1,
    '445.gobmk' => 0,
    '447.dealII' => 1,
    '450.soplex' => 1,
    '453.povray' => 1,
    '454.calculix' => 1,
    '456.hmmer' => 0,
    '458.sjeng' => 0,
    '459.GemsFDTD' => 1,
    '462.libquantum' => 0,
    '464.h264ref' => 0,
    '465.tonto' => 1,
    '470.lbm' => 1,
    '471.omnetpp' => 0,
    '473.astar' => 0,
    '481.wrf' => 1,
    '482.sphinx3' => 1,
    '483.xalancbmk' => 0,
);

our %spec2006;

$spec2006{test} = {
    '400.perlbench_pack' => {
        'program' => 'perlbench',
        'args' => '-I. -I./lib pack.pl',
        'input' => '',
        'output' => 'pack.out',
        'errout' => 'pack.err',
        'compare' => [
            'specdiff -l 10 data/test/output/pack.out pack.out',
        ],
    },
    '400.perlbench_attrs' => {
        'program' => 'perlbench',
        'args' => '-I. -I./lib attrs.pl',
        'input' => '',
        'output' => 'attrs.out',
        'errout' => 'attrs.err',
        'compare' => [
            'specdiff -l 10 data/test/output/attrs.out attrs.out',
        ],
    },
    '400.perlbench_gv' => {
        'program' => 'perlbench',
        'args' => '-I. -I./lib gv.pl',
        'input' => '',
        'output' => 'gv.out',
        'errout' => 'gv.err',
        'compare' => [
            'specdiff -l 10 data/test/output/gv.out gv.out',
        ],
    },
    '400.perlbench_test' => {
        'program' => 'perlbench',
        'args' => '-I. -I./lib test.pl',
        'input' => '',
        'output' => 'test.out',
        'errout' => 'test.err',
        'compare' => [
            'specdiff -l 10 data/test/output/append.out append.out',
            'specdiff -l 10 data/test/output/args.out args.out',
            'specdiff -l 10 data/test/output/arith.out arith.out',
            'specdiff -l 10 data/test/output/array.out array.out',
            'specdiff -l 10 data/test/output/auto.out auto.out',
            'specdiff -l 10 data/test/output/base_cond.out base_cond.out',
            'specdiff -l 10 data/test/output/base_pat.out base_pat.out',
            'specdiff -l 10 data/test/output/base_term.out base_term.out',
            'specdiff -l 10 data/test/output/bless.out bless.out',
            'specdiff -l 10 data/test/output/bop.out bop.out',
            'specdiff -l 10 data/test/output/bproto.out bproto.out',
            'specdiff -l 10 data/test/output/chars.out chars.out',
            'specdiff -l 10 data/test/output/chop.out chop.out',
            'specdiff -l 10 data/test/output/cmdopt.out cmdopt.out',
            'specdiff -l 10 data/test/output/cmp.out cmp.out',
            'specdiff -l 10 data/test/output/comp_term.out comp_term.out',
            'specdiff -l 10 data/test/output/concat.out concat.out',
            'specdiff -l 10 data/test/output/context.out context.out',
            'specdiff -l 10 data/test/output/decl.out decl.out',
            'specdiff -l 10 data/test/output/defins.out defins.out',
            'specdiff -l 10 data/test/output/delete.out delete.out',
            'specdiff -l 10 data/test/output/die.out die.out',
            'specdiff -l 10 data/test/output/do.out do.out',
            'specdiff -l 10 data/test/output/each.out each.out',
            'specdiff -l 10 data/test/output/eval.out eval.out',
            'specdiff -l 10 data/test/output/exists_sub.out exists_sub.out',
            'specdiff -l 10 data/test/output/exp.out exp.out',
            'specdiff -l 10 data/test/output/fh.out fh.out',
            'specdiff -l 10 data/test/output/grep.out grep.out',
            'specdiff -l 10 data/test/output/hashwarn.out hashwarn.out',
            'specdiff -l 10 data/test/output/if.out if.out',
            'specdiff -l 10 data/test/output/inc.out inc.out',
            'specdiff -l 10 data/test/output/index.out index.out',
            'specdiff -l 10 data/test/output/int.out int.out',
            'specdiff -l 10 data/test/output/join.out join.out',
            'specdiff -l 10 data/test/output/length.out length.out',
            'specdiff -l 10 data/test/output/lex.out lex.out',
            'specdiff -l 10 data/test/output/list.out list.out',
            'specdiff -l 10 data/test/output/loopctl.out loopctl.out',
            'specdiff -l 10 data/test/output/lop.out lop.out',
            'specdiff -l 10 data/test/output/method.out method.out',
            'specdiff -l 10 data/test/output/my.out my.out',
            'specdiff -l 10 data/test/output/nothr5005.out nothr5005.out',
            'specdiff -l 10 data/test/output/oct.out oct.out',
            'specdiff -l 10 data/test/output/op_cond.out op_cond.out',
            'specdiff -l 10 data/test/output/op_pat.out op_pat.out',
            'specdiff -l 10 data/test/output/ord.out ord.out',
            'specdiff -l 10 data/test/output/override.out override.out',
            'specdiff -l 10 data/test/output/package.out package.out',
            'specdiff -l 10 data/test/output/pos.out pos.out',
            'specdiff -l 10 data/test/output/push.out push.out',
            'specdiff -l 10 data/test/output/quotemeta.out quotemeta.out',
            'specdiff -l 10 data/test/output/range.out range.out',
            'specdiff -l 10 data/test/output/recurse.out recurse.out',
            'specdiff -l 10 data/test/output/regexp.out regexp.out',
            'specdiff -l 10 data/test/output/regexp_noamp.out regexp_noamp.out',
            'specdiff -l 10 data/test/output/repeat.out repeat.out',
            'specdiff -l 10 data/test/output/reverse.out reverse.out',
            'specdiff -l 10 data/test/output/rs.out rs.out',
            'specdiff -l 10 data/test/output/sleep.out sleep.out',
            'specdiff -l 10 data/test/output/sort.out sort.out',
            'specdiff -l 10 data/test/output/splice.out splice.out',
            'specdiff -l 10 data/test/output/study.out study.out',
            'specdiff -l 10 data/test/output/sub_lval.out sub_lval.out',
            'specdiff -l 10 data/test/output/subst.out subst.out',
            'specdiff -l 10 data/test/output/subst_amp.out subst_amp.out',
            'specdiff -l 10 data/test/output/subst_wamp.out subst_wamp.out',
            'specdiff -l 10 data/test/output/tr.out tr.out',
            'specdiff -l 10 data/test/output/undef.out undef.out',
            'specdiff -l 10 data/test/output/unshift.out unshift.out',
            'specdiff -l 10 data/test/output/vec.out vec.out',
            'specdiff -l 10 data/test/output/wantarray.out wantarray.out',
        ],
    },
    '400.perlbench_makerand' => {
        'program' => 'perlbench',
        'args' => '-I. -I./lib makerand.pl',
        'input' => '',
        'output' => 'makerand.out',
        'errout' => 'makerand.err',
        'compare' => [
            'specdiff -l 10 data/test/output/makerand.out makerand.out',
        ],
    },
    '400.perlbench_ref' => {
        'program' => 'perlbench',
        'args' => '-I. -I./lib ref.pl',
        'input' => '',
        'output' => 'ref.out',
        'errout' => 'ref.err',
        'compare' => [
            'specdiff -l 10 data/test/output/ref.out ref.out',
        ],
    },
    '400.perlbench_regmesg' => {
        'program' => 'perlbench',
        'args' => '-I. -I./lib regmesg.pl',
        'input' => '',
        'output' => 'regmesg.out',
        'errout' => 'regmesg.err',
        'compare' => [
            'specdiff -l 10 data/test/output/regmesg.out regmesg.out',
        ],
    },
    '400.perlbench_redef' => {
        'program' => 'perlbench',
        'args' => '-I. -I./lib redef.pl',
        'input' => '',
        'output' => 'redef.out',
        'errout' => 'redef.err',
        'compare' => [
            'specdiff -l 10 data/test/output/redef.out redef.out',
        ],
    },
    '401.bzip2_input.program' => {
        'program' => 'bzip2',
        'args' => 'input.program 5',
        'input' => '',
        'output' => 'input.program.out',
        'errout' => 'input.program.err',
        'compare' => [
            'specdiff -l 10 data/test/output/input.program.out input.program.out',
        ],
    },
    '401.bzip2_dryer.jpg' => {
        'program' => 'bzip2',
        'args' => 'dryer.jpg 2',
        'input' => '',
        'output' => 'dryer.jpg.out',
        'errout' => 'dryer.jpg.err',
        'compare' => [
            'specdiff -l 10 data/test/output/dryer.jpg.out dryer.jpg.out',
        ],
    },
    '403.gcc' => {
        'program' => 'gcc',
        'args' => 'cccp.i -o cccp.s',
        'input' => '',
        'output' => 'cccp.out',
        'errout' => 'cccp.err',
        'compare' => [
            'specdiff -l 10 data/test/output/cccp.s cccp.s',
        ],
    },
    '429.mcf' => {
        'program' => 'mcf',
        'args' => 'inp.in',
        'input' => '',
        'output' => 'inp.out',
        'errout' => 'inp.err',
        'compare' => [
            'specdiff -l 10 data/test/output/inp.out inp.out',
            'specdiff -l 10 data/test/output/mcf.out mcf.out',
        ],
    },
    '445.gobmk_capture' => {
        'program' => 'gobmk',
        'args' => '--quiet --mode gtp',
        'input' => 'capture.tst',
        'output' => 'capture.out',
        'errout' => 'capture.err',
        'compare' => [
            'specdiff -l 10 data/test/output/capture.out capture.out',
        ],
    },
    '445.gobmk_connect' => {
        'program' => 'gobmk',
        'args' => '--quiet --mode gtp',
        'input' => 'connect.tst',
        'output' => 'connect.out',
        'errout' => 'connect.err',
        'compare' => [
            'specdiff -l 10 data/test/output/connect.out connect.out',
        ],
    },
    '445.gobmk_connection' => {
        'program' => 'gobmk',
        'args' => '--quiet --mode gtp',
        'input' => 'connection.tst',
        'output' => 'connection.out',
        'errout' => 'connection.err',
        'compare' => [
            'specdiff -l 10 data/test/output/connection.out connection.out',
        ],
    },
    '445.gobmk_connection_rot' => {
        'program' => 'gobmk',
        'args' => '--quiet --mode gtp',
        'input' => 'connection_rot.tst',
        'output' => 'connection_rot.out',
        'errout' => 'connection_rot.err',
        'compare' => [
            'specdiff -l 10 data/test/output/connection_rot.out connection_rot.out',
        ],
    },
    '445.gobmk_cutstone' => {
        'program' => 'gobmk',
        'args' => '--quiet --mode gtp',
        'input' => 'cutstone.tst',
        'output' => 'cutstone.out',
        'errout' => 'cutstone.err',
        'compare' => [
            'specdiff -l 10 data/test/output/cutstone.out cutstone.out',
        ],
    },
    '445.gobmk_connect_rot' => {
        'program' => 'gobmk',
        'args' => '--quiet --mode gtp',
        'input' => 'connect_rot.tst',
        'output' => 'connect_rot.out',
        'errout' => 'connect_rot.err',
        'compare' => [
            'specdiff -l 10 data/test/output/connect_rot.out connect_rot.out',
        ],
    },
    '445.gobmk_dniwog' => {
        'program' => 'gobmk',
        'args' => '--quiet --mode gtp',
        'input' => 'dniwog.tst',
        'output' => 'dniwog.out',
        'errout' => 'dniwog.err',
        'compare' => [
            'specdiff -l 10 data/test/output/dniwog.out dniwog.out',
        ],
    },
    '456.hmmer' => {
        'program' => 'hmmer',
        'args' => '--fixed 0 --mean 325 --num 45000 --sd 200 --seed 0 bombesin.hmm',
        'input' => '',
        'output' => 'bombesin.out',
        'errout' => 'bombesin.err',
        'compare' => [
            'specdiff -l 10 --abstol 1e-05 --reltol 0.002 --skiptol 10 data/test/output/bombesin.out bombesin.out',
        ],
    },
    '458.sjeng' => {
        'program' => 'sjeng',
        'args' => 'test.txt',
        'input' => '',
        'output' => 'test.out',
        'errout' => 'test.err',
        'compare' => [
            'specdiff -l 10 data/test/output/test.out test.out',
        ],
    },
    '462.libquantum' => {
        'program' => 'libquantum',
        'args' => '33 5',
        'input' => '',
        'output' => 'test.out',
        'errout' => 'test.err',
        'compare' => [
            'specdiff -l 10 --obiwan data/test/output/test.out test.out',
        ],
    },
    '464.h264ref' => {
        'program' => 'h264ref',
        'args' => '-d foreman_test_encoder_baseline.cfg',
        'input' => '',
        'output' => 'foreman_test_baseline_encodelog.out',
        'errout' => 'foreman_test_baseline_encodelog.err',
        'compare' => [
            'specdiff -l 10 --cw --floatcompare data/test/output/foreman_test_baseline_encodelog.out foreman_test_baseline_encodelog.out',
            'specdiff -l 10 --binary --cw --floatcompare data/test/output/foreman_test_baseline_leakybucketparam.cfg foreman_test_baseline_leakybucketparam.cfg',
        ],
    },
    '471.omnetpp' => {
        'program' => 'omnetpp',
        'args' => 'omnetpp.ini',
        'input' => '',
        'output' => 'omnetpp.log',
        'errout' => 'omnetpp.err',
        'compare' => [
            'specdiff -l 10 --abstol 1e-06 --reltol 1e-05 data/test/output/omnetpp.log omnetpp.log',
            'specdiff -l 10 --abstol 1e-06 --reltol 1e-05 data/test/output/omnetpp.sca omnetpp.sca',
        ],
    },
    '473.astar' => {
        'program' => 'astar',
        'args' => 'lake.cfg',
        'input' => '',
        'output' => 'lake.out',
        'errout' => 'lake.err',
        'compare' => [
            'specdiff -l 10 --reltol 0.001 data/test/output/lake.out lake.out',
        ],
    },
    '483.xalancbmk' => {
        'program' => 'Xalan',
        'args' => '-v test.xml xalanc.xsl',
        'input' => '',
        'output' => 'test.out',
        'errout' => 'test.err',
        'compare' => [
            'specdiff -l 10 data/test/output/test.out test.out',
        ],
    },
    '410.bwaves' => {
        'program' => 'bwaves',
        'args' => '',
        'input' => '',
        'output' => '',
        'errout' => 'bwaves.err',
        'compare' => [
            'specdiff -l 10 --abstol 1e-16 data/test/output/bwaves.out bwaves.out',
            'specdiff -l 10 --reltol 0.015 data/test/output/bwaves2.out bwaves2.out',
            'specdiff -l 10 --reltol 1e-06 data/test/output/bwaves3.out bwaves3.out',
        ],
    },
    '416.gamess' => {
        'program' => 'gamess',
        'args' => '',
        'input' => 'exam29.config',
        'output' => 'exam29.out',
        'errout' => 'exam29.err',
        'compare' => [
            'specdiff -l 10 --abstol 1e-05 --reltol 0.0001 --ignorecase data/test/output/exam29.out exam29.out',
        ],
    },
    '433.milc' => {
        'program' => 'milc',
        'args' => '',
        'input' => 'su3imp.in',
        'output' => 'su3imp.out',
        'errout' => 'su3imp.err',
        'compare' => [
            'specdiff -l 10 --abstol 2e-07 --reltol 0.0001 data/test/output/su3imp.out su3imp.out',
        ],
    },
    '434.zeusmp' => {
        'program' => 'zeusmp',
        'args' => '',
        'input' => '',
        'output' => 'zeusmp.stdout',
        'errout' => 'zeusmp.err',
        'compare' => [
            'specdiff -l 10 --abstol 0.001 --reltol 0.001 data/test/output/tsl000aa tsl000aa',
        ],
    },
    '435.gromacs' => {
        'program' => 'gromacs',
        'args' => '-silent -deffnm gromacs -nice 0',
        'input' => '',
        'output' => '',
        'errout' => 'gromacs.err',
        'compare' => [
            'specdiff -l 10 --reltol 0.0125 data/test/output/gromacs.out gromacs.out',
        ],
    },
    '436.cactusADM' => {
        'program' => 'cactusADM',
        'args' => 'benchADM.par',
        'input' => '',
        'output' => 'benchADM.out',
        'errout' => 'benchADM.err',
        'compare' => [
            'specdiff -l 10 --floatcompare data/test/output/benchADM.out benchADM.out',
        ],
    },
    '437.leslie3d' => {
        'program' => 'leslie3d',
        'args' => '',
        'input' => 'leslie3d.in',
        'output' => 'leslie3d.stdout',
        'errout' => 'leslie3d.err',
        'compare' => [
            'specdiff -l 10 --floatcompare data/test/output/leslie3d.out leslie3d.out',
        ],
    },
    '444.namd' => {
        'program' => 'namd',
        'args' => '--input namd.input --iterations 1 --output namd.out ',
        'input' => '',
        'output' => 'namd.stdout',
        'errout' => 'namd.err',
        'compare' => [
            'specdiff -l 10 --abstol 1e-05 data/test/output/namd.out namd.out',
        ],
    },
    '447.dealII' => {
        'program' => 'dealII',
        'args' => '8',
        'input' => '',
        'output' => 'log',
        'errout' => 'dealII.err',
        'compare' => [
            'specdiff -l 10 --abstol 1e-07 data/all/output/grid-0.eps grid-0.eps',
            'specdiff -l 10 --abstol 1e-07 data/all/output/grid-1.eps grid-1.eps',
            'specdiff -l 10 --abstol 1e-07 data/all/output/grid-2.eps grid-2.eps',
            'specdiff -l 10 --abstol 1e-07 data/all/output/grid-3.eps grid-3.eps',
            'specdiff -l 10 --abstol 1e-07 data/all/output/grid-4.eps grid-4.eps',
            'specdiff -l 10 --abstol 1e-07 data/all/output/grid-5.eps grid-5.eps',
            'specdiff -l 10 --abstol 1e-07 data/all/output/grid-6.eps grid-6.eps',
            'specdiff -l 10 --abstol 1e-07 data/all/output/grid-7.eps grid-7.eps',
            'specdiff -l 10 --abstol 1e-07 data/all/output/grid-8.eps grid-8.eps',
            'specdiff -l 10 --abstol 1e-07 data/all/output/solution-0.gmv solution-0.gmv',
            'specdiff -l 10 --abstol 1e-07 data/all/output/solution-1.gmv solution-1.gmv',
            'specdiff -l 10 --abstol 1e-07 data/all/output/solution-2.gmv solution-2.gmv',
            'specdiff -l 10 --abstol 1e-07 data/all/output/solution-3.gmv solution-3.gmv',
            'specdiff -l 10 --abstol 1e-07 data/all/output/solution-4.gmv solution-4.gmv',
            'specdiff -l 10 --abstol 1e-07 data/all/output/solution-5.gmv solution-5.gmv',
            'specdiff -l 10 --abstol 1e-07 data/all/output/solution-6.gmv solution-6.gmv',
            'specdiff -l 10 --abstol 1e-07 data/all/output/solution-7.gmv solution-7.gmv',
            'specdiff -l 10 --abstol 1e-07 data/all/output/solution-8.gmv solution-8.gmv',
            'specdiff -l 10 --abstol 1e-07 data/test/output/log log',
        ],
    },
    '450.soplex' => {
        'program' => 'soplex',
        'args' => '-m10000 test.mps',
        'input' => '',
        'output' => 'test.out',
        'errout' => 'test.stderr',
        'compare' => [
            'specdiff -l 10 --abstol 1e-05 --reltol 0.0001 --obiwan data/test/output/test.out test.out',
            'specdiff -l 10 --abstol 20 --reltol 10 --obiwan data/test/output/test.stderr test.stderr',
        ],
    },
    '453.povray' => {
        'program' => 'povray',
        'args' => 'SPEC-benchmark-test.ini',
        'input' => '',
        'output' => 'SPEC-benchmark-test.stdout',
        'errout' => 'SPEC-benchmark-test.stderr',
        'compare' => [
            'specdiff -l 10 --abstol 0 --reltol 0.0002 data/test/output/SPEC-benchmark.log SPEC-benchmark.log',
            'specdiff -l 10 --abstol 0 --reltol 0.0002 --skiptol 50 --binary data/test/output/SPEC-benchmark.tga SPEC-benchmark.tga',
        ],
    },
    '454.calculix' => {
        'program' => 'calculix',
        'args' => '-i  beampic',
        'input' => '',
        'output' => 'beampic.log',
        'errout' => 'beampic.err',
        'compare' => [
            'specdiff -l 10 --abstol 1e-09 --reltol 1e-09 --obiwan data/test/output/SPECtestformatmodifier_z.txt SPECtestformatmodifier_z.txt',
            'specdiff -l 10 --abstol 1e-09 --reltol 1e-09 --obiwan data/test/output/beampic.dat beampic.dat',
        ],
    },
    '459.GemsFDTD' => {
        'program' => 'GemsFDTD',
        'args' => '',
        'input' => '',
        'output' => 'test.log',
        'errout' => 'test.err',
        'compare' => [
            'specdiff -l 10 --abstol 1e-10 --reltol 1e-09 --obiwan data/test/output/sphere_td.nft sphere_td.nft',
        ],
    },
    '465.tonto' => {
        'program' => 'tonto',
        'args' => '',
        'input' => '',
        'output' => 'tonto.out',
        'errout' => 'tonto.err',
        'compare' => [
            'specdiff -l 10 --reltol 0.006 data/test/output/stdout stdout',
        ],
    },
    '470.lbm' => {
        'program' => 'lbm',
        'args' => '20 reference.dat 0 1 100_100_130_cf_a.of',
        'input' => '',
        'output' => 'lbm.out',
        'errout' => 'lbm.err',
        'compare' => [
            'specdiff -l 10 --abstol 1e-07 data/test/output/lbm.out lbm.out',
        ],
    },
    '481.wrf' => {
        'program' => 'wrf',
        'args' => '',
        'input' => '',
        'output' => 'rsl.out.0000',
        'errout' => 'wrf.err',
        'compare' => [
            'specdiff -l 10 --abstol 0.01 --reltol 0.05 data/test/output/rsl.out.0000 rsl.out.0000',
        ],
    },
    '482.sphinx3' => {
        'program' => 'sphinx',
        'args' => 'ctlfile . args.an4',
        'input' => '',
        'output' => 'an4.log',
        'errout' => 'an4.err',
        'compare' => [
            'specdiff -l 10 --reltol 0.001 --floatcompare data/test/output/an4.log an4.log',
            'specdiff -l 10 --reltol 0.0004 --floatcompare data/test/output/considered.out considered.out',
            'specdiff -l 10 --reltol 1e-06 --floatcompare data/test/output/total_considered.out total_considered.out',
        ],
    },
};


$spec2006{train} = {
    '400.perlbench_scrabbl' => {
        'program' => 'perlbench',
        'args' => '-I. -I./lib scrabbl.pl',
        'input' => 'scrabbl.in',
        'output' => 'scrabbl.out',
        'errout' => 'scrabbl.err',
        'compare' => [
            'specdiff -l 10 data/train/output/scrabbl.out scrabbl.out',
        ],
    },
    '400.perlbench_diffmail.2.550.15.24.23.100' => {
        'program' => 'perlbench',
        'args' => '-I./lib diffmail.pl 2 550 15 24 23 100',
        'input' => '',
        'output' => 'diffmail.2.550.15.24.23.100.out',
        'errout' => 'diffmail.2.550.15.24.23.100.err',
        'compare' => [
            'specdiff -l 10 data/train/output/diffmail.2.550.15.24.23.100.out diffmail.2.550.15.24.23.100.out',
        ],
    },
    '400.perlbench_suns' => {
        'program' => 'perlbench',
        'args' => '-I. -I./lib suns.pl',
        'input' => '',
        'output' => 'suns.out',
        'errout' => 'suns.err',
        'compare' => [
            'specdiff -l 10 data/train/output/suns.out suns.out',
            'specdiff -l 10 data/train/output/validate validate',
        ],
    },
    '400.perlbench_splitmail.535.13.25.24.1091' => {
        'program' => 'perlbench',
        'args' => '-I./lib splitmail.pl 535 13 25 24 1091',
        'input' => '',
        'output' => 'splitmail.535.13.25.24.1091.out',
        'errout' => 'splitmail.535.13.25.24.1091.err',
        'compare' => [
            'specdiff -l 10 data/train/output/splitmail.535.13.25.24.1091.out splitmail.535.13.25.24.1091.out',
        ],
    },
    '400.perlbench_perfect.b.3' => {
        'program' => 'perlbench',
        'args' => '-I./lib perfect.pl b 3',
        'input' => '',
        'output' => 'perfect.b.3.out',
        'errout' => 'perfect.b.3.err',
        'compare' => [
            'specdiff -l 10 data/train/output/perfect.b.3.out perfect.b.3.out',
        ],
    },
    '401.bzip2_byoudoin.jpg' => {
        'program' => 'bzip2',
        'args' => 'byoudoin.jpg 5',
        'input' => '',
        'output' => 'byoudoin.jpg.out',
        'errout' => 'byoudoin.jpg.err',
        'compare' => [
            'specdiff -l 10 data/train/output/byoudoin.jpg.out byoudoin.jpg.out',
        ],
    },
    '401.bzip2_input.program' => {
        'program' => 'bzip2',
        'args' => 'input.program 10',
        'input' => '',
        'output' => 'input.program.out',
        'errout' => 'input.program.err',
        'compare' => [
            'specdiff -l 10 data/train/output/input.program.out input.program.out',
        ],
    },
    '401.bzip2_input.combined' => {
        'program' => 'bzip2',
        'args' => 'input.combined 80',
        'input' => '',
        'output' => 'input.combined.out',
        'errout' => 'input.combined.err',
        'compare' => [
            'specdiff -l 10 data/train/output/input.combined.out input.combined.out',
        ],
    },
    '403.gcc' => {
        'program' => 'gcc',
        'args' => 'integrate.i -o integrate.s',
        'input' => '',
        'output' => 'integrate.out',
        'errout' => 'integrate.err',
        'compare' => [
            'specdiff -l 10 data/train/output/integrate.s integrate.s',
        ],
    },
    '429.mcf' => {
        'program' => 'mcf',
        'args' => 'inp.in',
        'input' => '',
        'output' => 'inp.out',
        'errout' => 'inp.err',
        'compare' => [
            'specdiff -l 10 data/train/output/inp.out inp.out',
            'specdiff -l 10 data/train/output/mcf.out mcf.out',
        ],
    },
    '445.gobmk_nicklas4' => {
        'program' => 'gobmk',
        'args' => '--quiet --mode gtp',
        'input' => 'nicklas4.tst',
        'output' => 'nicklas4.out',
        'errout' => 'nicklas4.err',
        'compare' => [
            'specdiff -l 10 data/train/output/nicklas4.out nicklas4.out',
        ],
    },
    '445.gobmk_nicklas2' => {
        'program' => 'gobmk',
        'args' => '--quiet --mode gtp',
        'input' => 'nicklas2.tst',
        'output' => 'nicklas2.out',
        'errout' => 'nicklas2.err',
        'compare' => [
            'specdiff -l 10 data/train/output/nicklas2.out nicklas2.out',
        ],
    },
    '445.gobmk_arb' => {
        'program' => 'gobmk',
        'args' => '--quiet --mode gtp',
        'input' => 'arb.tst',
        'output' => 'arb.out',
        'errout' => 'arb.err',
        'compare' => [
            'specdiff -l 10 data/train/output/arb.out arb.out',
        ],
    },
    '445.gobmk_arend' => {
        'program' => 'gobmk',
        'args' => '--quiet --mode gtp',
        'input' => 'arend.tst',
        'output' => 'arend.out',
        'errout' => 'arend.err',
        'compare' => [
            'specdiff -l 10 data/train/output/arend.out arend.out',
        ],
    },
    '445.gobmk_atari_atari' => {
        'program' => 'gobmk',
        'args' => '--quiet --mode gtp',
        'input' => 'atari_atari.tst',
        'output' => 'atari_atari.out',
        'errout' => 'atari_atari.err',
        'compare' => [
            'specdiff -l 10 data/train/output/atari_atari.out atari_atari.out',
        ],
    },
    '445.gobmk_arion' => {
        'program' => 'gobmk',
        'args' => '--quiet --mode gtp',
        'input' => 'arion.tst',
        'output' => 'arion.out',
        'errout' => 'arion.err',
        'compare' => [
            'specdiff -l 10 data/train/output/arion.out arion.out',
        ],
    },
    '445.gobmk_buzco' => {
        'program' => 'gobmk',
        'args' => '--quiet --mode gtp',
        'input' => 'buzco.tst',
        'output' => 'buzco.out',
        'errout' => 'buzco.err',
        'compare' => [
            'specdiff -l 10 data/train/output/buzco.out buzco.out',
        ],
    },
    '445.gobmk_blunder' => {
        'program' => 'gobmk',
        'args' => '--quiet --mode gtp',
        'input' => 'blunder.tst',
        'output' => 'blunder.out',
        'errout' => 'blunder.err',
        'compare' => [
            'specdiff -l 10 data/train/output/blunder.out blunder.out',
        ],
    },
    '456.hmmer' => {
        'program' => 'hmmer',
        'args' => '--fixed 0 --mean 425 --num 85000 --sd 300 --seed 0 leng100.hmm',
        'input' => '',
        'output' => 'leng100.out',
        'errout' => 'leng100.err',
        'compare' => [
            'specdiff -l 10 --abstol 1e-05 --reltol 0.002 --skiptol 10 data/train/output/leng100.out leng100.out',
        ],
    },
    '458.sjeng' => {
        'program' => 'sjeng',
        'args' => 'train.txt',
        'input' => '',
        'output' => 'train.out',
        'errout' => 'train.err',
        'compare' => [
            'specdiff -l 10 data/train/output/train.out train.out',
        ],
    },
    '462.libquantum' => {
        'program' => 'libquantum',
        'args' => '143 25',
        'input' => '',
        'output' => 'train.out',
        'errout' => 'train.err',
        'compare' => [
            'specdiff -l 10 --obiwan data/train/output/train.out train.out',
        ],
    },
    '464.h264ref' => {
        'program' => 'h264ref',
        'args' => '-d foreman_train_encoder_baseline.cfg',
        'input' => '',
        'output' => 'foreman_train_baseline_encodelog.out',
        'errout' => 'foreman_train_baseline_encodelog.err',
        'compare' => [
            'specdiff -l 10 --cw --floatcompare data/train/output/foreman_train_baseline_encodelog.out foreman_train_baseline_encodelog.out',
            'specdiff -l 10 --binary --cw --floatcompare data/train/output/foreman_train_baseline_leakybucketparam.cfg foreman_train_baseline_leakybucketparam.cfg',
        ],
    },
    '471.omnetpp' => {
        'program' => 'omnetpp',
        'args' => 'omnetpp.ini',
        'input' => '',
        'output' => 'omnetpp.log',
        'errout' => 'omnetpp.err',
        'compare' => [
            'specdiff -l 10 --abstol 1e-06 --reltol 1e-05 data/train/output/omnetpp.log omnetpp.log',
            'specdiff -l 10 --abstol 1e-06 --reltol 1e-05 data/train/output/omnetpp.sca omnetpp.sca',
        ],
    },
    '473.astar_rivers1' => {
        'program' => 'astar',
        'args' => 'rivers1.cfg',
        'input' => '',
        'output' => 'rivers1.out',
        'errout' => 'rivers1.err',
        'compare' => [
            'specdiff -l 10 --reltol 0.001 data/train/output/rivers1.out rivers1.out',
        ],
    },
    '473.astar_BigLakes1024' => {
        'program' => 'astar',
        'args' => 'BigLakes1024.cfg',
        'input' => '',
        'output' => 'BigLakes1024.out',
        'errout' => 'BigLakes1024.err',
        'compare' => [
            'specdiff -l 10 --reltol 0.001 data/train/output/BigLakes1024.out BigLakes1024.out',
        ],
    },
    '483.xalancbmk' => {
        'program' => 'Xalan',
        'args' => '-v allbooks.xml xalanc.xsl',
        'input' => '',
        'output' => 'train.out',
        'errout' => 'train.err',
        'compare' => [
            'specdiff -l 10 data/train/output/train.out train.out',
        ],
    },
    '410.bwaves' => {
        'program' => 'bwaves',
        'args' => '',
        'input' => '',
        'output' => '',
        'errout' => 'bwaves.err',
        'compare' => [
            'specdiff -l 10 --abstol 1e-16 data/train/output/bwaves.out bwaves.out',
            'specdiff -l 10 --reltol 0.015 data/train/output/bwaves2.out bwaves2.out',
            'specdiff -l 10 --reltol 1e-06 data/train/output/bwaves3.out bwaves3.out',
        ],
    },
    '416.gamess' => {
        'program' => 'gamess',
        'args' => '',
        'input' => 'h2ocu2+.energy.config',
        'output' => 'h2ocu2+.energy.out',
        'errout' => 'h2ocu2+.energy.err',
        'compare' => [
            'specdiff -l 10 --abstol 1e-05 --reltol 0.0001 --ignorecase data/train/output/h2ocu2+.energy.out h2ocu2+.energy.out',
        ],
    },
    '433.milc' => {
        'program' => 'milc',
        'args' => '',
        'input' => 'su3imp.in',
        'output' => 'su3imp.out',
        'errout' => 'su3imp.err',
        'compare' => [
            'specdiff -l 10 --abstol 2e-07 --reltol 0.0001 data/train/output/su3imp.out su3imp.out',
        ],
    },
    '434.zeusmp' => {
        'program' => 'zeusmp',
        'args' => '',
        'input' => '',
        'output' => 'zeusmp.stdout',
        'errout' => 'zeusmp.err',
        'compare' => [
            'specdiff -l 10 --abstol 0.001 --reltol 0.001 data/train/output/tsl000aa tsl000aa',
        ],
    },
    '435.gromacs' => {
        'program' => 'gromacs',
        'args' => '-silent -deffnm gromacs -nice 0',
        'input' => '',
        'output' => '',
        'errout' => 'gromacs.err',
        'compare' => [
            'specdiff -l 10 --reltol 0.0125 data/train/output/gromacs.out gromacs.out',
        ],
    },
    '436.cactusADM' => {
        'program' => 'cactusADM',
        'args' => 'benchADM.par',
        'input' => '',
        'output' => 'benchADM.out',
        'errout' => 'benchADM.err',
        'compare' => [
            'specdiff -l 10 --floatcompare data/train/output/benchADM.out benchADM.out',
        ],
    },
    '437.leslie3d' => {
        'program' => 'leslie3d',
        'args' => '',
        'input' => 'leslie3d.in',
        'output' => 'leslie3d.stdout',
        'errout' => 'leslie3d.err',
        'compare' => [
            'specdiff -l 10 --floatcompare data/train/output/leslie3d.out leslie3d.out',
        ],
    },
    '444.namd' => {
        'program' => 'namd',
        'args' => '--input namd.input --iterations 1 --output namd.out ',
        'input' => '',
        'output' => 'namd.stdout',
        'errout' => 'namd.err',
        'compare' => [
            'specdiff -l 10 --abstol 1e-05 data/train/output/namd.out namd.out',
        ],
    },
    '447.dealII' => {
        'program' => 'dealII',
        'args' => '10',
        'input' => '',
        'output' => 'log',
        'errout' => 'dealII.err',
        'compare' => [
            'specdiff -l 10 --abstol 1e-07 data/all/output/grid-0.eps grid-0.eps',
            'specdiff -l 10 --abstol 1e-07 data/all/output/grid-1.eps grid-1.eps',
            'specdiff -l 10 --abstol 1e-07 data/all/output/grid-2.eps grid-2.eps',
            'specdiff -l 10 --abstol 1e-07 data/all/output/grid-3.eps grid-3.eps',
            'specdiff -l 10 --abstol 1e-07 data/all/output/grid-4.eps grid-4.eps',
            'specdiff -l 10 --abstol 1e-07 data/all/output/grid-5.eps grid-5.eps',
            'specdiff -l 10 --abstol 1e-07 data/all/output/grid-6.eps grid-6.eps',
            'specdiff -l 10 --abstol 1e-07 data/all/output/grid-7.eps grid-7.eps',
            'specdiff -l 10 --abstol 1e-07 data/all/output/grid-8.eps grid-8.eps',
            'specdiff -l 10 --abstol 1e-07 data/all/output/solution-0.gmv solution-0.gmv',
            'specdiff -l 10 --abstol 1e-07 data/all/output/solution-1.gmv solution-1.gmv',
            'specdiff -l 10 --abstol 1e-07 data/all/output/solution-2.gmv solution-2.gmv',
            'specdiff -l 10 --abstol 1e-07 data/all/output/solution-3.gmv solution-3.gmv',
            'specdiff -l 10 --abstol 1e-07 data/all/output/solution-4.gmv solution-4.gmv',
            'specdiff -l 10 --abstol 1e-07 data/all/output/solution-5.gmv solution-5.gmv',
            'specdiff -l 10 --abstol 1e-07 data/all/output/solution-6.gmv solution-6.gmv',
            'specdiff -l 10 --abstol 1e-07 data/all/output/solution-7.gmv solution-7.gmv',
            'specdiff -l 10 --abstol 1e-07 data/all/output/solution-8.gmv solution-8.gmv',
            'specdiff -l 10 --abstol 1e-07 data/train/output/grid-10.eps grid-10.eps',
            'specdiff -l 10 --abstol 1e-07 data/train/output/grid-9.eps grid-9.eps',
            'specdiff -l 10 --abstol 1e-07 data/train/output/log log',
            'specdiff -l 10 --abstol 1e-07 data/train/output/solution-10.gmv solution-10.gmv',
            'specdiff -l 10 --abstol 1e-07 data/train/output/solution-9.gmv solution-9.gmv',
        ],
    },
    '450.soplex_train' => {
        'program' => 'soplex',
        'args' => '-m1200 train.mps',
        'input' => '',
        'output' => 'train.out',
        'errout' => 'train.stderr',
        'compare' => [
            'specdiff -l 10 --abstol 1e-05 --reltol 20 --obiwan data/train/output/train.out train.out',
            'specdiff -l 10 --abstol 20 --reltol 0.0001 --obiwan data/train/output/train.stderr train.stderr',
        ],
    },
    '450.soplex_pds-20.mps' => {
        'program' => 'soplex',
        'args' => '-s1 -e -m5000 pds-20.mps',
        'input' => '',
        'output' => 'pds-20.mps.out',
        'errout' => 'pds-20.mps.stderr',
        'compare' => [
            'specdiff -l 10 --abstol 1e-05 --reltol 20 --obiwan data/train/output/pds-20.mps.out pds-20.mps.out',
            'specdiff -l 10 --abstol 20 --reltol 0.0001 --obiwan data/train/output/pds-20.mps.stderr pds-20.mps.stderr',
        ],
    },
    '453.povray' => {
        'program' => 'povray',
        'args' => 'SPEC-benchmark-train.ini',
        'input' => '',
        'output' => 'SPEC-benchmark-train.stdout',
        'errout' => 'SPEC-benchmark-train.stderr',
        'compare' => [
            'specdiff -l 10 --abstol 0 --reltol 5e-05 data/train/output/SPEC-benchmark.log SPEC-benchmark.log',
            'specdiff -l 10 --abstol 0 --reltol 5e-05 --skiptol 50 --binary data/train/output/SPEC-benchmark.tga SPEC-benchmark.tga',
        ],
    },
    '454.calculix' => {
        'program' => 'calculix',
        'args' => '-i  stairs',
        'input' => '',
        'output' => 'stairs.log',
        'errout' => 'stairs.err',
        'compare' => [
            'specdiff -l 10 --abstol 1e-09 --reltol 1e-09 --obiwan data/train/output/SPECtestformatmodifier_z.txt SPECtestformatmodifier_z.txt',
            'specdiff -l 10 --abstol 1e-09 --reltol 1e-09 --obiwan data/train/output/stairs.dat stairs.dat',
        ],
    },
    '459.GemsFDTD' => {
        'program' => 'GemsFDTD',
        'args' => '',
        'input' => '',
        'output' => 'train.log',
        'errout' => 'train.err',
        'compare' => [
            'specdiff -l 10 --abstol 1e-10 --reltol 1e-09 --obiwan data/train/output/sphere_td.nft sphere_td.nft',
        ],
    },
    '465.tonto' => {
        'program' => 'tonto',
        'args' => '',
        'input' => '',
        'output' => 'tonto.out',
        'errout' => 'tonto.err',
        'compare' => [
            'specdiff -l 10 --reltol 0.006 data/train/output/stdout stdout',
        ],
    },
    '470.lbm' => {
        'program' => 'lbm',
        'args' => '300 reference.dat 0 1 100_100_130_cf_b.of',
        'input' => '',
        'output' => 'lbm.out',
        'errout' => 'lbm.err',
        'compare' => [
            'specdiff -l 10 --abstol 1e-07 data/train/output/lbm.out lbm.out',
        ],
    },
    '481.wrf' => {
        'program' => 'wrf',
        'args' => '',
        'input' => '',
        'output' => 'rsl.out.0000',
        'errout' => 'wrf.err',
        'compare' => [
            'specdiff -l 10 --abstol 0.01 --reltol 0.05 data/train/output/rsl.out.0000 rsl.out.0000',
        ],
    },
    '482.sphinx3' => {
        'program' => 'sphinx',
        'args' => 'ctlfile . args.an4',
        'input' => '',
        'output' => 'an4.log',
        'errout' => 'an4.err',
        'compare' => [
            'specdiff -l 10 --reltol 0.001 --floatcompare data/train/output/an4.log an4.log',
            'specdiff -l 10 --reltol 0.0004 --floatcompare data/train/output/considered.out considered.out',
            'specdiff -l 10 --reltol 1e-06 --floatcompare data/train/output/total_considered.out total_considered.out',
        ],
    },
};


$spec2006{ref} = {
    '400.perlbench_checkspam.2500.5.25.11.150.1.1.1.1' => {
        'program' => 'perlbench',
        'args' => '-I./lib checkspam.pl 2500 5 25 11 150 1 1 1 1',
        'input' => '',
        'output' => 'checkspam.2500.5.25.11.150.1.1.1.1.out',
        'errout' => 'checkspam.2500.5.25.11.150.1.1.1.1.err',
        'compare' => [
            'specdiff -l 10 data/ref/output/checkspam.2500.5.25.11.150.1.1.1.1.out checkspam.2500.5.25.11.150.1.1.1.1.out',
        ],
    },
    '400.perlbench_splitmail.1600.12.26.16.4500' => {
        'program' => 'perlbench',
        'args' => '-I./lib splitmail.pl 1600 12 26 16 4500',
        'input' => '',
        'output' => 'splitmail.1600.12.26.16.4500.out',
        'errout' => 'splitmail.1600.12.26.16.4500.err',
        'compare' => [
            'specdiff -l 10 data/ref/output/splitmail.1600.12.26.16.4500.out splitmail.1600.12.26.16.4500.out',
        ],
    },
    '400.perlbench_diffmail.4.800.10.17.19.300' => {
        'program' => 'perlbench',
        'args' => '-I./lib diffmail.pl 4 800 10 17 19 300',
        'input' => '',
        'output' => 'diffmail.4.800.10.17.19.300.out',
        'errout' => 'diffmail.4.800.10.17.19.300.err',
        'compare' => [
            'specdiff -l 10 data/ref/output/diffmail.4.800.10.17.19.300.out diffmail.4.800.10.17.19.300.out',
        ],
    },
    '401.bzip2_text.html' => {
        'program' => 'bzip2',
        'args' => 'text.html 280',
        'input' => '',
        'output' => 'text.html.out',
        'errout' => 'text.html.err',
        'compare' => [
            'specdiff -l 10 data/ref/output/text.html.out text.html.out',
        ],
    },
    '401.bzip2_input.combined' => {
        'program' => 'bzip2',
        'args' => 'input.combined 200',
        'input' => '',
        'output' => 'input.combined.out',
        'errout' => 'input.combined.err',
        'compare' => [
            'specdiff -l 10 data/ref/output/input.combined.out input.combined.out',
        ],
    },
    '401.bzip2_liberty.jpg' => {
        'program' => 'bzip2',
        'args' => 'liberty.jpg 30',
        'input' => '',
        'output' => 'liberty.jpg.out',
        'errout' => 'liberty.jpg.err',
        'compare' => [
            'specdiff -l 10 data/ref/output/liberty.jpg.out liberty.jpg.out',
        ],
    },
    '401.bzip2_input.program' => {
        'program' => 'bzip2',
        'args' => 'input.program 280',
        'input' => '',
        'output' => 'input.program.out',
        'errout' => 'input.program.err',
        'compare' => [
            'specdiff -l 10 data/ref/output/input.program.out input.program.out',
        ],
    },
    '401.bzip2_chicken.jpg' => {
        'program' => 'bzip2',
        'args' => 'chicken.jpg 30',
        'input' => '',
        'output' => 'chicken.jpg.out',
        'errout' => 'chicken.jpg.err',
        'compare' => [
            'specdiff -l 10 data/ref/output/chicken.jpg.out chicken.jpg.out',
        ],
    },
    '401.bzip2_input.source' => {
        'program' => 'bzip2',
        'args' => 'input.source 280',
        'input' => '',
        'output' => 'input.source.out',
        'errout' => 'input.source.err',
        'compare' => [
            'specdiff -l 10 data/ref/output/input.source.out input.source.out',
        ],
    },
    '403.gcc_c-typeck' => {
        'program' => 'gcc',
        'args' => 'c-typeck.i -o c-typeck.s',
        'input' => '',
        'output' => 'c-typeck.out',
        'errout' => 'c-typeck.err',
        'compare' => [
            'specdiff -l 10 data/ref/output/c-typeck.s c-typeck.s',
        ],
    },
    '403.gcc_s04' => {
        'program' => 'gcc',
        'args' => 's04.i -o s04.s',
        'input' => '',
        'output' => 's04.out',
        'errout' => 's04.err',
        'compare' => [
            'specdiff -l 10 data/ref/output/s04.s s04.s',
        ],
    },
    '403.gcc_200' => {
        'program' => 'gcc',
        'args' => '200.i -o 200.s',
        'input' => '',
        'output' => '200.out',
        'errout' => '200.err',
        'compare' => [
            'specdiff -l 10 data/ref/output/200.s 200.s',
        ],
    },
    '403.gcc_expr2' => {
        'program' => 'gcc',
        'args' => 'expr2.i -o expr2.s',
        'input' => '',
        'output' => 'expr2.out',
        'errout' => 'expr2.err',
        'compare' => [
            'specdiff -l 10 data/ref/output/expr2.s expr2.s',
        ],
    },
    '403.gcc_cp-decl' => {
        'program' => 'gcc',
        'args' => 'cp-decl.i -o cp-decl.s',
        'input' => '',
        'output' => 'cp-decl.out',
        'errout' => 'cp-decl.err',
        'compare' => [
            'specdiff -l 10 data/ref/output/cp-decl.s cp-decl.s',
        ],
    },
    '403.gcc_166' => {
        'program' => 'gcc',
        'args' => '166.i -o 166.s',
        'input' => '',
        'output' => '166.out',
        'errout' => '166.err',
        'compare' => [
            'specdiff -l 10 data/ref/output/166.s 166.s',
        ],
    },
    '403.gcc_g23' => {
        'program' => 'gcc',
        'args' => 'g23.i -o g23.s',
        'input' => '',
        'output' => 'g23.out',
        'errout' => 'g23.err',
        'compare' => [
            'specdiff -l 10 data/ref/output/g23.s g23.s',
        ],
    },
    '403.gcc_expr' => {
        'program' => 'gcc',
        'args' => 'expr.i -o expr.s',
        'input' => '',
        'output' => 'expr.out',
        'errout' => 'expr.err',
        'compare' => [
            'specdiff -l 10 data/ref/output/expr.s expr.s',
        ],
    },
    '403.gcc_scilab' => {
        'program' => 'gcc',
        'args' => 'scilab.i -o scilab.s',
        'input' => '',
        'output' => 'scilab.out',
        'errout' => 'scilab.err',
        'compare' => [
            'specdiff -l 10 data/ref/output/scilab.s scilab.s',
        ],
    },
    '429.mcf' => {
        'program' => 'mcf',
        'args' => 'inp.in',
        'input' => '',
        'output' => 'inp.out',
        'errout' => 'inp.err',
        'compare' => [
            'specdiff -l 10 data/ref/output/inp.out inp.out',
            'specdiff -l 10 data/ref/output/mcf.out mcf.out',
        ],
    },
    '445.gobmk_nngs' => {
        'program' => 'gobmk',
        'args' => '--quiet --mode gtp',
        'input' => 'nngs.tst',
        'output' => 'nngs.out',
        'errout' => 'nngs.err',
        'compare' => [
            'specdiff -l 10 data/ref/output/nngs.out nngs.out',
        ],
    },
    '445.gobmk_trevorc' => {
        'program' => 'gobmk',
        'args' => '--quiet --mode gtp',
        'input' => 'trevorc.tst',
        'output' => 'trevorc.out',
        'errout' => 'trevorc.err',
        'compare' => [
            'specdiff -l 10 data/ref/output/trevorc.out trevorc.out',
        ],
    },
    '445.gobmk_13x13' => {
        'program' => 'gobmk',
        'args' => '--quiet --mode gtp',
        'input' => '13x13.tst',
        'output' => '13x13.out',
        'errout' => '13x13.err',
        'compare' => [
            'specdiff -l 10 data/ref/output/13x13.out 13x13.out',
        ],
    },
    '445.gobmk_trevord' => {
        'program' => 'gobmk',
        'args' => '--quiet --mode gtp',
        'input' => 'trevord.tst',
        'output' => 'trevord.out',
        'errout' => 'trevord.err',
        'compare' => [
            'specdiff -l 10 data/ref/output/trevord.out trevord.out',
        ],
    },
    '445.gobmk_score2' => {
        'program' => 'gobmk',
        'args' => '--quiet --mode gtp',
        'input' => 'score2.tst',
        'output' => 'score2.out',
        'errout' => 'score2.err',
        'compare' => [
            'specdiff -l 10 data/ref/output/score2.out score2.out',
        ],
    },
    '456.hmmer_nph3' => {
        'program' => 'hmmer',
        'args' => 'nph3.hmm swiss41',
        'input' => '',
        'output' => 'nph3.out',
        'errout' => 'nph3.err',
        'compare' => [
            'specdiff -l 10 --abstol 1e-05 --reltol 0.002 --skiptol 10 data/ref/output/nph3.out nph3.out',
        ],
    },
    '456.hmmer_retro' => {
        'program' => 'hmmer',
        'args' => '--fixed 0 --mean 500 --num 500000 --sd 350 --seed 0 retro.hmm',
        'input' => '',
        'output' => 'retro.out',
        'errout' => 'retro.err',
        'compare' => [
            'specdiff -l 10 --abstol 1e-05 --reltol 0.002 --skiptol 10 data/ref/output/retro.out retro.out',
        ],
    },
    '458.sjeng' => {
        'program' => 'sjeng',
        'args' => 'ref.txt',
        'input' => '',
        'output' => 'ref.out',
        'errout' => 'ref.err',
        'compare' => [
            'specdiff -l 10 data/ref/output/ref.out ref.out',
        ],
    },
    '462.libquantum' => {
        'program' => 'libquantum',
        'args' => '1397 8',
        'input' => '',
        'output' => 'ref.out',
        'errout' => 'ref.err',
        'compare' => [
            'specdiff -l 10 --obiwan data/ref/output/ref.out ref.out',
        ],
    },
    '464.h264ref_sss_main_encodelog' => {
        'program' => 'h264ref',
        'args' => '-d sss_encoder_main.cfg',
        'input' => '',
        'output' => 'sss_main_encodelog.out',
        'errout' => 'sss_main_encodelog.err',
        'compare' => [
            'specdiff -l 10 --cw --floatcompare data/ref/output/sss_main_encodelog.out sss_main_encodelog.out',
            'specdiff -l 10 --binary --cw --floatcompare data/ref/output/sss_main_leakybucketparam.cfg sss_main_leakybucketparam.cfg',
        ],
    },
    '464.h264ref_foreman_ref_main_encodelog' => {
        'program' => 'h264ref',
        'args' => '-d foreman_ref_encoder_main.cfg',
        'input' => '',
        'output' => 'foreman_ref_main_encodelog.out',
        'errout' => 'foreman_ref_main_encodelog.err',
        'compare' => [
            'specdiff -l 10 --cw --floatcompare data/ref/output/foreman_ref_main_encodelog.out foreman_ref_main_encodelog.out',
            'specdiff -l 10 --binary --cw --floatcompare data/ref/output/foreman_ref_main_leakybucketparam.cfg foreman_ref_main_leakybucketparam.cfg',
        ],
    },
    '464.h264ref_foreman_ref_baseline_encodelog' => {
        'program' => 'h264ref',
        'args' => '-d foreman_ref_encoder_baseline.cfg',
        'input' => '',
        'output' => 'foreman_ref_baseline_encodelog.out',
        'errout' => 'foreman_ref_baseline_encodelog.err',
        'compare' => [
            'specdiff -l 10 --cw --floatcompare data/ref/output/foreman_ref_baseline_encodelog.out foreman_ref_baseline_encodelog.out',
            'specdiff -l 10 --binary --cw --floatcompare data/ref/output/foreman_ref_baseline_leakybucketparam.cfg foreman_ref_baseline_leakybucketparam.cfg',
        ],
    },
    '471.omnetpp' => {
        'program' => 'omnetpp',
        'args' => 'omnetpp.ini',
        'input' => '',
        'output' => 'omnetpp.log',
        'errout' => 'omnetpp.err',
        'compare' => [
            'specdiff -l 10 --abstol 1e-06 --reltol 1e-05 data/ref/output/omnetpp.log omnetpp.log',
            'specdiff -l 10 --abstol 1e-06 --reltol 1e-05 data/ref/output/omnetpp.sca omnetpp.sca',
        ],
    },
    '473.astar_rivers' => {
        'program' => 'astar',
        'args' => 'rivers.cfg',
        'input' => '',
        'output' => 'rivers.out',
        'errout' => 'rivers.err',
        'compare' => [
            'specdiff -l 10 --reltol 0.001 data/ref/output/rivers.out rivers.out',
        ],
    },
    '473.astar_BigLakes2048' => {
        'program' => 'astar',
        'args' => 'BigLakes2048.cfg',
        'input' => '',
        'output' => 'BigLakes2048.out',
        'errout' => 'BigLakes2048.err',
        'compare' => [
            'specdiff -l 10 --reltol 0.001 data/ref/output/BigLakes2048.out BigLakes2048.out',
        ],
    },
    '483.xalancbmk' => {
        'program' => 'Xalan',
        'args' => '-v t5.xml xalanc.xsl',
        'input' => '',
        'output' => 'ref.out',
        'errout' => 'ref.err',
        'compare' => [
            'specdiff -l 10 data/ref/output/ref.out ref.out',
        ],
    },
    '410.bwaves' => {
        'program' => 'bwaves',
        'args' => '',
        'input' => '',
        'output' => '',
        'errout' => 'bwaves.err',
        'compare' => [
            'specdiff -l 10 --abstol 1e-16 data/ref/output/bwaves.out bwaves.out',
            'specdiff -l 10 --reltol 0.015 data/ref/output/bwaves2.out bwaves2.out',
            'specdiff -l 10 --reltol 1e-06 data/ref/output/bwaves3.out bwaves3.out',
        ],
    },
    '416.gamess_h2ocu2+.gradient' => {
        'program' => 'gamess',
        'args' => '',
        'input' => 'h2ocu2+.gradient.config',
        'output' => 'h2ocu2+.gradient.out',
        'errout' => 'h2ocu2+.gradient.err',
        'compare' => [
            'specdiff -l 10 --abstol 1e-05 --reltol 0.0001 --ignorecase data/ref/output/h2ocu2+.gradient.out h2ocu2+.gradient.out',
        ],
    },
    '416.gamess_cytosine.2' => {
        'program' => 'gamess',
        'args' => '',
        'input' => 'cytosine.2.config',
        'output' => 'cytosine.2.out',
        'errout' => 'cytosine.2.err',
        'compare' => [
            'specdiff -l 10 --abstol 1e-05 --reltol 0.0001 --ignorecase data/ref/output/cytosine.2.out cytosine.2.out',
        ],
    },
    '416.gamess_triazolium' => {
        'program' => 'gamess',
        'args' => '',
        'input' => 'triazolium.config',
        'output' => 'triazolium.out',
        'errout' => 'triazolium.err',
        'compare' => [
            'specdiff -l 10 --abstol 1e-05 --reltol 0.0001 --ignorecase data/ref/output/triazolium.out triazolium.out',
        ],
    },
    '433.milc' => {
        'program' => 'milc',
        'args' => '',
        'input' => 'su3imp.in',
        'output' => 'su3imp.out',
        'errout' => 'su3imp.err',
        'compare' => [
            'specdiff -l 10 --abstol 2e-07 --reltol 0.0001 data/ref/output/su3imp.out su3imp.out',
        ],
    },
    '434.zeusmp' => {
        'program' => 'zeusmp',
        'args' => '',
        'input' => '',
        'output' => 'zeusmp.stdout',
        'errout' => 'zeusmp.err',
        'compare' => [
            'specdiff -l 10 --abstol 0.001 --reltol 0.001 data/ref/output/tsl000aa tsl000aa',
        ],
    },
    '435.gromacs' => {
        'program' => 'gromacs',
        'args' => '-silent -deffnm gromacs -nice 0',
        'input' => '',
        'output' => '',
        'errout' => 'gromacs.err',
        'compare' => [
            'specdiff -l 10 --reltol 0.0125 data/ref/output/gromacs.out gromacs.out',
        ],
    },
    '436.cactusADM' => {
        'program' => 'cactusADM',
        'args' => 'benchADM.par',
        'input' => '',
        'output' => 'benchADM.out',
        'errout' => 'benchADM.err',
        'compare' => [
            'specdiff -l 10 --floatcompare data/ref/output/benchADM.out benchADM.out',
        ],
    },
    '437.leslie3d' => {
        'program' => 'leslie3d',
        'args' => '',
        'input' => 'leslie3d.in',
        'output' => 'leslie3d.stdout',
        'errout' => 'leslie3d.err',
        'compare' => [
            'specdiff -l 10 --floatcompare data/ref/output/leslie3d.out leslie3d.out',
        ],
    },
    '444.namd' => {
        'program' => 'namd',
        'args' => '--input namd.input --iterations 38 --output namd.out ',
        'input' => '',
        'output' => 'namd.stdout',
        'errout' => 'namd.err',
        'compare' => [
            'specdiff -l 10 --abstol 1e-05 data/ref/output/namd.out namd.out',
        ],
    },
    '447.dealII' => {
        'program' => 'dealII',
        'args' => '23',
        'input' => '',
        'output' => 'log',
        'errout' => 'dealII.err',
        'compare' => [
            'specdiff -l 10 --abstol 1e-07 data/all/output/grid-0.eps grid-0.eps',
            'specdiff -l 10 --abstol 1e-07 data/all/output/grid-1.eps grid-1.eps',
            'specdiff -l 10 --abstol 1e-07 data/all/output/grid-2.eps grid-2.eps',
            'specdiff -l 10 --abstol 1e-07 data/all/output/grid-3.eps grid-3.eps',
            'specdiff -l 10 --abstol 1e-07 data/all/output/grid-4.eps grid-4.eps',
            'specdiff -l 10 --abstol 1e-07 data/all/output/grid-5.eps grid-5.eps',
            'specdiff -l 10 --abstol 1e-07 data/all/output/grid-6.eps grid-6.eps',
            'specdiff -l 10 --abstol 1e-07 data/all/output/grid-7.eps grid-7.eps',
            'specdiff -l 10 --abstol 1e-07 data/all/output/grid-8.eps grid-8.eps',
            'specdiff -l 10 --abstol 1e-07 data/all/output/solution-0.gmv solution-0.gmv',
            'specdiff -l 10 --abstol 1e-07 data/all/output/solution-1.gmv solution-1.gmv',
            'specdiff -l 10 --abstol 1e-07 data/all/output/solution-2.gmv solution-2.gmv',
            'specdiff -l 10 --abstol 1e-07 data/all/output/solution-3.gmv solution-3.gmv',
            'specdiff -l 10 --abstol 1e-07 data/all/output/solution-4.gmv solution-4.gmv',
            'specdiff -l 10 --abstol 1e-07 data/all/output/solution-5.gmv solution-5.gmv',
            'specdiff -l 10 --abstol 1e-07 data/all/output/solution-6.gmv solution-6.gmv',
            'specdiff -l 10 --abstol 1e-07 data/all/output/solution-7.gmv solution-7.gmv',
            'specdiff -l 10 --abstol 1e-07 data/all/output/solution-8.gmv solution-8.gmv',
            'specdiff -l 10 --abstol 1e-07 data/ref/output/grid-10.eps grid-10.eps',
            'specdiff -l 10 --abstol 1e-07 data/ref/output/grid-11.eps grid-11.eps',
            'specdiff -l 10 --abstol 1e-07 data/ref/output/grid-12.eps grid-12.eps',
            'specdiff -l 10 --abstol 1e-07 data/ref/output/grid-13.eps grid-13.eps',
            'specdiff -l 10 --abstol 1e-07 data/ref/output/grid-14.eps grid-14.eps',
            'specdiff -l 10 --abstol 1e-07 data/ref/output/grid-15.eps grid-15.eps',
            'specdiff -l 10 --abstol 1e-07 data/ref/output/grid-16.eps grid-16.eps',
            'specdiff -l 10 --abstol 1e-07 data/ref/output/grid-17.eps grid-17.eps',
            'specdiff -l 10 --abstol 1e-07 data/ref/output/grid-18.eps grid-18.eps',
            'specdiff -l 10 --abstol 1e-07 data/ref/output/grid-19.eps grid-19.eps',
            'specdiff -l 10 --abstol 1e-07 data/ref/output/grid-20.eps grid-20.eps',
            'specdiff -l 10 --abstol 1e-07 data/ref/output/grid-21.eps grid-21.eps',
            'specdiff -l 10 --abstol 1e-07 data/ref/output/grid-22.eps grid-22.eps',
            'specdiff -l 10 --abstol 1e-07 data/ref/output/grid-23.eps grid-23.eps',
            'specdiff -l 10 --abstol 1e-07 data/ref/output/grid-9.eps grid-9.eps',
            'specdiff -l 10 --abstol 1e-07 data/ref/output/log log',
            'specdiff -l 10 --abstol 1e-07 data/ref/output/solution-10.gmv solution-10.gmv',
            'specdiff -l 10 --abstol 1e-07 data/ref/output/solution-11.gmv solution-11.gmv',
            'specdiff -l 10 --abstol 1e-07 data/ref/output/solution-12.gmv solution-12.gmv',
            'specdiff -l 10 --abstol 1e-07 data/ref/output/solution-13.gmv solution-13.gmv',
            'specdiff -l 10 --abstol 1e-07 data/ref/output/solution-14.gmv solution-14.gmv',
            'specdiff -l 10 --abstol 1e-07 data/ref/output/solution-15.gmv solution-15.gmv',
            'specdiff -l 10 --abstol 1e-07 data/ref/output/solution-16.gmv solution-16.gmv',
            'specdiff -l 10 --abstol 1e-07 data/ref/output/solution-17.gmv solution-17.gmv',
            'specdiff -l 10 --abstol 1e-07 data/ref/output/solution-18.gmv solution-18.gmv',
            'specdiff -l 10 --abstol 1e-07 data/ref/output/solution-19.gmv solution-19.gmv',
            'specdiff -l 10 --abstol 1e-07 data/ref/output/solution-20.gmv solution-20.gmv',
            'specdiff -l 10 --abstol 1e-07 data/ref/output/solution-21.gmv solution-21.gmv',
            'specdiff -l 10 --abstol 1e-07 data/ref/output/solution-22.gmv solution-22.gmv',
            'specdiff -l 10 --abstol 1e-07 data/ref/output/solution-23.gmv solution-23.gmv',
            'specdiff -l 10 --abstol 1e-07 data/ref/output/solution-9.gmv solution-9.gmv',
        ],
    },
    '450.soplex_pds-50.mps' => {
        'program' => 'soplex',
        'args' => '-s1 -e -m45000 pds-50.mps',
        'input' => '',
        'output' => 'pds-50.mps.out',
        'errout' => 'pds-50.mps.stderr',
        'compare' => [
            'specdiff -l 10 --abstol 1e-05 --reltol 0.02 --obiwan data/ref/output/pds-50.mps.out pds-50.mps.out',
            'specdiff -l 10 --abstol 20 --reltol 0.0001 --obiwan data/ref/output/pds-50.mps.stderr pds-50.mps.stderr',
        ],
    },
    '450.soplex_ref' => {
        'program' => 'soplex',
        'args' => '-m3500 ref.mps',
        'input' => '',
        'output' => 'ref.out',
        'errout' => 'ref.stderr',
        'compare' => [
            'specdiff -l 10 --abstol 1e-05 --reltol 0.02 --obiwan data/ref/output/ref.out ref.out',
            'specdiff -l 10 --abstol 20 --reltol 0.0001 --obiwan data/ref/output/ref.stderr ref.stderr',
        ],
    },
    '453.povray' => {
        'program' => 'povray',
        'args' => 'SPEC-benchmark-ref.ini',
        'input' => '',
        'output' => 'SPEC-benchmark-ref.stdout',
        'errout' => 'SPEC-benchmark-ref.stderr',
        'compare' => [
            'specdiff -l 10 --abstol 0 --reltol 5e-05 data/ref/output/SPEC-benchmark.log SPEC-benchmark.log',
            'specdiff -l 10 --abstol 0 --reltol 5e-05 --skiptol 50 --binary data/ref/output/SPEC-benchmark.tga SPEC-benchmark.tga',
        ],
    },
    '454.calculix' => {
        'program' => 'calculix',
        'args' => '-i  hyperviscoplastic',
        'input' => '',
        'output' => 'hyperviscoplastic.log',
        'errout' => 'hyperviscoplastic.err',
        'compare' => [
            'specdiff -l 10 --abstol 1e-09 --reltol 1e-09 --obiwan data/ref/output/SPECtestformatmodifier_z.txt SPECtestformatmodifier_z.txt',
            'specdiff -l 10 --abstol 1e-09 --reltol 1e-09 --obiwan data/ref/output/hyperviscoplastic.dat hyperviscoplastic.dat',
        ],
    },
    '459.GemsFDTD' => {
        'program' => 'GemsFDTD',
        'args' => '',
        'input' => '',
        'output' => 'ref.log',
        'errout' => 'ref.err',
        'compare' => [
            'specdiff -l 10 --abstol 1e-10 --reltol 1e-09 --obiwan data/ref/output/sphere_td.nft sphere_td.nft',
        ],
    },
    '465.tonto' => {
        'program' => 'tonto',
        'args' => '',
        'input' => '',
        'output' => 'tonto.out',
        'errout' => 'tonto.err',
        'compare' => [
            'specdiff -l 10 --reltol 0.006 data/ref/output/stdout stdout',
        ],
    },
    '470.lbm' => {
        'program' => 'lbm',
        'args' => '3000 reference.dat 0 0 100_100_130_ldc.of',
        'input' => '',
        'output' => 'lbm.out',
        'errout' => 'lbm.err',
        'compare' => [
            'specdiff -l 10 --abstol 1e-07 data/ref/output/lbm.out lbm.out',
        ],
    },
    '481.wrf' => {
        'program' => 'wrf',
        'args' => '',
        'input' => '',
        'output' => 'rsl.out.0000',
        'errout' => 'wrf.err',
        'compare' => [
            'specdiff -l 10 --abstol 0.01 --reltol 0.05 data/ref/output/rsl.out.0000 rsl.out.0000',
        ],
    },
    '482.sphinx3' => {
        'program' => 'sphinx',
        'args' => 'ctlfile . args.an4',
        'input' => '',
        'output' => 'an4.log',
        'errout' => 'an4.err',
        'compare' => [
            'specdiff -l 10 --reltol 0.001 --floatcompare data/ref/output/an4.log an4.log',
            'specdiff -l 10 --reltol 0.0004 --floatcompare data/ref/output/considered.out considered.out',
            'specdiff -l 10 --reltol 1e-06 --floatcompare data/ref/output/total_considered.out total_considered.out',
        ],
    },
};
1;
