###############################################################################
# FIRESTARTER - A Processor Stress Test Utility
# Copyright (C) 2014 TU Dresden, Center for Information Services and High
# Performance Computing
#
# 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 3 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, see <http://www.gnu.org/licenses/>.
#
# Contact: daniel.hackenberg@tu-dresden.de
###############################################################################

FIRESTARTER maximizes the energy consumption of 64-Bit x86 processors by
generating heavy load on the execution units as well as transferring data
between the cores and multiple levels of the memory hierarchy.

Supported microarchitectures
- Intel Nehalem
- Intel Westmere
- Intel Sandy Bridge
- Intel Ivy Bridge
- Intel Haswell

Since version 1.1 it is also possible to create alternating and repetitive
patterns of high load and idle (-l and -p parameters).

WARNING: This software REALLY comes WITHOUT ANY WARRANTY. Some systems cannot
handle the load and crash due to overheating.

###############################################################################
Usage: FIRESTARTER [Options]

Options:

-h         | --help             display usage information
-v         | --version          display version information
-c         | --copyright        display copyright information
-w         | --warranty         display warranty information
-q         | --quiet            disable output to stdout
-t TIMEOUT | --timeout=TIMEOUT  set timeout (seconds) after which FIRESTARTER
                                terminates itself, default: no timeout
-l LOAD    | --load=LOAD        set the percentage of high load to LOAD (%),
                                default 100, valid values: 0 <= LOAD <= 100,
                                threads will be idle in the remaining time,
                                frequency of load changes is determined by -p
-p PERIOD  | --period=PERIOD    set the interval length to PERIOD (ms),
                                default: 100, each interval contains a high
                                load and an idle phase, the percentage of
                                high load is defined by -l
-b CPULIST | --bind=CPULIST     select certain CPUs
                                CPULIST format: "x,y,z", "x-y", "x-y/step",
                                and any combination of the above

Examples:

./FIRESTARTER                    - starts FIRESTARTER without timeout
./FIRESTARTER -t 300             - starts a 5 minute run of FIRESTARTER
./FIRESTARTER -l 50 -t 600       - starts a 10 minute run of FIRESTARTER with
                                   50% high load and 50% idle time
./FIRESTARTER -l 75 -p 2000      - starts FIRESTARTER with an interval length
                                   of 2 seconds, 1.5s high load and 0.5s idle
###############################################################################
Build from source:
1) edit Makefile if necessary (compiler, flags)
2) build with: make
