Scalable Hybrid Array Kit (Shark)
Switch branches/tags
Clone or download
Latest commit 87cf885 Sep 7, 2016


Scalable Hybrid Array Kit (Shark): README

Shark is a library for high-level parallel programming using n-dimensional
grids. Please see the LICENSE file for licensing terms.


 - n-dimensional global arrays of arbitrary datatypes
 - regular and irregular distributions
 - run-time redistribution
 - ghost regions (with or without diagonals)
 - boundary conditions
 - gather/scatter using sparse arrays
 - asynchronous operations using futures
 - one-sided get/put/accumulate 
 - global array expressions in natural syntax (using expression templates)


 - A C++ compiler and standard library with support for C++11 features such as
   lambdas, move semantics and varargs templates. Shark is developed using:
     * gcc 4.6, 4.7 and 4.8
     * icc 12.1 and 13 with libstdc++ from gcc 4.4
 - pkg-config
 - An MPI2 implementation (recommended)
 - POSIX threads with spin locks (optional)
 - OpenMP 2.5 support (optional)
 - Intel Threading Building Blocks (TBB) 2.2 or newer (optional)


    mkdir build
    cd build
    make -j4

Try "configure --help" for configuration options. Please note that the
configuration script will use pkg-config to determine how to build with
dependencies such as a particular MPI implementation, TBB,... You may have to
add a simple pkg-config file for a particular dependency if none is available.

For example, tbb.pc could contain:


    Name: tbb
    Description: Intel Threading Building Blocks
    Version: 4.0
    Cflags: -I${tbbdir}/include
    Libs: -L${tbbdir}/lib -ltbb


Please send feedback to Bruno De Fraine <>.