# config/suite.def
# This file is used to build several benchmarks with a single command. 
# Typing "make suite" in the main directory will build all the benchmarks
# specified in this file. 
# Each line of this file contains a benchmark name, class.
# The name is one of "cg", "is", "dc", "ep", mg", "ft", "sp",
#  "bt", "lu", and "ua". 
# The class is one of "S", "W", "A", "B", and "C"
# (classes D and E are defined for a number of benchmarks, but they
#  are likely not practical to run in serial. See README.install).
# No blank lines. 
# The following example builds serial sample sizes of all benchmarks. 
ft	S
mg	S
sp	S
lu	S
bt	S
is	S
ep	S
cg	S
ua	S
dc      S
