/mobile Handheld Friendly website
Ubuntu : Intel® Q6600® one core |
Each table row shows performance measurements for this Perl program with a particular command-line input value N.
| N | CPU secs | Elapsed secs | Memory KB | Code B | ≈ CPU Load |
|---|---|---|---|---|---|
| 250,000 | Failed | 648 |
Read the ↓ make, command line, and program output logs to see how this program was run.
Read k-nucleotide benchmark to see what this program should do.
This is perl 5, version 18, subversion 0 (v5.18.0) built for i686-linux
Compile-time options: HAS_TIMES PERLIO_LAYERS PERL_DONT_CREATE_GVSV
PERL_HASH_FUNC_ONE_AT_A_TIME_HARD PERL_MALLOC_WRAP
PERL_PRESERVE_IVUV PERL_SAWAMPERSAND USE_LARGE_FILES
USE_LOCALE USE_LOCALE_COLLATE USE_LOCALE_CTYPE
USE_LOCALE_NUMERIC USE_PERLIO USE_PERL_ATOF
# The Computer Language Benchmarks Game # http://benchmarksgame.alioth.debian.org/ # contributed by Karl FORNER # (borrowed fasta loading routine from Kjetil Skotheim, 2005-11-29) # Corrected again by Jesse Millikan # revised by Kuang-che Wu # Multi-threaded by Andrew Rodland use strict; use threads; my $threads = num_cpus() || 1; my ($sequence, $begin, $end); $/ = ">"; /^THREE/ and $sequence = uc(join "", grep !/^THREE/, split /\n+/) while <STDIN>; my ($l,%h,$sum) = (length $sequence); foreach my $frame (1,2) { %h = (); update_hash_for_frame($frame); $sum = $l - $frame + 1; printf "$_ %.3f\n", $h{$_}*100/$sum for sort { $h{$b} <=> $h{$a} || $a cmp $b } keys %h; print "\n"; } foreach my $s (qw(GGT GGTA GGTATT GGTATTTTAATT GGTATTTTAATTTATAGT)) { update_hash_for_frame(length($s)); printf "%d\t$s\n", $h{$s}; } sub update_hash_for_frame { my $frame = $_[0]; my @threads; for my $i (0 .. $threads - 1) { use integer; my $begin = $l * $i / $threads; my $end = $l * ($i + 1) / $threads - 1; no integer; if ($end > $l - $frame) { $end = $l - $frame; } push @threads, threads->create(\&update_hash_slice, $frame, $begin, $end); } for my $thread (@threads) { my $count = $thread->join; $h{$_} += $count->{$_} for keys %$count; } } sub update_hash_slice { my ($frame, $begin, $end) = @_; my %local; $local{substr($sequence,$_,$frame)}++ for $begin .. $end; return \%local; } sub num_cpus { open my $fh, '</proc/cpuinfo' or return; my $cpus; while (<$fh>) { $cpus ++ if /^processor\s+:/; } return $cpus; }
Tue, 21 May 2013 19:06:30 GMT COMMAND LINE: /usr/local/src/perl-5.18.0_no_ithreads_no_multi/bin/perl knucleotide.perl 0 < knucleotide-input250000.txt PROGRAM FAILED PROGRAM OUTPUT: This Perl not built to support threads Compilation failed in require at knucleotide.perl line 11. BEGIN failed--compilation aborted at knucleotide.perl line 11.