Skip to content

Commit

Permalink
Update README
Browse files Browse the repository at this point in the history
  • Loading branch information
George Powley authored Mar 14, 2018
1 parent 964ccf0 commit a6f5f47
Showing 1 changed file with 34 additions and 9 deletions.
43 changes: 34 additions & 9 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,27 +4,52 @@
# Genomics Kernel Library (GKL)
This repository contains optimized versions of compute kernels used in genomics applications like
[GATK](https://github.com/broadinstitute/gatk) and [HTSJDK](https://github.com/samtools/htsjdk). These kernels are
optimized to run on Intel Architecture under 64-bit Linux and Mac OSX.
optimized to run on Intel Architecture (AVX, AVX2, AVX-512, multicore, and FPGA) under 64-bit Linux and Mac OSX.

Kernels included:
* **PairHMM**: AVX optimized version of the PairHMM algorithm, which is used to perform pairwise alignment of reads vs. haplotypes
in GATK HaplotypeCaller and MuTect2
* **igzip compression**: High performance level 1 compression optimized for genomic data
* **otc_zlib compression**: Optimized zlib compression for level 2 through 9
* **PairHMM**
* AVX and AVX-512 optimized versions of PairHMM used in GATK HaplotypeCaller and MuTect2.
* OpenMP support for multicore processors.
* FPGA support for [Intel PAC](https://www.altera.com/products/boards_and_kits/dev-kits/altera/acceleration-card-arria-10-gx.html) and select vendor cards.
* **Smith-Waterman**
* AVX2 and AVX-512 optimized versions of Smith-Waterman used in GATK HaplotypeCaller and MuTect2.
* **DEFLATE Compression/Decompression**:
* Performance optimized Level 1 and 2 compression and decompression from Intel's [ISA-L](https://github.com/01org/isa-l) library.
* Performance optimized Level 3 through 9 compression from Intel's [Open Source Technology Center](https://01.org/) [zlib](https://github.com/jtkukunas/zlib) library.

# Building GKL
GKL release binaries are built on CentOS 6 to enable running on most Linux distributions (see [holy-build-box](https://github.com/phusion/holy-build-box#problem-introduction) for a good discription of portability issues).

## Requirements
* Java 8
* Java JDK 8
* Git >= 2.5
* CMake >= 2.8.12.2
* GCC g++ >= 5.3.1
* GNU patch >= 2.6
* GNU libtool >= 2.2.6
* GNU automake >= 1.11.1
* Yasm >= 1.2.0
* zlib-devel >= 1.2.7

## Setup
Run these commands to setup the build environment on CentOS:
```
sudo yum install -y java-1.8.0-openjdk-devel git cmake patch libtool automake yasm zlib-devel centos-release-scl
sudo yum install -y devtoolset-4-gcc-c++
source scl_source enable devtoolset-4
```

## Quickstart
Clone, build, and test:
## Build and Test
After build requirements are met, clone, build, and test:
```
git clone https://github.com/Intel-HLS/GKL.git
cd GKL
./gradlew test
```

## License
# License
All code is licensed under the [MIT License](https://opensource.org/licenses/MIT), except:
* PairHMM code from GATK is licensed under the [BSD 3-Clause License](https://opensource.org/licenses/BSD-3-Clause).
* ISA-L code is licensed under the [BSD 3-Clause License](https://opensource.org/licenses/BSD-3-Clause).
* Intel Open Source Technology Center zlib (otc_zlib) code is licensed under the [Zlib License](https://opensource.org/licenses/Zlib).
* zlib code is licensed under the [Zlib License](https://opensource.org/licenses/Zlib).

0 comments on commit a6f5f47

Please sign in to comment.