GrenchMark is a framework
for synthetic grid workload generation and submission, which
has been designed, implemented, and deployed by the MultiProbe
team in the Parallel
and Distributed Systems group of the Faculty
of Electrical Engineering, Mathematics, and Computer Science
of the Delft University
of Technology. GrenchMark is extensible, in that
it allows new types of grid applications to be included
in the workload generation, parameterizable, as it
allows the user to parameterize the workloads generation
and submission, and portable, as its reference implementation
is written in Python.
The workload generator is based on the concepts of unit
generators and of job description files (JDF) printers.
The unit generators produce detailed descriptions
on running a set of applications (workload unit),
according to the workload description provided by the user.
In principle, there is one unit for each supported application
type. The printers take the generated workload units and
create job description files suitable for grid submission.
In this way, multiple unit generators can be coupled to
produce a workload that can be submitted to any grid resource
manager, as long as the resource manager supports that type
The grid applications currently supported by GrenchMark
are sequential jobs, jobs which use MPI, and Ibis jobs.
GrenchMark includes a set of over 35 synthetic and real
applications. We have implemented four synthetic applications:
sser, a sequential application with parameterizable
computation and memory requirements, sserio, a sequential
application with parameterizable computation and I/O requirements,
smpi1, an MPI application with parameterizable computation,
communication, memory, and I/O requirements, and swf,
an application implementing the job model used in the Standard
Workloads Format, from the Parallel Workloads Archives (PWA).
We use all the real applications and some of the synthetic
applications included in the default Ibis distribution
package. The reason is threefold: the Ibis applications
closely resemble or are real-life parallel applications,
they have been proven to run on a variety of grid settings,
and they have been thoroughly described. For the complete
list of publications related to Ibis applications, please
The Ibis applications come from the areas of physical simulations,
parallel rendering, computational mathematics, state space
search, bioinformatics, data compression, grid methods,
and optimization. Currently, GrenchMark can submit jobs
to Koala}, Globus GRAM, and Condor.
The workload submitter generates detailed reports of the
submission process. The reports include all job submission
commands, the turnaround time of each job, including the
grid overhead, the total turnaround time of the workload,
and various statistical information.
Replaying traces with GrenchMark
GrenchMark can replay traces from various production environments.
First, the user can load traces in the Standard Workload
Format. Second, since a real trace contains tens of thousands
of jobs, filtering out jobs and selecting the first-N
jobs according to various criteria is essential for selecting
a usable workload; GrenchMark can be used to shape and fit
a real workload trace. Third, real traces cannot usually
be replayed on another system than the one on which they
were acquired, and even on the same system if it has changed.
The latter happens more often in the case of grids, which
are naturally evolving with their middleware, and therefore
are very dynamic. GrenchMark can scale various aspects of
the workload, e.g., the requested resources, or the job
runtimes, and can help alleviate this problem.
Modeling workloads with GrenchMark
GrenchMark offers support for the following workload modeling
aspects. First, it supports unitary and composite
applications, and single-site and co-allocated jobs. Second,
it allows the user to define various job inter-arrival times
based on well-known statistical distributions. Besides the
Poisson distribution, used traditionally in queue-based
systems simulation, GrenchMark also supports uniform, normal,
exponential and hyper-exponential, Weibull, log normal,
and gamma distributions. Third, it allows the workload
designer to combine several workloads into a single one
(mixing). This allows for instance the inclusion
of bursts, by combining a short workload with many jobs
per time unit with a longer one, comprising fewer jobs per
time unit. An additional use of workload mixing is in a
what-if analysis that evaluates what will happen
to a grid community if its resources would be shared with
another group of users. In this case, the workload modeler
can mix the typical workload of the two communities and
evaluate whether the system can support both, under various
job acceptance and execution policies.