timetest
上传用户:lyxiangda
上传日期:2007-01-12
资源大小:3042k
文件大小:4k
源码类别:

CA认证

开发平台:

WINDOWS

  1. #!/bin/sh
  2. # Simple timing test for the MPI library.  Basically, we use prime
  3. # generation as a timing test, since it exercises most of the pathways
  4. # of the library fairly heavily.  The 'primegen' tool outputs a line
  5. # summarizing timing results.  We gather these and process them for
  6. # statistical information, which is collected into a file.
  7. #
  8. ## The contents of this file are subject to the Mozilla Public
  9. ## License Version 1.1 (the "License"); you may not use this file
  10. ## except in compliance with the License. You may obtain a copy of
  11. ## the License at http://www.mozilla.org/MPL/
  12. ##
  13. ## Software distributed under the License is distributed on an "AS
  14. ## IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
  15. ## implied. See the License for the specific language governing
  16. ## rights and limitations under the License.
  17. ##
  18. ## The Original Code is the MPI Arbitrary Precision Integer Arithmetic
  19. ## library.
  20. ##
  21. ## The Initial Developer of the Original Code is 
  22. ## Michael J. Fromberger <sting@linguist.dartmouth.edu>
  23. ##
  24. ## Portions created by Michael J. Fromberger are 
  25. ## Copyright (C) 2000 Michael J. Fromberger. All Rights Reserved
  26. ##
  27. ## Contributor(s):
  28. ## Netscape Communications Corporation
  29. ##
  30. ## Alternatively, the contents of this file may be used under the
  31. ## terms of the GNU General Public License Version 2 or later (the
  32. ## "GPL"), in which case the provisions of the GPL are applicable
  33. ## instead of those above.  If you wish to allow use of your
  34. ## version of this file only under the terms of the GPL and not to
  35. ## allow others to use your version of this file under the MPL,
  36. ## indicate your decision by deleting the provisions above and
  37. ## replace them with the notice and other provisions required by
  38. ## the GPL.  If you do not delete the provisions above, a recipient
  39. ## may use your version of this file under either the MPL or the GPL.
  40. ## 
  41. # $Id: timetest,v 1.5 2000/09/14 00:32:24 nelsonb%netscape.com Exp $
  42. #
  43. # Avoid using built-in shell echoes
  44. ECHO=/bin/echo
  45. MAKE=gmake
  46. # Use a fixed seed so timings will be more consistent
  47. # This one is the 11th-18th decimal digits of 'e'
  48. #export SEED=45904523
  49. SEED=45904523; export SEED
  50. #------------------------------------------------------------------------
  51. $ECHO "n** Running timing tests for MPI libraryn"
  52. $ECHO "Bringing 'metime' up to date ... "
  53. if $MAKE metime ; then
  54.     :
  55. else 
  56.     $ECHO "nMake failed to build metime.n"
  57.     exit 1
  58. fi
  59. if [ ! -x ./metime ] ; then 
  60.     $ECHO "nCannot find 'metime' program, testing cannot continue.n"
  61.     exit 1
  62. fi
  63. #------------------------------------------------------------------------
  64. $ECHO "Bringing 'primegen' up to date ... "
  65. if $MAKE primegen ; then
  66.     :
  67. else
  68.     $ECHO "nMake failed to build primegen.n"
  69.     exit 1
  70. fi
  71. if [ ! -x ./primegen ] ; then
  72.     $ECHO "nCannot find 'primegen' program, testing cannot continue.n"
  73.     exit 1
  74. fi
  75. #------------------------------------------------------------------------
  76. rm -f timing-results.txt
  77. touch timing-results.txt
  78. sizes="256 512 1024 2048"
  79. ntests=10
  80. trap 'echo "oop!";rm -f tt*.tmp timing-results.txt;exit 0' INT HUP
  81. $ECHO "n-- Modular exponentiationn"
  82. $ECHO "Modular exponentiation:" >> timing-results.txt
  83. $ECHO "Running $ntests modular exponentiations per test:"
  84. for size in $sizes ; do
  85.     $ECHO "- Gathering statistics for $size bits ... "
  86.     secs=`./metime $ntests $size | tail -1 | awk '{print $2}'`
  87.     $ECHO "$size: " $secs " seconds per op" >> timing-results.txt
  88.     tail -1 timing-results.txt
  89. done
  90. $ECHO "<done>";
  91. sizes="256 512 1024"
  92. ntests=1
  93. $ECHO "n-- Prime generationn"
  94. $ECHO "Prime generation:" >> timing-results.txt
  95. $ECHO "Generating $ntests prime values per test:"
  96. for size in $sizes ; do
  97.     $ECHO "- Gathering statistics for $size bits ... "
  98.     ./primegen $size $ntests | grep ticks | awk '{print $7}' | tr -d '(' > tt$$.tmp
  99.     $ECHO "$size:" >> timing-results.txt
  100.     perl stats tt$$.tmp >> timing-results.txt
  101.     tail -1 timing-results.txt
  102.     rm -f tt$$.tmp
  103. done
  104. $ECHO "<done>"
  105. trap 'rm -f tt*.tmp timing-results.txt' INT HUP
  106. exit 0