notes, command-line, and program output
NOTES:
64-bit Ubuntu quad core
SBCL 2.0.4
Thu, 21 May 2020 23:59:55 GMT
MAKE:
cp: 'knucleotide.sbcl' and './knucleotide.sbcl' are the same file
SBCL built with: /usr/local/bin/sbcl --userinit /dev/null --batch --eval '(load "knucleotide.sbcl_compile")'
### START knucleotide.sbcl_compile
(handler-bind ((sb-ext:defconstant-uneql (lambda (c) (abort c)))) (require :sb-concurrency) (load (compile-file "knucleotide.sbcl" ))) (save-lisp-and-die "sbcl.core" :purify t)
### END knucleotide.sbcl_compile
; compiling file "/home/dunham/8000-benchmarksgame/bench/knucleotide/knucleotide.sbcl" (written 26 APR 2018 12:48:18 PM):
; compiling (DEFPACKAGE :KNUCLEOTIDE ...)
; compiling (IN-PACKAGE :KNUCLEOTIDE)
; compiling (DECLAIM (OPTIMIZE # ...))
; compiling (DEFPARAMETER *MY-TR-AVAILABLE-THREAD-SEMAPHORE* ...)
; compiling (DEFPARAMETER *MY-TR-TASK-REMAINING-COUNT* ...)
; compiling (DECLAIM (TYPE FIXNUM ...))
; compiling (DEFPARAMETER *MY-TR-COMPLETED-TASK-MUTEX* ...)
; compiling (DEFPARAMETER *MY-TR-TASK-COMPLETED-CV* ...)
; compiling (DEFSTRUCT MY-TASK ...)
; compiling (DEFPARAMETER *MY-TASK-LIST* ...)
; compiling (DECLAIM (TYPE VECTOR ...))
; compiling (DEFUN MY-TR-RUN ...)
; file: /home/dunham/8000-benchmarksgame/bench/knucleotide/knucleotide.sbcl
; in: DEFUN MY-TR-RUN
; (ELT KNUCLEOTIDE::*MY-TASK-LIST* KNUCLEOTIDE::TASKINDEX)
;
; note: unable to
; optimize
; due to type uncertainty:
; The first argument is a VECTOR, not a (SIMPLE-ARRAY * (*)).
; (FUNCALL (KNUCLEOTIDE::MY-TASK-MYLAMBDA KNUCLEOTIDE::THETASK))
; --> SB-C::%FUNCALL THE
; ==>
; (SB-KERNEL:%COERCE-CALLABLE-FOR-CALL
; (KNUCLEOTIDE::MY-TASK-MYLAMBDA KNUCLEOTIDE::THETASK))
;
; note: unable to
; optimize away possible call to FDEFINITION at runtime
; because:
; callable expression is not known to be a function
; compiling (DEFCONSTANT CODES ...)
; compiling (DEFCONSTANT NUCLEOTIDES ...)
; compiling (DEFUN HASH-FUNCTION ...)
; compiling (DEFSTRUCT RESULT ...)
; compiling (DEFUN CREATE-FRAGMENT-TASKS ...)
; compiling (DEFUN CREATE-FRAGMENT-MAP ...)
; compiling (DEFUN SUM-TWO-MAPS ...)
; compiling (DEFUN WRITE-FREQUENCIES ...)
; file: /home/dunham/8000-benchmarksgame/bench/knucleotide/knucleotide.sbcl
; in: DEFUN WRITE-FREQUENCIES
; (SORT KNUCLEOTIDE::FREQ
; (LAMBDA (KNUCLEOTIDE::X KNUCLEOTIDE::Y)
; (> (CDR KNUCLEOTIDE::X) (CDR KNUCLEOTIDE::Y))))
; --> BLOCK LET SB-IMPL::SEQ-DISPATCH IF LET SB-IMPL::STABLE-SORT-LIST BLOCK
; --> LABELS SB-IMPL::MERGE* BLOCK VALUES SB-IMPL::MERGE-LISTS*
; ==>
; SB-IMPL::TEST
;
; note: could not stack allocate SB-IMPL::TEST in:
; (SORT FREQ (LAMBDA (X Y) (> (CDR X) (CDR Y))))
; ==>
; SB-IMPL::KEY
;
; note: could not stack allocate SB-IMPL::KEY in:
; (SORT FREQ (LAMBDA (X Y) (> (CDR X) (CDR Y))))
; --> BLOCK LET SB-IMPL::SEQ-DISPATCH IF LET SB-IMPL::STABLE-SORT-LIST
; ==>
; SB-IMPL::PREDICATE-FUN
;
; note: could not stack allocate SB-IMPL::PREDICATE-FUN in:
; (SORT FREQ (LAMBDA (X Y) (> (CDR X) (CDR Y))))
; (MAKE-ARRAY
; (HASH-TABLE-COUNT (KNUCLEOTIDE::RESULT-OUTMAP KNUCLEOTIDE::FREQUENCIES))
; :FILL-POINTER 0 :ELEMENT-TYPE 'CONS)
;
; caught STYLE-WARNING:
; The default initial element 0 is not a CONS.
; (SORT KNUCLEOTIDE::FREQ
; (LAMBDA (KNUCLEOTIDE::X KNUCLEOTIDE::Y)
; (> (CDR KNUCLEOTIDE::X) (CDR KNUCLEOTIDE::Y))))
; --> LOCALLY SB-C::%FUNCALL
; ==>
; SB-IMPL::PREDICATE
;
; note: could not stack allocate: (SORT FREQ (LAMBDA (X Y) (> (CDR X) (CDR Y))))
; (> (CDR KNUCLEOTIDE::X) (CDR KNUCLEOTIDE::Y))
;
; note: unable to
; open-code FLOAT to RATIONAL comparison
; due to type uncertainty:
; The first argument is a REAL, not a FLOAT.
; The second argument is a REAL, not a RATIONAL.
; (/ (* KNUCLEOTIDE::VALUE 100.0) KNUCLEOTIDE::TOTALCOUNT)
;
; note: unable to
; optimize
; due to type uncertainty:
; The first argument is a NUMBER, not a (COMPLEX SINGLE-FLOAT).
; The second argument is a NUMBER, not a (COMPLEX SINGLE-FLOAT).
;
; note: unable to
; optimize
; due to type uncertainty:
; The first argument is a NUMBER, not a SINGLE-FLOAT.
; The second argument is a NUMBER, not a (COMPLEX SINGLE-FLOAT).
;
; note: unable to
; optimize
; due to type uncertainty:
; The first argument is a NUMBER, not a (COMPLEX DOUBLE-FLOAT).
; The second argument is a NUMBER, not a (COMPLEX DOUBLE-FLOAT).
;
; note: unable to
; optimize
; due to type uncertainty:
; The first argument is a NUMBER, not a DOUBLE-FLOAT.
; The second argument is a NUMBER, not a (COMPLEX DOUBLE-FLOAT).
;
; note: unable to
; convert x/2^k to shift
; due to type uncertainty:
; The first argument is a NUMBER, not a INTEGER.
; The second argument is a NUMBER, not a INTEGER.
; (* KNUCLEOTIDE::VALUE 100.0)
;
; note: forced to do GENERIC-* (cost 30)
; unable to do inline float arithmetic (cost 4) because:
; The first argument is a NUMBER, not a (COMPLEX SINGLE-FLOAT).
; The result is a (VALUES NUMBER &OPTIONAL), not a (VALUES
; (COMPLEX SINGLE-FLOAT)
; &REST T).
; unable to do inline float arithmetic (cost 4) because:
; The first argument is a NUMBER, not a SINGLE-FLOAT.
; The result is a (VALUES NUMBER &OPTIONAL), not a (VALUES SINGLE-FLOAT
; &REST T).
; (/ (* KNUCLEOTIDE::VALUE 100.0) KNUCLEOTIDE::TOTALCOUNT)
;
; note: forced to do full call
; unable to do inline float arithmetic (cost 12) because:
; The first argument is a NUMBER, not a SINGLE-FLOAT.
; The second argument is a NUMBER, not a SINGLE-FLOAT.
; The result is a (VALUES NUMBER &OPTIONAL), not a (VALUES SINGLE-FLOAT
; &REST T).
; unable to do inline float arithmetic (cost 12) because:
; The first argument is a NUMBER, not a (COMPLEX SINGLE-FLOAT).
; The second argument is a NUMBER, not a SINGLE-FLOAT.
; The result is a (VALUES NUMBER &OPTIONAL), not a (VALUES
; (COMPLEX SINGLE-FLOAT)
; &REST T).
; etc.
; (> (CDR KNUCLEOTIDE::X) (CDR KNUCLEOTIDE::Y))
;
; note: forced to do GENERIC-> (cost 10)
; unable to do inline float comparison (cost 3) because:
; The first argument is a REAL, not a SINGLE-FLOAT.
; The second argument is a REAL, not a SINGLE-FLOAT.
; unable to do inline float comparison (cost 3) because:
; The first argument is a REAL, not a DOUBLE-FLOAT.
; The second argument is a REAL, not a DOUBLE-FLOAT.
; etc.
; compiling (DEFUN WRITE-COUNT ...)
; file: /home/dunham/8000-benchmarksgame/bench/knucleotide/knucleotide.sbcl
; in: DEFUN WRITE-COUNT
; (MAP '(VECTOR (UNSIGNED-BYTE 8)) #'CHAR-CODE KNUCLEOTIDE::NUCLEOTIDEFRAGMENT)
; --> TRULY-THE SB-KERNEL:%MAP MAP-INTO MAKE-SEQUENCE MIN LET
; ==>
; (LENGTH #:G7)
;
; note: unable to
; optimize
; due to type uncertainty:
; The first argument is a SEQUENCE, not a VECTOR.
; (LENGTH KNUCLEOTIDE::NUCLEOTIDEFRAGMENT)
;
; note: unable to
; optimize
; due to type uncertainty:
; The first argument is a SEQUENCE, not a VECTOR.
;
; note: unable to
; optimize
; due to type uncertainty:
; The first argument is a SEQUENCE, not a VECTOR.
; (LOOP KNUCLEOTIDE::FOR KNUCLEOTIDE::TASK KNUCLEOTIDE::ACROSS KNUCLEOTIDE::TASKS
; KNUCLEOTIDE::FOR KNUCLEOTIDE::RESULT = (KNUCLEOTIDE::MY-TASK-RESULT
; KNUCLEOTIDE::TASK)
; DO (IF (EQL (KNUCLEOTIDE::RESULT-KEYLENGTH KNUCLEOTIDE::RESULT)
; (LENGTH KNUCLEOTIDE::NUCLEOTIDEFRAGMENT))
; (SETF COUNT (+ COUNT #))))
; --> BLOCK LET LET LET TAGBODY SB-LOOP::LOOP-DESETQ SETQ THE AREF
; ==>
; (SB-KERNEL:HAIRY-DATA-VECTOR-REF ARRAY SB-INT:INDEX)
;
; note: unable to
; optimize
; due to type uncertainty:
; The first argument is a VECTOR, not a SIMPLE-STRING.
;
; note: unable to
; avoid runtime dispatch on array element type
; due to type uncertainty:
; The first argument is a VECTOR, not a SIMPLE-ARRAY.
; (LENGTH KNUCLEOTIDE::NUCLEOTIDEFRAGMENT)
;
; note: unable to
; optimize
; due to type uncertainty:
; The first argument is a SEQUENCE, not a VECTOR.
; (+ COUNT
; (GETHASH KNUCLEOTIDE::K (KNUCLEOTIDE::RESULT-OUTMAP KNUCLEOTIDE::RESULT)
; 0))
;
; note: forced to do GENERIC-+ (cost 10)
; unable to do inline float arithmetic (cost 2) because:
; The first argument is a NUMBER, not a DOUBLE-FLOAT.
; The second argument is a NUMBER, not a DOUBLE-FLOAT.
; The result is a (VALUES NUMBER &OPTIONAL), not a (VALUES DOUBLE-FLOAT
; &REST T).
; unable to do inline float arithmetic (cost 2) because:
; The first argument is a NUMBER, not a SINGLE-FLOAT.
; The second argument is a NUMBER, not a SINGLE-FLOAT.
; The result is a (VALUES NUMBER &OPTIONAL), not a (VALUES SINGLE-FLOAT
; &REST T).
; etc.
; compiling (DEFUN KEY-TO-STRING ...)
; compiling (DEFUN GET-KEY ...)
; compiling (DEFUN TO-CODES-NEW ...)
; compiling (DEFUN READ-IN-DATA-NEW ...)
; file: /home/dunham/8000-benchmarksgame/bench/knucleotide/knucleotide.sbcl
; in: DEFUN READ-IN-DATA-NEW
; (SUBSEQ KNUCLEOTIDE::LINE 0 6)
;
; note: unable to
; optimize
; due to type uncertainty:
; The first argument is a SEQUENCE, not a VECTOR.
;
; note: unable to
; optimize
; due to type uncertainty:
; The first argument is a SEQUENCE, not a LIST.
;
; note: unable to
; optimize
; due to type uncertainty:
; The first argument is a SEQUENCE, not a SB-KERNEL:EXTENDED-SEQUENCE.
; (ELT KNUCLEOTIDE::LINE 0)
;
; note: unable to
; optimize
; due to type uncertainty:
; The first argument is a SEQUENCE, not a (SIMPLE-ARRAY * (*)).
;
; note: unable to
; optimize
; due to type uncertainty:
; The first argument is a SEQUENCE, not a LIST.
; (LENGTH KNUCLEOTIDE::LINE)
;
; note: unable to
; optimize
; due to type uncertainty:
; The first argument is a SEQUENCE, not a VECTOR.
;
; note: unable to
; optimize
; due to type uncertainty:
; The first argument is a SEQUENCE, not a VECTOR.
; (ELT KNUCLEOTIDE::LINE KNUCLEOTIDE::I)
;
; note: unable to
; optimize
; due to type uncertainty:
; The first argument is a SEQUENCE, not a (SIMPLE-ARRAY * (*)).
;
; note: unable to
; optimize
; due to type uncertainty:
; The first argument is a SEQUENCE, not a LIST.
; compiling (DEFCONSTANT FRAGMENT-LENGTHS ...)
; compiling (DEFCONSTANT NUCLEOTIDE-FRAGMENTS ...)
; compiling (DEFUN GET-INPUT-STREAM ...)
; compiling (DEFUN MAIN ...)
; file: /home/dunham/8000-benchmarksgame/bench/knucleotide/knucleotide.sbcl
; in: DEFUN MAIN
; (LENGTH KNUCLEOTIDE::MSEQUENCE)
;
; note: unable to
; optimize
; due to type uncertainty:
; The first argument is a SEQUENCE, not a VECTOR.
; (ELT KNUCLEOTIDE::*MY-TASK-LIST* 0)
;
; note: unable to
; optimize
; due to type uncertainty:
; The first argument is a VECTOR, not a (SIMPLE-ARRAY * (*)).
; (LENGTH KNUCLEOTIDE::MSEQUENCE)
;
; note: unable to
; optimize
; due to type uncertainty:
; The first argument is a SEQUENCE, not a VECTOR.
; (ELT KNUCLEOTIDE::*MY-TASK-LIST* 1)
;
; note: unable to
; optimize
; due to type uncertainty:
; The first argument is a VECTOR, not a (SIMPLE-ARRAY * (*)).
; (ELT KNUCLEOTIDE::*MY-TASK-LIST* 2)
;
; note: unable to
; optimize
; due to type uncertainty:
; The first argument is a VECTOR, not a (SIMPLE-ARRAY * (*)).
; compiling (IN-PACKAGE :CL-USER)
; compiling (DEFUN MAIN ...);
; compilation unit finished
; caught 1 STYLE-WARNING condition
; printed 36 notes
; wrote /home/dunham/benchmarksgame_quadcore/knucleotide/tmp/knucleotide.fasl
; compilation finished in 0:00:00.433
### START knucleotide.sbcl_run
(main) (quit)
### END knucleotide.sbcl_run
4.95s to complete and log all make actions
COMMAND LINE:
/usr/local/bin/sbcl --noinform --core sbcl.core --userinit /dev/null --load knucleotide.sbcl_run 0 < knucleotide-input25000000.txt
PROGRAM OUTPUT:
A 30.295
T 30.151
C 19.800
G 19.754
AA 9.177
TA 9.132
AT 9.131
TT 9.091
CA 6.002
AC 6.001
AG 5.987
GA 5.984
CT 5.971
TC 5.971
GT 5.957
TG 5.956
CC 3.917
GC 3.911
CG 3.909
GG 3.902
1471758 GGT
446535 GGTA
47336 GGTATT
893 GGTATTTTAATT
893 GGTATTTTAATTTATAGT