# alpha_process.py
# modified the original file from www.gem5.org
import m5
from m5.objects import * 
from m5.util import addToPath
addToPath('../common')

print "Start to run SPEC2006 benchmark on Alpha-Tru64"
spec2006_home = '/home/mdl/tzz106/Software/SPEC2006/benchspec/CPU2006/'
print 'SPEC2006 home directory = %s' % spec2006_home

#400.perlbench
perlbench = LiveProcess()
local_dir = '400.perlbench/'
perlbench.executable =  spec2006_home+local_dir+'exe/perlbench_base.alpha-gcc'
perlbench.cmd = [perlbench.executable] + ['-I./lib', spec2006_home + local_dir
+ 'data/test/input/attrs.pl']
perlbench.output = spec2006_home + local_dir + 'data/test/output/attrs.out'
perlbench.max_stack_size = '512MB'

#401.bzip2
local_dir = '401.bzip2/'
bzip2 = LiveProcess()
bzip2.executable =  spec2006_home + local_dir + 'exe/bzip2_base.alpha-gcc'
data = spec2006_home + local_dir + 'data/all/input/input.program'
bzip2.cmd = [bzip2.executable] + [data, '1']
bzip2.output = spec2006_home + local_dir + 'data/test/output/input.program.out'
perlbench.max_stack_size = '2048MB'

#403.gcc
local_dir = '403.gcc/'
gcc = LiveProcess()
gcc.executable = spec2006_home + local_dir + 'exe/gcc_base.alpha-gcc'
data = spec2006_home + local_dir + 'data/test/input/cccp.i'
output = './m5out/spec2006/403.gcc/cccp.s'
gcc.cmd = [gcc.executable] + [data] + ['-o',output]
gcc.output = spec2006_home + local_dir + 'data/test/output/ccc.out'
gcc.max_stack_size = '512MB'

#410.bwaves
bwaves = LiveProcess()
bwaves.executable =  spec2006_home+'410.bwaves/exe/bwaves_base.alpha-gcc'
bwaves.cmd = [bwaves.executable] 

#416.gamess
gamess=LiveProcess()
gamess.executable = spec2006_home + '416.gamess/exe/gamess_base.alpha-gcc'
gamess.cmd = [gamess.executable]
gamess.input= spec2006_home + '416.gamess/data/test/input/exam29.inp'
gamess.output = spec2006_home + '416.gamess/data/test/output/exam29.output'

#429.mcf
local_dir = '429.mcf/'
mcf = LiveProcess()
mcf.executable =  spec2006_home + local_dir + 'exe/mcf_base.alpha-gcc'
data = spec2006_home + local_dir + 'data/test/input/inp.in'
mcf.cmd = [mcf.executable] + [data]
mcf.output = spec2006_home + local_dir + 'data/test/output/inp.out'
gcc.max_stack_size = '2048MB'

#433.milc
milc=LiveProcess()
milc.executable = spec2006_home+'433.milc/exe/milc_base.alpha-gcc'
stdin=spec2006_home+'433.milc/data/test/input/su3imp.in'
milc.cmd = [milc.executable]
milc.input=stdin
milc.output='su3imp.out'

#434.zeusmp
zeusmp=LiveProcess()
zeusmp.executable =  spec2006_home+'434.zeusmp/exe/zeusmp_base.alpha-gcc'
zeusmp.cmd = [zeusmp.executable]
zeusmp.output = spec2006_home + '434.zeusmp/data/test/output/.stdout'

#435.gromacs
gromacs = LiveProcess()
gromacs.executable =  spec2006_home+'435.gromacs/exe/gromacs_base.alpha-gcc'
data=spec2006_home+'435.gromacs/data/test/input/gromacs.tpr'
gromacs.cmd = [gromacs.executable] + ['-silent','-deffnm',data,'-nice','0']

#436.cactusADM
cactusADM = LiveProcess()
cactusADM.executable =  spec2006_home+'436.cactusADM/exe/cactusADM_base.alpha-gcc'
data=spec2006_home+'436.cactusADM/data/test/input/benchADM.par'
cactusADM.cmd = [cactusADM.executable] + [data]
cactusADM.output = 'benchADM.out'

#437.leslie3d
leslie3d=LiveProcess()
leslie3d.executable =  spec2006_home+'437.leslie3d/exe/leslie3d_base.alpha-gcc'
stdin=spec2006_home+'437.leslie3d/data/test/input/leslie3d.in'
leslie3d.cmd = [leslie3d.executable]
leslie3d.input=stdin
leslie3d.output='leslie3d.stdout'

#444.namd
namd = LiveProcess()
namd.executable =  spec2006_home+'444.namd/exe/namd_base.alpha-gcc'
input=spec2006_home+'444.namd/data/all/input/namd.input'
namd.cmd = [namd.executable] + ['--input',input,'--iterations','1','--output','namd.out']
namd.output='namd.stdout'

#445.gobmk
gobmk=LiveProcess()
gobmk.executable =  spec2006_home+'445.gobmk/exe/gobmk_base.alpha-gcc'
stdin=spec2006_home+'445.gobmk/data/test/input/capture.tst'
gobmk.cmd = [gobmk.executable]+['--quiet','--mode','gtp']
gobmk.input=stdin
gobmk.output='capture.out'

#450.soplex
soplex=LiveProcess()
soplex.executable = spec2006_home+'450.soplex/exe/soplex_base.alpha-gcc'
data=spec2006_home+'450.soplex/data/test/input/test.mps'
soplex.cmd = [soplex.executable]+['-m10000',data]
soplex.output = spec2006_home + '450.soplex/data/test/output/test.out'

#453.povray
povray=LiveProcess()
povray.executable = spec2006_home + '453.povray/exe/povray_base.alpha-gcc'
data = spec2006_home + '453.povray/data/test/input/SPEC-benchmark-test.ini'
#povray.cmd = [povray.executable]+['SPEC-benchmark-test.ini']
povray.cmd = [povray.executable]+[data]
#povray.input = spec2006_home + '453.povray/data/test/input/SPEC-benchmark-test.pov'
povray.output = spec2006_home + '453.povray/exe/SPEC-benchmark-test.stdout'

#454.calculix
calculix=LiveProcess()
calculix.executable = spec2006_home + '454.calculix/exe/calculix_base.alpha-gcc'
data = spec2006_home + '454.calculix/data/test/input/beampic.inp'
calculix.cmd = [calculix.executable]+['-i',data]
calculix.output = spec2006_home + '454.calculix/data/test/output/beampic.log'

#456.hmmer
hmmer=LiveProcess()
hmmer.executable =  spec2006_home+'456.hmmer/exe/hmmer_base.alpha-gcc'
data=spec2006_home+'456.hmmer/data/test/input/bombesin.hmm'
hmmer.cmd = [hmmer.executable]+['--fixed', '0', '--mean', '325', '--num', '5000', '--sd', '200', '--seed', '0', data]
hmmer.output = 'bombesin.out'

#458.sjeng
sjeng=LiveProcess()
sjeng.executable =  spec2006_home + '458.sjeng/exe/sjeng_base.alpha-gcc'
data = spec2006_home + '458.sjeng/data/test/input/test.txt'
sjeng.cmd = [sjeng.executable]+[data]
sjeng.output = spec2006_home + '458.sjeng/data/test/output/test.out'

#459.GemsFDTD
GemsFDTD=LiveProcess()
GemsFDTD.executable =  spec2006_home+'459.GemsFDTD_base/exe/GemsFDTD_base.alpha-gcc'
GemsFDTD.cmd = [GemsFDTD.executable]
GemsFDTD.output = 'test.log'

#462.libquantum
libquantum=LiveProcess()
libquantum.executable = spec2006_home + '462.libquantum/exe/libquantum_base.alpha-gcc'
libquantum.cmd = [libquantum.executable],'33','5'
libquantum.output = spec2006_home + '462.libquantum/data/test/output/test.out'

#464.h264ref
h264ref=LiveProcess()
h264ref.executable =  spec2006_home+'464.h264ref/exe/h264ref_base.alpha-gcc'
data=spec2006_home+'464.h264ref/data/test/input/foreman_test_encoder_baseline.cfg'
h264ref.cmd = [h264ref.executable]+['-d',data]
h264ref.output = spec2006_home + '464.h264ref/data/test/output/foreman_test_encoder_baseline.out'

#470.lbm
lbm=LiveProcess()
lbm.executable =  spec2006_home+'470.lbm/exe/lbm_base.alpha-gcc'
data=spec2006_home+'470.lbm/data/test/input/100_100_130_cf_a.of'
#lbm.cmd = [lbm.executable]+['20', '470.lbm/data/test/input/reference.dat', '0', '1' ,data]
lbm.cmd = [lbm.executable]+['20', 'reference.dat', '0', '1' ,data]
lbm.output = spec2006_home + '470.lbm/data/test/output/lbm.out'

#471.omnetpp
omnetpp=LiveProcess()
omnetpp.executable =  spec2006_home+'471.omnetpp/exe/omnetpp_base.alpha-gcc'
data=spec2006_home+'471.omnetpp/data/test/input/omnetpp.ini'
omnetpp.cmd = [omnetpp.executable]+[data]
omnetpp.output = 'omnetpp.log'

#473.astar
astar=LiveProcess()
astar.executable =  spec2006_home+'473.astar/exe/astar_base.alpha-gcc'
astar.cmd = [astar.executable]+['lake.cfg']
astar.output = 'lake.out'

#481.wrf
wrf=LiveProcess()
wrf.executable =  spec2006_home+'481.wrf/exe/wrf_base.alpha-gcc'
wrf.cmd = [wrf.executable]+['namelist.input']
wrf.output = 'rsl.out.0000'

#482.sphinx
sphinx3=LiveProcess()
sphinx3.executable =  spec2006_home+'482.sphinx_livepretend/exe/sphinx_livepretend_base.alpha-gcc'
sphinx3.cmd = [sphinx3.executable]+['ctlfile', '.', 'args.an4']
sphinx3.output = 'an4.out'

#998.specrand
specrand_i=LiveProcess()
specrand_i.executable = spec2006_home+'998.specrand/exe/specrand_base.alpha-gcc'
specrand_i.cmd = [specrand_i.executable] + ['324342','24239']
specrand_i.output = spec2006_home + '998.specrand/data/test/output/rand.24239.out'

#999.specrand
specrand_f=LiveProcess()
specrand_f.executable = spec2006_home + '999.specrand/exe/specrand_base.alpha-gcc'
specrand_f.cmd = [specrand_i.executable] + ['324342','24239']
specrand_f.output = spec2006_home + '999.specrand/data/test/output/rand.24239.out'
