From subsecret
Jump to: navigation, search
(Created page with "=BWA Benchmark= BWA is a tool for mapping reads against a genome. This is nice for doing a non-synthetic benchmark, as meaningful work is done, and IO, Memory and CPU is all u...")
 
 
(50 intermediate revisions by the same user not shown)
Line 1: Line 1:
=BWA Benchmark=
=BWA Benchmark (SBC)=
BWA is a tool for mapping reads against a genome. This is nice for doing a non-synthetic benchmark, as meaningful work is done, and IO, Memory and CPU is all used.
Using BWA from https://github.com/smikkelsendk/bwa-for-arm/tree/master/bin (with NEON)
==BWA Setup instructions==
*Install zlib devlopment libraries (dnf install zlib-devel, apt-get install zlib-dev, apt-get install zlib1g-dev)
*Retrieve https://files.subsecret.dk/bwa/bwa-0.6.2-simple.tar.gz (if this cannot compile due to the use of inline, this alternative version can be used https://files.subsecret.dk/bwa/bwa-0.6.2-simple-no-inline.tar.gz)
**Compile BWA with command: ./compile.sh


Dataset:
*Retrieve https://files.subsecret.dk/benchmark/GCF_000005845.2_ASM584v2_genomic.fna.gz
*Retrieve https://files.subsecret.dk/benchmark/GCF_000005845.2_ASM584v2_genomic.fna.gz
*Retrieve (normal size benchmark) https://files.subsecret.dk/benchmark/ecolireads.fastq.gz
*Retrieve (normal size benchmark) https://files.subsecret.dk/benchmark/ecolireads.fastq.gz
*Retrieve (small size benchmark) https://files.subsecret.dk/benchmark/ecolireads-small.fastq.gz
 
*Run ./bwa index GCF_000005845.2_ASM584v2_genomic.fna.gz
*Run ./bwa index GCF_000005845.2_ASM584v2_genomic.fna.gz
 
*1 thread benchmark
==Running Benchmark==
Benchmark command
*1 thread
**./bwa aln GCF_000005845.2_ASM584v2_genomic.fna.gz ecolireads.fastq.gz > /dev/null
**./bwa aln GCF_000005845.2_ASM584v2_genomic.fna.gz ecolireads.fastq.gz > /dev/null
*4 threads  
*4 threads benchmark
**./bwa aln -t4 GCF_000005845.2_ASM584v2_genomic.fna.gz ecolireads.fastq.gz > /dev/null
**./bwa aln -t4 GCF_000005845.2_ASM584v2_genomic.fna.gz ecolireads.fastq.gz > /dev/null


==Results==
Run on Android:
*Enable USB Debugging on device (https://www.embarcadero.com/starthere/xe5/mobdevsetup/android/en/enabling_usb_debugging_on_an_android_device.html)
*On your PC: Download Android Platform tools: https://developer.android.com/studio/releases/platform-tools
*run (from your PC)
adb push BWA-EXECUTABLE /data/local/tmp
adb push GCF_000005845.2_ASM584v2_genomic.fna.gz /data/local/tmp
adb push ecolireads.fastq.gz /data/local/tmp
*then run
adb shell
 
You can now set bwa as executable (chmod a+x BWA-EXECUTABLE) and generate index and run bwa from directory /data/local/tmp
 
==Results (32 bit)==
{| class="wikitable sortable"
{| class="wikitable sortable"
!Device
!Device
!ARCH
!Kernel
!Kernel
!OS
!OS
!GCC
!1 thread walltime (sec.)
!1 thread walltime (sec.)
!4 thread walltime (sec.)
!4 threads walltime (sec.)
!8 thread walltime (sec.)
!MAX threads walltime (sec.)
!16 thread walltime (sec.)
|-
|-
|ODROID-C2
|3.16.70-42
|Ubuntu 18.04.3 LTS
|748
|211
|211
|-
|ODROID-N2
|4.9.185-44
|Ubuntu 18.04.3 LTS
|435
|120
|97
|-
|RPI-3
|4.19.58-v7+
|Raspbian (Buster)
|852
|249
|249
|-
|RPI-4
|4.19.58-v7l+
|Raspbian (Buster)
|459
|130
|130
|-
|a1.4xlarge (16 cores)
|5.0.0-1016-aws
|Ubuntu 19.04
|289
|75
|25
|-
|PC (i7-8700k@4.7GHz)
|5.2.15-200
|Fedora 30
|100
|27
|16
|-
|vkworld F1 (ARMv7 Processor rev 3 (v7l))
|3.10.72
|Android 5.1
|1233
|348
|348
|-
|Linksys WRT3200ACM
|4.14.131
|OpenWrt 18.06.4
|109
|
|
|57
|-
|Synology ds416j
|3.10.105
|Synology
|147
|
|
|
|77
|
|-
|
|PC eee1011px Atom N570 1.66GHz
|
|4.4.153-perf+
|
|Debian 7.8
|
|913
|
|369
|369
|}
 
==Results (64 bit)==
{| class="wikitable sortable"
!Device
!Kernel
!OS
!1 thread walltime (sec.)
!4 threads walltime (sec.)
!MAX threads walltime (sec.)
|-
|ODROID-C2 (Amlogic S905)
|3.16.70-42
|Ubuntu 18.04.3 LTS
|607
|178
|178
|-
|ODROID-N2 (Amlogic 922x)
|4.9.185-44
|Ubuntu 18.04.3 LTS
|344
|98
|88
|-
|Mi 9T Pro (Snapdragon 855)
|4.14.83
|Android 9
|165
|46
|34
|-
|LG G5 (Snapdragon 820)
|3.18.71
|Android 8
|348
|126
|126
|-
|a1.4xlarge (16 cores)
|5.0.0-1016-aws
|Ubuntu 19.04
|212
|56
|21
|-
|PC (i7-8700k@4.7GHz)
|5.2.15-200
|Fedora 30
|65
|18
|11
|-
|RPI-4
|5.3.0-1008
|Ubuntu 19.10
|350
|105
|105
|-
|Xiaomi Redmi Note 6 Pro
|4.4.153-perf+
|Android 9
|414
|101
|71
|}
|}

Latest revision as of 15:52, 26 October 2019

BWA Benchmark (SBC)

Using BWA from https://github.com/smikkelsendk/bwa-for-arm/tree/master/bin (with NEON)

Dataset:

  • Run ./bwa index GCF_000005845.2_ASM584v2_genomic.fna.gz
  • 1 thread benchmark
    • ./bwa aln GCF_000005845.2_ASM584v2_genomic.fna.gz ecolireads.fastq.gz > /dev/null
  • 4 threads benchmark
    • ./bwa aln -t4 GCF_000005845.2_ASM584v2_genomic.fna.gz ecolireads.fastq.gz > /dev/null

Run on Android:

adb push BWA-EXECUTABLE /data/local/tmp
adb push GCF_000005845.2_ASM584v2_genomic.fna.gz /data/local/tmp
adb push ecolireads.fastq.gz /data/local/tmp
  • then run
adb shell

You can now set bwa as executable (chmod a+x BWA-EXECUTABLE) and generate index and run bwa from directory /data/local/tmp

Results (32 bit)

Device Kernel OS 1 thread walltime (sec.) 4 threads walltime (sec.) MAX threads walltime (sec.)
ODROID-C2 3.16.70-42 Ubuntu 18.04.3 LTS 748 211 211
ODROID-N2 4.9.185-44 Ubuntu 18.04.3 LTS 435 120 97
RPI-3 4.19.58-v7+ Raspbian (Buster) 852 249 249
RPI-4 4.19.58-v7l+ Raspbian (Buster) 459 130 130
a1.4xlarge (16 cores) 5.0.0-1016-aws Ubuntu 19.04 289 75 25
PC (i7-8700k@4.7GHz) 5.2.15-200 Fedora 30 100 27 16
vkworld F1 (ARMv7 Processor rev 3 (v7l)) 3.10.72 Android 5.1 1233 348 348
Linksys WRT3200ACM 4.14.131 OpenWrt 18.06.4 109 57
Synology ds416j 3.10.105 Synology 147 77
PC eee1011px Atom N570 1.66GHz 4.4.153-perf+ Debian 7.8 913 369 369

Results (64 bit)

Device Kernel OS 1 thread walltime (sec.) 4 threads walltime (sec.) MAX threads walltime (sec.)
ODROID-C2 (Amlogic S905) 3.16.70-42 Ubuntu 18.04.3 LTS 607 178 178
ODROID-N2 (Amlogic 922x) 4.9.185-44 Ubuntu 18.04.3 LTS 344 98 88
Mi 9T Pro (Snapdragon 855) 4.14.83 Android 9 165 46 34
LG G5 (Snapdragon 820) 3.18.71 Android 8 348 126 126
a1.4xlarge (16 cores) 5.0.0-1016-aws Ubuntu 19.04 212 56 21
PC (i7-8700k@4.7GHz) 5.2.15-200 Fedora 30 65 18 11
RPI-4 5.3.0-1008 Ubuntu 19.10 350 105 105
Xiaomi Redmi Note 6 Pro 4.4.153-perf+ Android 9 414 101 71