📄 timetest
字号:
#!/bin/sh# # Simple timing test for the MPI library. Basically, we use prime# generation as a timing test, since it exercises most of the pathways# of the library fairly heavily. The 'primegen' tool outputs a line# summarizing timing results. We gather these and process them for# statistical information, which is collected into a file.### The contents of this file are subject to the Mozilla Public## License Version 1.1 (the "License"); you may not use this file## except in compliance with the License. You may obtain a copy of## the License at http://www.mozilla.org/MPL/#### Software distributed under the License is distributed on an "AS## IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or## implied. See the License for the specific language governing## rights and limitations under the License.#### The Original Code is the MPI Arbitrary Precision Integer Arithmetic## library.#### The Initial Developer of the Original Code is ## Michael J. Fromberger <sting@linguist.dartmouth.edu>#### Portions created by Michael J. Fromberger are ## Copyright (C) 2000 Michael J. Fromberger. All Rights Reserved#### Contributor(s):## Netscape Communications Corporation#### Alternatively, the contents of this file may be used under the## terms of the GNU General Public License Version 2 or later (the## "GPL"), in which case the provisions of the GPL are applicable## instead of those above. If you wish to allow use of your## version of this file only under the terms of the GPL and not to## allow others to use your version of this file under the MPL,## indicate your decision by deleting the provisions above and## replace them with the notice and other provisions required by## the GPL. If you do not delete the provisions above, a recipient## may use your version of this file under either the MPL or the GPL.## # $Id: timetest,v 1.5 2000/09/14 00:32:24 nelsonb%netscape.com Exp $## Avoid using built-in shell echoesECHO=/bin/echoMAKE=gmake# Use a fixed seed so timings will be more consistent# This one is the 11th-18th decimal digits of 'e'#export SEED=45904523SEED=45904523; export SEED#------------------------------------------------------------------------$ECHO "\n** Running timing tests for MPI library\n"$ECHO "Bringing 'metime' up to date ... "if $MAKE metime ; then :else $ECHO "\nMake failed to build metime.\n" exit 1fiif [ ! -x ./metime ] ; then $ECHO "\nCannot find 'metime' program, testing cannot continue.\n" exit 1fi#------------------------------------------------------------------------$ECHO "Bringing 'primegen' up to date ... "if $MAKE primegen ; then :else $ECHO "\nMake failed to build primegen.\n" exit 1fiif [ ! -x ./primegen ] ; then $ECHO "\nCannot find 'primegen' program, testing cannot continue.\n" exit 1fi#------------------------------------------------------------------------rm -f timing-results.txttouch timing-results.txtsizes="256 512 1024 2048"ntests=10trap 'echo "oop!";rm -f tt*.tmp timing-results.txt;exit 0' INT HUP$ECHO "\n-- Modular exponentiation\n"$ECHO "Modular exponentiation:" >> timing-results.txt$ECHO "Running $ntests modular exponentiations per test:"for size in $sizes ; do $ECHO "- Gathering statistics for $size bits ... " secs=`./metime $ntests $size | tail -1 | awk '{print $2}'` $ECHO "$size: " $secs " seconds per op" >> timing-results.txt tail -1 timing-results.txtdone$ECHO "<done>";sizes="256 512 1024"ntests=1$ECHO "\n-- Prime generation\n"$ECHO "Prime generation:" >> timing-results.txt$ECHO "Generating $ntests prime values per test:"for size in $sizes ; do $ECHO "- Gathering statistics for $size bits ... " ./primegen $size $ntests | grep ticks | awk '{print $7}' | tr -d '(' > tt$$.tmp $ECHO "$size:" >> timing-results.txt perl stats tt$$.tmp >> timing-results.txt tail -1 timing-results.txt rm -f tt$$.tmpdone$ECHO "<done>"trap 'rm -f tt*.tmp timing-results.txt' INT HUPexit 0
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -