Skip to content

Latest commit

 

History

History
145 lines (129 loc) · 7.83 KB

README.md

File metadata and controls

145 lines (129 loc) · 7.83 KB

Table of content

Each case in implemented in different languages, and for some cases several job types (like test job, benchmark job) are provided. This leads to a fairly large number of case-language-type combinations where

  • same code is used for compilers of the same language
  • same data input files are used across languages
  • the basic JCL structure is only language, but not case or type specific

The final jcl for a job is therefore dynamically created by the tool hercjis (in herc-tools/bin directory) based on descriptor files with the file type .JES stored this directory. The .JES are short and contain

  • name of source code (from codes directory)
  • name of input data file (from codes directory)
  • name of jcl template file (type .JESI, from jcl directory)
  • if required, special job parameters used by the template

For most test cases several job types are provided

Case ID Job Type Decription
hewo hewo_*.JES print Hello World
sine sine_*.JES print printer plot
soep soep_*_t.JES test job (verification)
soep_*_f.JES benchmark job (algorithm)
soep_*_p.JES benchmark job (formatted output)
soeq soeq_*_t.JES test job (verification)
soeq_*_f_10.JES benchmark job (algorithm, 10M sieve for soep comparison)
soeq_*_f.JES benchmark job (algorithm, full 100M sieve)
soeq_*_p.JES benchmark job (formatted output)
towh towh_*_t.JES test job (verification)
towh_*_f.JES benchmark job
mcpi mcpi_*_t.JES test job (verification)
mcpi_*_f.JES benchmark job

For details follow the link in the Case ID column and consult the available jobs section. See also the benchmark summary for an overview table of benchmark results and a compiler ranking.

The available Compiler-Case combinations are

Language Compiler ID hewo sine soep soeq towh mcpi
Algol 60 a60 yes yes _t, _f, _p -- _t, _f _t, _f N02
Assembler asm yes -- _t, _f, _p _t, _f, _p _t, _f _t, _f
C gcc yes yes _t, _f, _p _t, _f, _p _t, _f _t, _f
C jcc yes yes _t, _f, _p _t, _f, _p _t, _f _t, _f N01
COBOL cob yes -- -- -- -- --
FORTRAN-4 forg yes yes _t, _f, _p -- _t, _f _t, _f
FORTRAN-4 forh yes yes _t, _f, _p -- _t, _f _t, _f
FORTRAN-4 forw yes yes _t, _f, _p -- _t, _f _t, _f
Pascal pas yes yes _t, _f, _p _t, _f, _p _t, _f _t, _f
PL/I pli yes yes _t, _f, _p _t, _f, _p _t, _f _t, _f
Simula sim yes yes _t, _f, _p -- _t, _f _t, _f

The job CLASS is chosen to give best response on tk4- systems and set to B,C or A depending on expected CPU time and memory consumption

  • CLASS B for fast runners: hewo*,sine*,*_t
  • CLASS C for jobs with REGION >= 5000K
  • CLASS A for rest: _f,_p

The predefined job CLASS can be overridden with the hercjis -c option. For benchmarking it is highly advisable to use CLASS C via a -c C option, see Howto submit directly section.

  • N01: mcpi_jcc_*.JES fails on tk4- update 08 due to a compiler bug. JCC generates a wrong constant, which screws up the random number sequence. The code compiles and executes, but the results are wrong. The bug is reported to the maintainer.
  • N02: mcpi_a60_*.JES fails on tk4- update 08 due to a compiler bug. The code requires double precision floating point, which in IBM Algol 60 must be selected with the compiler option LONG. Due to a bug in the compiler this option is not recognized, single precision code is generated, which is does not give proper results. The bug is reported, see turnkey-mvs posting. A fix of the compiler is available from the maintainer, Tom Armstrong, see turnkey-mvs/files/IEX10.zip, and must be installed before running mpci_a60* jobs. This fix will be included in tk4- update 09.

When hercjis is called with the -o option it will write the generated job to the file given after the -o option, like

   hercjis -o hewo_asm.jcl  hewo_asm.JES

The generated .jcl file can now be submitted with any available tool. Converting all .JES files is easiest done with make. A Makefile is provided which allows to convert a single file or all files if make is called with no target or all as target. To convert all .JES into .jcl simply

  • ensure that herc-tools/bin/hercjis is in the search path (e.g. set $PATH properly)
  • type make

When hercjis is called without -o option it will send the job to a sockdev reader on port 3505. To use this most direct way to submit a job

  • setup hercules with devinit 00c 3505 sockdev ascii trunc eof
  • ensure that herc-tools/bin/hercjis is in the search path (e.g. set $PATH properly)
  • submit with hercjis <file>.JES

Since hercjis accepts multiple input files whole job trains can be submitted, for example all simple and test jobs with

   hercjis hewo*.JES sine*.JES *_t.JES

For benchmarking it is often better to ensure that only one job is active at a time. On a tk4- system CLASS=C jobs have only a single initiator. The -c option allows to override the CLASS, so a

   hercjis -c C *_f.JES

will submit all benchmark jobs and run them sequentially.