home *** CD-ROM | disk | FTP | other *** search
/ Programmer's ROM - The Computer Language Library / programmersrom.iso / ada / piwg / piwg.doc < prev    next >
Encoding:
Text File  |  1988-05-03  |  14.2 KB  |  409 lines

  1. PERFORMANCE ISSUES WORKING GROUP
  2. (PIWG)
  3.  
  4.     This file contains the READ.ME and TAPEDIST.LTR files from
  5. the directory <INFO-ADA.PIWG> on ADA20.ISI.EDU.  The files referenced
  6. in this file are also contained in the PIWG directory.
  7.  
  8.  
  9. READ.ME  
  10.  
  11. There are three (3) complete runs to be made on each computer/compiler
  12. combination:
  13.  
  14.    1) The first run is typified by ACOMPILE.COM (VAX) or ACOMPILE.CLI
  15.       ( ROLM/Data General ). Build the necessary script from one of these
  16.       for your computer/compiler. This first script compiles the feature
  17.       measurement tests, links them into one executable program,
  18.       and then executes the tests and prints a report. The minimum times
  19.       are desired. Runs tests individually if times differ significantly
  20.       form the combined tests.
  21.       An alternate form is shown in WCOMPILE.COM and COMPILE.COM ( VAX )
  22.       These tests may be run one at a time, starting with C000001 and
  23.       continuing through T000006, with A000091, A000093, A000094 also.
  24.       For embedded computers, this run must be executed on real hardware.
  25.       This run is not suitable for simulators.
  26.       ( COPY.R1000 may help selecting the files for the RATIONAL R1000 and
  27.         see ACOMPILE.LOGR1000 for an example run )
  28.       The files with an extension or type with the word LOG in it are
  29.       random samples of output.
  30.  
  31.    2) The second run is typified by ZCOMPILE.COM ( VAX ) or ZCOMPILE.CLI
  32.       ( ROLM/Data General ) or ZCOMPILE.ICC for the ICC compiler on the
  33.       GOULD computer. Build the necessary script from one of these
  34.       for your computer/compiler. This script provides one compilation time
  35.       measurement for the time to compile, link and execute two programs.
  36.       The execution time is very small compared to compile time.
  37.       The "execution" for this run can be performed on a simulator ( the
  38.       simulation time is not counted as part of the total time )
  39.  
  40.    3) The third run is typified by Z000111D.COM ( VAX ) or Z000111D.CLI
  41.       ( ROLM/Data General ). Build the necessary script from one of these
  42.       for your computer/compiler. This script provides many compilation
  43.       time measurements. There are sets of increasingly larger compilations
  44.       in order to get a feature verses time plot for compilation.
  45.       There is no linking or execution in this run. Even for embedded
  46.       computers it is strictly a host computer run.
  47.       Z000111.COM just prints wall time between each run. Please do the
  48.       subtractions if Z000111D.COM will not run.
  49.  
  50. Generally, compilation order is alphabetical.
  51. There are a number of choices to be made depending on computer/compiler.
  52.  
  53. 1. Choose either A000001 or A000002 for DURATION_IO. A000001 is preferred.
  54.  
  55. 2. Choose one of A000011 through A000016 for CPU_TIME_CLOCK. This is
  56.    computer/operating system dependent.
  57.  
  58. 3. Choose one of A000042 through A000044 for PIWG_IO body.
  59.         A000042 produces printout as it runs ( only one sample per run)
  60.         A000043 writes times to disk and then A000049 is used to average
  61.                 and print the results.
  62.         A000044 saves the time values in memory ( only for embedded computers
  63.                 that have no TEXT_IO,  some editing will be required )
  64.  
  65. 4. Choose from making each procedure C000001 through T000006 a main program
  66.    or using A000100 as a single main program with A000042
  67.    or using A000101 and A000102 as a pair of smaller main programs
  68.    or using A000103 ( like A000100 as a single main program ) with A000049,
  69.                       and A000043 in place of A000042, PIWG_IO.
  70.    or using appropriate versions of A000104, A000105, A000106 and A000107
  71.                       main programs
  72.  
  73. The first group of files establishes the basic routines in the program library.
  74. The complete test suite can be compiled, linked and run from one library.
  75. All files are of the form  NAME.TYP with TYP being ADA for all Ada source files
  76.  
  77. ADA A000001    DURATION_IO instantiation      PICK ONE of these two
  78. ADA A000002    DURATION_IO using FLOAT_IO for incomplete compilers
  79.  
  80. ADA A000011    CPU_TIME_CLOCK.ADA     PICK ONE from this set or do your own
  81. ADA A000012    CPU_TIME_CLOCK.VAX     --------
  82. ADA A000013    CPU_TIME_CLOCK.DG      ( manufacturers should help )
  83. ADA A000014    CPU_TIME_CLOCK.UNIX
  84. ADA A000015    CPU_TIME_CLOCK.R1000
  85. ADA A000016    CPU_TIME_CLOCK.ULTRIX
  86.  
  87. ADA A000021    REMOTE_GLOBAL_        optimization control package spec
  88. ADA A000022    REMOTE_GLOBAL         optimization control package body
  89.  
  90. ADA A000031    ITERATION_            Iteration control package spec
  91. ADA A000032    ITERATION             Iteration control package body
  92.  
  93. ADA A000041    PIWG_IO_              output package spec ( universal )       
  94.  
  95.                                      PICK ONE from group below:
  96. ADA A000042    PIWG_IO               package body for screen/printer output
  97. ADA A000043    PIWG_IO               package body for writing to disk
  98. ADA A000044    PIWG_IO               package body for save in memory, no TEXT_IO
  99.  
  100. ADA A000049    A000049               Report printer if A000043 is used.
  101.  
  102. ADA A000051    A000051               executable procedure to print WALL and CPU 
  103.  
  104. ADA A000052    A000052               A set of 4 executable procedures that
  105. ADA A000053    A000053               can be used to measure CPU and Wall time
  106. ADA A000054    A000054               without instrumenting the run begin
  107. ADA A000055    A000055               measured. Place optional control between
  108.                                      A000052 and A000053. Place test being
  109.                                      measured between A000054 and A000055.
  110.  
  111. ADA A000091    DHRYSTONE
  112. ADA A000092    WHETSTONE using manufacturers math routines ( must edit )
  113. ADA A000093    WHETSTONE using standard Ada math routines
  114. ADA A000094    HENNESY   benchmarks
  115.  
  116. ADA A000098    This is a skeleton procedure that can be copied and edited
  117.                to construct more tests that have multiple parts.
  118.  
  119. ADA A000099    This is a skeleton procedure that can be copied and edited
  120.                to construct more tests.
  121.  
  122. ADA A000100    A000100 This is a top level procedure that calls all the other
  123.                executable timing tests. It is useful if there is a "MAKE"
  124.                facility available. ( This may be too big to execute on many
  125.                computers. Tests may be run individually or this may be split
  126.                into smaller sets )
  127.  
  128. ADA A000101    This and A000102 are A000100 split in two pieces.
  129.                A000091 .. L000003
  130. ADA A000102    P000001 .. T000006
  131.  
  132. ADA A000103    All test, similar to A000100, with 10 iterations on tests
  133.                that can be executed in a loop.A000043  PIWG_IO must be
  134.                chosen to use this test.
  135. ADA A000104    This is the composite benchmark part of A000100
  136. ADA A000105    This is the non-I/O non-tasking part of A000100
  137. ADA A000106    This is the I/O part of A000100
  138. ADA A000107    This is the tasking part of A000100
  139.  
  140.                This group of tests measures task creation related timing.
  141. ADA C000001
  142. ADA C000002
  143. ADA C000003
  144.  
  145.                This group of tests measures dynamic elaboration related timing.
  146. ADA D000001
  147. ADA D000002
  148. ADA D000003
  149. ADA D000004
  150.  
  151.                This group of tests measures exception related timing.
  152. ADA E000001
  153. ADA E000002
  154. ADA E000004
  155.  
  156.                This group of tests measures coding style related timing.
  157. ADA F000001
  158. ADA F000002
  159.  
  160.                This group of tests measures TEXT_IO related timing.
  161. ADA G000001
  162. ADA G000002
  163. ADA G000003
  164. ADA G000004
  165. ADA G000005
  166. ADA G000006
  167. ADA G000007
  168.  
  169.                This group of tests measures loop overhead related timing.
  170. ADA L000001
  171. ADA L000002
  172. ADA L000003
  173.  
  174.                This group of tests measures procedure call related timing.
  175. ADA P000001
  176. ADA P000002
  177. ADA P000003
  178. ADA P000004
  179. ADA P000005
  180. ADA P000006
  181. ADA P000007
  182. ADA P000010
  183. ADA P000011
  184. ADA P000012
  185. ADA P000013
  186.  
  187.                This group of tests measures task related timing.
  188. ADA T000001
  189. ADA T000002
  190. ADA T000003
  191. ADA T000004
  192. ADA T000005
  193. ADA T000006
  194. ADA T000007  this is a check on T000001 that only works on some machines
  195.  
  196. The file ACOMPILE.COM is a sample script that runs the above tests.
  197. The file ACOMPILE.CLI is a sample script for Data General MV series for above
  198. The file COMPILE.COM is another sample script for the VAX
  199. The file COMPILE.CLI is a sample script for Data General MV series for above
  200. The file WCOMPILE.COM is another sample script for an embedded compiler
  201.                       running on a VAX.
  202.  
  203. More on Run 2
  204.  
  205. The "Z" tests are for measuring compilation time
  206.  
  207. Z000001 through Z000023 are all part of one test, see sample script ZCOMPILE
  208. see ZCOMPILE.COM for compilation speed test ( the historic Z tests one set )
  209. see ZCOMPILE.CLI for another sample script.
  210.     ZCOMPILE.LOG is a sample output
  211.  
  212.  
  213. More on Run 3
  214.  
  215. Z000110 through Z000315 are each measured for compile time. ( no link or
  216. execute )
  217.  
  218. see ZOOO111D.COM for compilation speed test ( individually timed )
  219. see Z000111D.CLI for another sample script.
  220.     Z000111D.LOG is a sample output
  221.  
  222.  
  223. ----------------------------------------------------------------------
  224. TAPEDIST.LTR
  225.  
  226.  
  227.                                                 November 17, 1986
  228.  
  229.  
  230.  
  231.  
  232. Dear PIWG Tape Distribution,
  233.  
  234.  
  235.  
  236.   Enclosed is the tape distribution tree. The root nodes were mailed
  237.   this letter and a tape at the same time everyone was sent the
  238.   letter. If you did not get a tape, use the attached tree and mail
  239.   a tape to your parent node. "Tape" may be disk or other media. The
  240.   root nodes should make copies of the enclosed tape on the child nodes
  241.   tape and mail the copies to their child nodes.
  242.  
  243.   The tape designation is TAPE_8_31_86. Older tapes are on file and
  244.   this will not be the last tape. Please submit corrections and
  245.   suggestions. More tests and improvements will be made as a
  246.   result of the next PIWG workshop. Another, more complete tape
  247.   will follow in six months to a year. 96 copies of this benchmark
  248.   suite are being distributed.
  249.  
  250.   The purpose of PIWG is to develop the benchmarks and collect and
  251.   disseminate results. Please send a copy of computer printout or
  252.   a copy of the output or fill in the form below and on the back
  253.   of this letter. It is important to get two sites to run the
  254.   measurements on each target.
  255.  
  256.  
  257.     To    Jon S. Squire
  258.           Westinghouse Electric Corp.
  259.           P.O. Box 746  MS 4760
  260.           Baltimore, MD 21203
  261.  
  262.  
  263.   Call me or call in results if you wish. (301)765-3748
  264.  
  265.  
  266.  
  267.  
  268.  
  269.                                                  Jon S. Squire, PIWG Chair
  270.  
  271.  
  272.  
  273. Results of PIWG  TAPE_8_31_86 benchmark runs
  274.  
  275. Date      _______________
  276.  
  277. Submitted by:
  278.   name    _______________________________________________________
  279.  
  280.   addr    _______________________________________________________
  281.  
  282.           _______________________________________________________
  283.  
  284.   phone   _______________________________________________________
  285.  
  286.  
  287. Please use FULL nomenclature and versions
  288.  
  289. Host      _______________________________________________________
  290.  
  291. Target    _______________________________________________________
  292.  
  293. Op System _______________________________________________________
  294.  
  295. Compiler  _______________________________________________________
  296.  
  297.  
  298. PLEASE send at least one measurement.
  299. If you can, make a second and third run to determine stability. If more
  300. than one run is made, supply the average and the number of run averaged.
  301. Throw out anomalous large or small runs. We want the best repeatable time
  302. that can be achieved without changing the test suite.
  303.  
  304. Test           time                       number of runs(if averaged)
  305. ----------     ---------                  -----------
  306. A000091
  307. Dhrystone      _________ milliseconds     ___
  308.  
  309. A000092                  manufacturers math routines
  310. Whetstone      _________ Average Whetstone rating KWIPS  
  311.  
  312. A000093
  313. Whetstone      _________ Average Whetstone rating KWIPS  
  314.  
  315. A000094
  316. Hennesy 
  317.    Perm Towers Queens  Intmm     Mm Puzzle  Quick Bubble   Tree    FFT    Ack
  318.  
  319.   _____  _____  _____  _____  _____  _____  _____  _____  _____  _____  _____
  320.  
  321.  
  322. Just the CPU time from each test
  323.  
  324. C000001        _________ microseconds     ___
  325.  
  326. C000002        _________ microseconds     ___
  327.  
  328. C000003        _________ microseconds     ___
  329.  
  330. D000001        _________ microseconds     ___
  331.  
  332. D000002        _________ microseconds     ___
  333.  
  334. D000003        _________ microseconds     ___
  335.  
  336. D000004        _________ microseconds     ___
  337.  
  338. E000001        _________ microseconds     ___
  339.  
  340. E000002        _________ microseconds     ___
  341.  
  342. E000004        _________ microseconds     ___
  343.  
  344. F000001        _________ microseconds     ___
  345.  
  346. F000002        _________ microseconds     ___
  347.  
  348. G000001        _________ microseconds     ___
  349.  
  350. G000002        _________ microseconds     ___
  351.  
  352. G000003        _________ microseconds     ___
  353.  
  354. G000004        _________ microseconds     ___
  355.  
  356. G000005        _________ microseconds     ___
  357.  
  358. G000006        _________ microseconds     ___
  359.  
  360. G000007        _________ microseconds     ___
  361.  
  362. L000001        _________ microseconds     ___
  363.  
  364. L000002        _________ microseconds     ___
  365.  
  366. L000003        _________ microseconds     ___
  367.  
  368. P000001        _________ microseconds     ___
  369.  
  370. P000002        _________ microseconds     ___
  371.  
  372. P000003        _________ microseconds     ___
  373.  
  374. P000004        _________ microseconds     ___
  375.  
  376. P000005        _________ microseconds     ___
  377.  
  378. P000006        _________ microseconds     ___
  379.  
  380. P000007        _________ microseconds     ___
  381.  
  382. P000010        _________ microseconds     ___
  383.  
  384. P000011        _________ microseconds     ___
  385.  
  386. P000012        _________ microseconds     ___
  387.  
  388. P000013        _________ microseconds     ___
  389.  
  390. T000001        _________ microseconds     ___
  391.  
  392. T000002        _________ microseconds     ___
  393.  
  394. T000003        _________ microseconds     ___
  395.  
  396. T000004        _________ microseconds     ___
  397.  
  398. T000005        _________ microseconds     ___
  399.  
  400. T000006        _________ microseconds     ___
  401.  
  402. T000007        _________ microseconds     ___
  403.  
  404. Z000000  CPU TIME  ______________________       ( Historic comparison )
  405.  
  406.          WALL TIME ______________________
  407.  
  408. Other "Z" Tests   ( Printout is the only practical way )
  409.