Table 1. Wall clock time after successive optimizations.
Text | Description | Worm | Yeast | % Change | |
---|---|---|---|---|---|
1 | Crux baseline (4/14/09) | 5:47:37.9 | 36:03.5 | ||
2 | §3.2, §3.3 | Rewrite including deduplication of peptides; heapify; compressed peptides file; and eliminating seeks. | 7:39.0 | 2:41.6 | 45.4-fold reduction |
3 | §S1 | Sparse representation of theoretical peaks. [Note that input file parsing is introduced here, and removed later.] | 1:50.5 | −31.6% | |
4 | Fixed-capacity arrays for theoretical peaks; better memory management. | 1:13.4 | −33.3% | ||
5 | §S3 | Linearizing the background subtraction for XCorr computation. | 0:38.9 | −47.2% | |
6 | §S6 | Active peptide queue and sorted spectra (rolling window join). | 0:38.8 | 0:13.8 | −64.5% |
7 | §3.3 | Eliminate input file parsing. [See text; and compare line 3 above.] | 0:25.6 | −22.2% | |
8 | Omit calculation with theoretical ions outside spectrometer’s range. | 0:23.7 | −7.4% | ||
9 | §S7 | Sparse difference vector representation. | 0:24.7 | 0:09.0 | 4.2% |
10 | §S5 | Array striping to eliminate one lookup during dot product calculation. | 0:20.4 | −17.4% | |
11 | §S7 | Store the vector diffs to disk instead of calculating at runtime. | 0:15.5 | 0:05.9 | −24.0% |
12 | §S8 | Fixed-point arithmetic. | 0:14.7 | 0:06.0 | −5.2% |
13 | §S9, §S10 | FIFO memory allocator and run-time compiled dot-product code. | 0:8.6 | 0:4.4 | −34% |