## Yaksa
Yaksa is a high-performance datatype engine for expressing, managing
and manipulating data present in noncontiguous memory regions. It
provides portable abstractions for structured noncontiguous data
layouts that are much more comprehensive compared with traditional I/O
vectors.
Yaksa imitates parts of the MPI Datatype system, but adds additional
functionality that would allow it to be used independent of MPI. It
provides routines for packing/unpacking, creating I/O vectors (array
of contiguous segments) and flattening/unflattening datatypes into
process-portable formats.
Yaksa's backend includes support for CPUs as well as different GPUs.
Yaksa is open-source and is distributed under the [BSD-3 license]({{
site.github.license_url }}). It is a community-developed software
that anyone can contribute to based on its [Contributor License
Agreement]({{ site.github.cla_url }}).
## Supported Platforms
Yaksa has been tested on the following CPU architectures:
* x86_64
* ppc64
For GPU architectures, the following are supported:
* NVIDIA GPU via CUDA
Yaksa supports all C99 and POSIX 2001 compliant systems. Specific
compilers that are supported are:
* GNU (>= 4.1)
* LLVM clang (>= 3.0)
* Intel (>= 10.1)
* PGI (>= 9.0)
* XL (>= 10.0)
* Sun Studio (>= 12)
* Fujitsu Softune
Please note that building for CUDA requires a compiler that is
compatible with the CUDA installation. More details can be found at
[https://docs.nvidia.com/cuda/cuda-installation-guide-linux/index.html](https://docs.nvidia.com/cuda/cuda-installation-guide-linux/index.html)
***
{{
site.github.repository_name }} is maintained by the {{ site.github.owner_name }} group at
the Argonne National Laboratory.
The contents of this website are © 2020 under the terms of the yaksa license.