254.gap Benchmark

Origin:
  SPEC INT 2000

Syntax for running:
Note:  Gap must be run from the ./input/lib directory
  gap -l . -q -m <parameter> < <input file>

The input directory (under this directory) contains sample input files.   
These files, and the approximate sizes of the resulting simulations, are 
as follows:

Input File		Parameter		Number of Instructions
----------		--------		----------------------
ref.in			192M			  473 billion
train.in		128M			 14.6 billion
test.in			64M			  1.6 billion
lgred.in		64M			  1.1 billion
mdred.in		64M			  509 million
smred.in           	64M			  116 million


Brief Benchmark Description:

Benchmark Author:  Martin Schoenert 

Benchmark Program General Category:  Group theory, interpreter 

Gap implements a language and library designed mostly for computing in
groups (GAP is an acronym for Groups, Algorithms and Programming).


Input Description:

Gap has multiple parts, one part of it is the standard gap
speed-benchmark, excercising mostly the combinatorial functions and big
number library, then some test functions for the finite field,
permutation group and subgroup lattice computations, a program comparing
two different methods of finding normalizers in solvable groups and
finally a test excercising the collector for so-called ag-groups, this is
a piece where the bulk of the computation is not done by the interpreter.


Output Description:

The output consitsts of the results of these tests.

Known portability issues:

  The program has, in module system.c, several function prototype
  definitions for common Unix system calls. In case that these functions
  have already function prototypes defined by the compilation system,
  the program-supplied prototypes need to be deactivated to avoid
  multiple function definitions. This is done by supplying one or more of
  the following -D arguments as compilation switches for the compiler
  invocation command line:

  -DSYS_HAS_SIGNAL_PROTO
  -DSYS_HAS_TIME_PROTO
  -DSYS_HAS_SIGNAL_PROTO
  -DSYS_HAS_ANSI
  -DSYS_HAS_MALLOC_PROTO
  -DSYS_HAS_CALLOC_PROTO
  -DSYS_HAS_READ_PROTO
  -DHAS_STDIO_PROTO
  -DSYS_HAS_IOCTL_PROTO
  -DSYS_HAS_STRING_PROTO
  -DSYS_HAS_MEMSET_PROTO
  -DSYS_HAS_MISC_PROTO
  ...

 In addition, compilation switches of the form:
  -DSYS_IS_xxx
 control conditional compilaton for specific operating system dependent parts.
 The standard SPEC flag:
  -DSPEC_CPU2000_LP64
 deals with 64-bit integers and pointers.

