SPEC CPU2000 Benchmark Description File Benchmark Name: 253.perlbmk Benchmark Author: Larry Wall, et. al. Benchmark Program General Category: programming language Benchmark Description: 253.perlbmk is a cut-down version of Perl v5.005_03, the popular scripting language. SPEC's version of Perl has had most of OS-specific features removed. In addition to the core Perl interpreter, several third-party modules are used: MD5 v1.7 MHonArc v2.3.3 IO-stringy v1.205 MailTools v1.11 TimeDate v1.08 Sources for all of the freely-available components used in 253.perlbmk can be found in $SPEC/original.src/253.perlbmk. Input Description: The reference workload for 253.perlbmk consists of four scripts: The primary component of the workload is the freeware email-to-HTML converter MHonArc. Email messages are generated from a set of random components and converted to HTML. In addition to MHonArc, which was lightly patched to avoid file I/O, this component also uses several standard modules from the CPAN (Comprehensive Perl Archive Network). Another script (which also uses the mail generator for convienience) excercises a slightly-modified version of the 'specdiff' script, which is a part of the CPU2000 tool suite. The third script finds perfect numbers using the standard iterative algorithm. Both native integers and the Math::BigInt module are used. Finally, the fourth script tests only that the psuedo-random numbers are coming out in the expected order, and does not really contribute very much to the overall runtime. The training workload is similar, but not identical, to the reference workload. The test workload consists of the non-system-specific parts of the acutal Perl 5.005_03 test harness. Output Description: In the case of the mail-based benchmarks, a line with salient characteristics (number of header lines, number of body lines, etc) is output for each message generated. During processing, MD5 hashes of the contents of output "files" (in memory) are computed and output. For the perfect number finder, the operating mode (BigInt or native) is output, along with intermediate progress and, of course, the perfect numbers. Output for the random number check is simply every 1000th random number generated. Programming Language: ANSI C Known portability issues: Perl is not 64-bit clean, and causes problems with at least one vendor's compiler when compiled in 64-bit mode with very high optimization. References: Perl Mongers: http://www.perl.org/ O'Reilly's Perl Pages: http://www.perl.com/ The Comprehensive Perl Archive Network: http://www.cpan.org/ MHonArc: http://www.oac.uci.edu/indiv/ehood/mhonarc.html